Being able to enter Korean did not establish that several paragraphs would survive unchanged. Some editors discard newlines inside inserted text, while chat composers use Enter to submit. I treated text and key semantics separately for each input surface.

One newline does not imply one universal operation

A textarea, document editor and chat composer assign different meanings to Enter. A newline passed inside one insert-text call may not create a real paragraph. Sending an Enter key indiscriminately may instead submit an unfinished message.

The input-surface contract determines whether to insert a string or construct paragraphs with native keys. One newline method cannot be applied to every site. Submission and inserting a line break retain different operations and expectations. Visible characters alone do not establish correct input semantics.

Split logical lines without discarding empty ones

The native-editor path normalizes CRLF to LF, then splits logical lines. After the first line it sends the appropriate Enter operation and inserts nonempty line text. Empty lines retain their boundaries rather than being filtered out and merging paragraphs.

Keys and text use the same frame session as the native focus click. Focusing an iframe and sending text through another session could target the wrong surface. Execution epoch is checked along the way. Even a short multiline operation needs continuous target and lifetime conditions. Visible spacing between paragraph blocks can also differ from literal empty lines. Recognized chat composers therefore read logical paragraphs rather than treating every CSS gap as another newline.

Chat line breaks and notebook execution use different meanings

Recognized ChatGPT and Gemini composers use a Shift-Enter newline mode, leaving final submission as a separate request. This is not a universal rule for every editable region.

In Northstar's notebook UI, Shift-Enter instead runs a code cell and excludes events still in IME composition. The same key combination means different things in the shell and web content. That guard is not evidence of exhaustive reproduction of every operating-system input method. Programmatic text delivery and human composition are separate boundaries too.

Do not restart a partially delivered manuscript

If multiline input stops halfway, earlier paragraphs may already exist. Starting the entire manuscript again can duplicate them. The current path checks interruption and reads the actual value after input; delayed commitment is handled with reads rather than reinsertion.

Recognized proxy-editor modules also restrict filling to an empty module. They do not universally replace existing documents with select-all. Already equal content differs from another existing manuscript. Convenience must not become a reason to erase a draft.

Submission-key tests also check retained input

The native-Enter fixture checks the search result and key count as well as preservation of the original query. A second Enter with an already-true expectation must not dispatch, and sensitive input is refused for handoff.

I read current input and paragraph handling, notebook key code and the fixture test. I sent no new real-account message or article for review. An implemented and tested input contract cannot establish paragraph and formatting compatibility with every editor. Another editor needs its own synthetic manuscript reproduction.

Paragraphs are content structure and execution contract

A customer's empty lines and paragraph divisions shape meaning and reading rhythm. Removing whitespace for automation convenience can enter the characters while changing the manuscript. The tool should explain which structure it preserves.

Korean support becomes more precise when separated into characters, composition-aware shortcuts, paragraphs, submission and storage. Each stage needs its own rule and outcome check. That distinction lets an agent understand when Enter changes a line and when it sends a request.