-
Notifications
You must be signed in to change notification settings - Fork 3
plat 030
github-actions[bot] edited this page Sep 20, 2026
·
1 revision
| Coordination | Value |
|---|---|
| Assigned agent | Codex |
| Ticket state | implemented |
| Last synchronized | 2026-08-05 |
- Priority: P0
- Owner: Terminal Center live-attach geometry lifecycle
-
Evidence: the Social Media main terminal connected at
117×43, then a vertical layout change reconnected it at117×38. The Claude tmux remained healthy and continued receiving automatic completion notifications, but its nativehistory_sizewas0. The reconnect reset xterm and seeded only the current tmux screen, so all browser-accumulated history disappeared and the pane appeared frozen/unscrollable. -
Root cause: there were two independent limitations.
- Every grid change used the destructive width-change path. A row-only layout change therefore reset xterm even though line wrapping had not changed.
- Claude's live tmux pane is currently in the alternate screen
(
alternate_on=1,history_size=0). The raw pane is a fixed-screen TUI, not an append-only conversation transcript. Even after eliminating the resize reset, it cannot provide historical scrolling by itself.
-
Implementation:
- Grid changes are classified as
none,rows-only, orcolumns. A row-only change fits xterm and sends{type:"resize", cols, rows}over the existing socket. Column changes retain the suspend → close → fit → reconnect → authoritative-seed path. - Main coding-agent terminals now default to their structured event
transcript, which is durable and scrollable and receives the same
automatic notifications. The header retains a
Rawcontrol for exact TUI inspection. Child terminals still default to raw output.
- Grid changes are classified as
-
Verification: focused frontend tests pin
117×43 → 117×38as row-only and prove only column changes require reconnection. TypeScript compilation passes. Real tmux tests also prove target-session closure and external-width changes still close their viewers correctly. -
Acceptance: main-agent history remains readable and scrollable as new
automatic notifications arrive. Vertically resizing the Terminal Center or
showing/hiding UI chrome does not interrupt the live stream. A true width
change may re-seed raw output because preserving old hard-wrapped rows would
corrupt the display. Users can still select
Rawwhen they need to operate the full-screen CLI, without treating that buffer as durable history.
Auto-synced from docs/ on main. Edit there, not here.