Closed
Description
While preparing a canary release in Ace, an existing terminal prefixed a pasted command with stray characters. The command failed until the prompt was cleared.
Observed sequence
- Switch from another channel to
keen-orbit. - Select its existing
termtab. - Paste and run:
sh /tmp/ace-canary-preflight.sh > /tmp/ace-canary-preflight.log 2>&1
- The redirected log reports
zsh: command not found: 1Rsh. - Clear the prompt with Ctrl+U, then paste and run the same command again. It succeeds.
This was observed once during dogfooding. The exact incoming/outgoing terminal bytes were not captured, and the successful retry replaced the redirected log. The failure is observed; the explanation below is not confirmed.
Suspected replay interaction
- Host terminal output is retained as raw PTY chunks. Reattachment replays those chunks without identifying a replay boundary.
- The client input listener forwards every xterm
onDataevent to the live PTY. During reattachment, that listener is active while the client resets xterm and writes replayed output. - Installed xterm source (
src/common/InputHandler.ts:2653andsrc/common/services/CoreService.ts:61) answers a cursor-position query (CSI 6 n) withCSI row;column Rthrough the sameonDataevent. Replaying an old query could therefore send an unsolicited response into the current shell prompt. The1Rsuffix is consistent with that possibility, but does not prove it.
Normal tab selection keeps panels mounted; returning to a channel and first viewing its restored terminal can reattach it. Reconnection also reattaches. Do not assume every tab switch triggers replay.
Expected
- Returning to an existing terminal must leave the live shell input unchanged; the first pasted command must run exactly as entered.
- Investigate raw-output replay and generated terminal responses. Preserve responses to live queries while preventing historical output from generating new shell input.
- Verify channel navigation, reload/reconnect, normal typing and pasting, and live terminal queries with a real shell.
No matching open or closed issue was found in the repository. Related terminal issues #11 and #18 cover different work. Tracked by #5.
Metadata
Metadata
Assignees
Labels
No labels
Activity