fix: restore tmux input modes after workspace reconnect - #795
Conversation
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
Automatic WebSocket reconnects reuse xterm state while bounded PTY replay can omit the DEC sequences that established browser-generated input modes. Preserve session-wide cursor, mouse, focus, and paste state; insert repair transitions without splitting VT or UTF-8 data; and clear xterm's byte decoder before replay. Follow-up hardening: - fix: reject Unicode-interrupted terminal controls - test: prove Unicode cannot resurrect terminal modes - fix: preserve incomplete terminal state across reconnects - fix: keep terminal replay byte-safe across reconnects - test: prove UTF-8 replay survives renderer reuse - fix: keep same-size reconnects from interrupting replay tails - test: delete managed Kata workspaces during fixture teardown - fix: discard raw C1 bytes before terminal replay parsing - test: stop chasing transient offline reconnect sockets Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Same-renderer reconnects cannot safely redraw tmux until bounded replay has finished parsing, but suppressing dimensions globally leaves fresh legacy and Fleet terminals at their defaults. Add an explicit local-runtime replay boundary so xterm can reset its decoder, finish replay, and then publish current geometry without interrupting split VT or UTF-8 data. Keep xterm-discarded Unicode aligned with backend mode tracking, and isolate Kata API test tmux sessions so failed or concurrent test teardown cannot populate a developer's live tmux server. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
The local-runtime terminal now waits for an explicit replay boundary before it can publish geometry. The mock browser regression must model that protocol boundary deliberately, while the race detector needs enough scheduling budget to observe the real fast-sync tick on loaded CI runners. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Kata workspace setup is asynchronous and owns tmux and worktree creation. Deleting fixtures before lifecycle shutdown can let an in-flight setup write after teardown and leak artifacts into later tests. Await setup cancellation before deletion. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Workspace terminals could accept keyboard input after switching away and back while tmux mouse scrolling and bracketed paste remained disabled until the pane was resized. The tmux client outlives its browser renderer, but bounded screen replay may no longer contain the mode sequences a replacement terminal needs.