str::lines() splits on neither separator, so a paste carrying them counted as one line and the invisible characters broke the textarea's width model. Bare \r, U+2028 and U+2029 now normalize to \n on every paste route (the prompt, the inline paste key and the previous-message editor); dropped file paths keep their bytes verbatim because a separator in a filename is payload. Ported from upstream 1.0.18 (grok-build prompt_widget normalize_line_breaks). Claude-Session: https://claude.ai/code/session_01RUqV8HVGXcAETyYbZ2tPQ4