[Experiment 38] Multi-client terminal resize policy finding - #45
Conversation
Follow-the-focused-client meets FR-38 additively for v2-only attach. Last-writer-wins reproduced. pty-session.ts untouched.
|
Reviewed at low risk tier and read in full: 692 additions, zero production files, everything under Approved. Merge with What I verified independently, rather than taking the summary
What makes this finding worth keepingRejecting the two losing policies on evidence rather than taste is the valuable part. Ignore-hidden looks reasonable until you notice it only helps tabbed-away panes and still fights when both devices are visible, which is the entire product case. Per-viewer reflow is the nicer UI and cannot be done additively, because one PTY has one size. The refusal to fake per-viewer reflow with client-side xterm wrap was the right call, and the stated reason is the correct one: it would look right until an agent drew a full-screen TUI at the PTY's real width, and then the iPad would be wrong in a worse and more confusing way. Carried into the spec, not blocking this merge
Tracking the production follow-up under #37 rather than holding #38 open for it. |
Refs #38
Follow-the-focused-client meets FR-38 additively for v2-only attach.
Finding. Last-writer-wins is real on current
PtySession.resize. Two attached clients, A at 80x24 then B at 40x12, left live bash atstty size12 40. Ignore-hidden still fights when both clients are visible. Per-viewer reflow cannot be done with oneresize()call.Additive. The prototype is a v2-owned broker that calls the existing
resize()once.pty-session.tsis untouched.Not additive. Mixed v1+v2 attach to the same session.
tower-websocket.ts:76-80still forwards every resize frame. That is a scope call, not a reason to editPtySession.Notes, prototype, and captured output:
codev/experiments/38-multi-client-resize/.No production code. Issue stays open for the follow-up.