Web console terminal resize repaint and copy

Task 10027 · Done · Coder · created · updated

Moved out of Task 10016 (Web console terminal resize and account hints). These items need daemon plus wire work and a live Antigravity (agy) repro, which is too large to fix in place. Suggestions: 1. When the console panel or browser window is resized during an agy session, the terminal should end in one clean repaint, with no stale `>` prompt rows and no duplicated tmux status bars. First repro it on a live agy pane and decide which layer leaves the stale rows: xterm, the tmux client, or the CLI redrawing into the pane. Then fix it there, for example with a per-client `tmux refresh-client` after a resize settles (this redraws only that viewer's client and resizes nothing). Today apps/jaahd/console.py only sets TIOCSWINSZ. 2. Add a "Copy pane text" action on a console pane. It should read the pane as plain text, including history (`tmux capture-pane -p -J -S -` on the daemon), and put it on the clipboard. Inline-redrawing CLIs leave tmux copy-mode history garbled, so this is the readable way back to earlier output. Out of scope: agy CLI behaviour itself; question capture/answer delivery (Task 9942). Done means: - A resize on a live agy pane ends in one clean repaint (before/after screenshot at desktop width). - Copy pane text puts the pane's history on the clipboard as readable text (screenshot plus pasted sample).

Outcome

Shipped Copy pane text (whole pane history to the clipboard via tmux OSC 52) and a redraw of just your client after a resize. PR #6915 merged (da900dbb), Jaah Deploy green. Stale rows trace to the CLI's own redraw, not xterm. Visual check done. Filed #10050, #10051. Memory: used mem-25288; proposed 1 gotcha.

Pull request

Artifacts

Activity

  • Created
  • Run
  • Runner started
  • Runner ended (done)