From 9d250edb7af7ad04ce13605b310c30458ec1a2d5 Mon Sep 17 00:00:00 2001 From: Edwin Date: Fri, 28 Aug 2026 14:17:49 -0700 Subject: [PATCH 1/3] feat(webui): zoom fills the window, covering the session list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Web zoom only hid sibling panes, so the same gesture that clears the screen in the TUI left the session list occupying a column here — and with a single pane it did nothing at all, which is why it was gated behind a split layout and echoed "nothing to zoom". Zoom now means what it means in the TUI: the focused session view fills this client's window. The list gets out of the way with the other panes, so zoom is worth offering with or without splits and the split gate is gone. The list's own show/hide preference is left untouched — zoom borrows the column rather than consuming the setting, so unzooming restores whatever the user had. Asking for the list while zoomed (the `≡` toggle, `C-x b`) is treated as a request to leave zoom, so neither control is dead; the TUI answers the same request by zooming the list instead, which has no surface here. Recorded as spec 0212, since "zoom" now has to mean one thing in both clients. --- crates/daemon/assets/index.html | 80 ++++++++++++++++++---- crates/e2e/tests/split_layout.rs | 64 +++++++++++++++++ specs/0212-zoom-fills-the-client-window.md | 56 +++++++++++++++ 3 files changed, 185 insertions(+), 15 deletions(-) create mode 100644 specs/0212-zoom-fills-the-client-window.md diff --git a/crates/daemon/assets/index.html b/crates/daemon/assets/index.html index 38a12d5a..a8deca51 100644 --- a/crates/daemon/assets/index.html +++ b/crates/daemon/assets/index.html @@ -368,6 +368,13 @@ main.session-list-hidden { grid-template-columns: 0 1fr; } + /* Zoom (spec 0212) means the focused session view fills the window, so the + list gets out of the way — the same geometry as hiding it, but driven by + zoom rather than by the user's own show/hide preference, which is left + untouched so unzooming restores exactly what they had. */ + main.is-zoomed { + grid-template-columns: 0 1fr; + } @media (max-width: 720px) { main, main.session-list-hidden { @@ -387,6 +394,18 @@ main:has(.session-list.collapsed) { grid-template-rows: 0 1fr; } + main.is-zoomed { + grid-template-rows: 0 1fr; + } + main.is-zoomed .session-list-wrap { + min-height: 0; + overflow: hidden; + border-right: none; + border-bottom: none; + } + main.is-zoomed .new-session-btn { + display: none; + } .session-list.collapsed { max-height: 0; padding: 0; border-bottom: none; } /* When the list is collapsed, drop its header controls too — they act on the list, and there's no list visible. */ @@ -2387,7 +2406,8 @@ border-right: 1px solid var(--border); background: var(--bg-elev); } - main.session-list-hidden .session-list-wrap { + main.session-list-hidden .session-list-wrap, + main.is-zoomed .session-list-wrap { overflow: hidden; border-right: none; } @@ -2415,7 +2435,8 @@ .session-list-resizer.is-dragging::after { background: var(--accent); } - main.session-list-hidden .session-list-resizer { + main.session-list-hidden .session-list-resizer, + main.is-zoomed .session-list-resizer { display: none; } @media (max-width: 720px) { @@ -8516,9 +8537,9 @@

// between viewports. "split-horizontal": splitLayoutAvailable(), "split-vertical": splitLayoutAvailable(), - // Zoom fills the grid with the focused pane, so it needs panes to - // hide — with one pane there is nothing to zoom. - zoom: splitLayoutActive(), + // Zoom fills the window with the focused view, which is meaningful + // with or without splits — there is always a list to cover. + zoom: !!sel, "close-split": splitLayoutActive(), restart: !!sel && terminal && !archived, archive: isUserSession, @@ -14139,6 +14160,11 @@

function setSessionListVisible(visible, persist = true) { state.sessionListVisible = !!visible; + // Zoom hides the list, so asking for the list is asking to leave zoom — + // otherwise the `≡` toggle and `C-x b` would both be dead controls while + // zoomed. (The TUI answers the same request by zooming the list instead; + // there is no zoomed-list surface here.) + if (visible && state.paneZoom) setPaneZoom(false); // Collapsing/expanding the list reshapes the terminal host, which can // clamp the xterm viewport's scrollTop. Stamp the churn window BEFORE // the class flip so the resulting scroll events are never mistaken for @@ -14151,12 +14177,20 @@

sessionListEl.classList.remove("collapsed"); if (visible) setSessionListWidth(currentSessionListWidth(), false); } - toggleListBtn.setAttribute("aria-expanded", visible ? "true" : "false"); - toggleListBtn.title = visible ? "hide session list" : "show session list"; + syncSessionListToggle(); if (persist) localStorage.setItem(SESSION_LIST_VISIBLE_KEY, visible ? "1" : "0"); if (state.mode === "terminal") requestAnimationFrame(refitTerminal); } +/** The `≡` button reports what a press would do. Zoom hides the list without + * touching the preference, so while zoomed the button offers the list back + * (by unzooming) even though the preference still says "visible". */ +function syncSessionListToggle() { + const shown = state.sessionListVisible && !state.paneZoom; + toggleListBtn.setAttribute("aria-expanded", shown ? "true" : "false"); + toggleListBtn.title = shown ? "hide session list" : "show session list"; +} + function isSessionListVisible() { return state.sessionListVisible; } @@ -14176,6 +14210,9 @@

initSessionListLayout(); toggleListBtn.addEventListener("click", () => { + // While zoomed the list is hidden by zoom, not by the preference, so a + // press means "give me the list back" — which unzooms. + if (state.paneZoom) return setSessionListVisible(true); setSessionListVisible(!isSessionListVisible()); }); @@ -14524,9 +14561,6 @@

if (!leaves.some((l) => l.id === state.focusedPaneId)) { state.focusedPaneId = leaves.length ? leaves[0].id : null; } - // A collapsed layout has nothing to zoom. Drop the per-client flag so the - // next split doesn't come back pre-zoomed with no visible way out. - if (leaves.length <= 1) state.paneZoom = false; renderPaneGrid(); pushLayout(next); } @@ -19315,12 +19349,28 @@

$("sessionMenuBtn").setAttribute("aria-expanded", open ? "true" : "false"); }); -/** Fill the pane grid with the focused pane, or restore the split layout. - * Shared by `C-x z` and the session menu's zoom row. Per-client state - * (spec 0118), so it never round-trips to the daemon. */ +/** Zoom, or restore. Shared by `C-x z` and the session menu's zoom row. + * Per-client state (spec 0118), so it never round-trips to the daemon. */ function togglePaneZoom() { - state.paneZoom = !state.paneZoom; + setPaneZoom(!state.paneZoom); +} + +/** Zoom means the focused session view fills the window (spec 0212): the + * other panes get out of the way, and so does the session list. The list's + * own show/hide preference is deliberately not touched — unzooming restores + * whatever the user had, rather than whatever zoom left behind. */ +function setPaneZoom(on) { + const next = !!on; + if (state.paneZoom === next) return; + state.paneZoom = next; + // Reshaping the view can clamp xterm's scrollTop. Stamp the churn window + // BEFORE the layout flips so the resulting scroll events are never mistaken + // for the user scrolling into history — same order as the list toggle. + noteTerminalScrollChurn(); + mainEl.classList.toggle("is-zoomed", next); + syncSessionListToggle(); renderPaneGrid(); + if (state.mode === "terminal") requestAnimationFrame(refitTerminal); } $("sessionMenu").addEventListener("click", (ev) => { @@ -20270,7 +20320,7 @@

return; } case "toggle-zoom": - if (!splitLayoutActive()) { + if (!currentSession()) { showChordEcho("C-x z — nothing to zoom", true); return; } diff --git a/crates/e2e/tests/split_layout.rs b/crates/e2e/tests/split_layout.rs index d7dddd86..2d3a36ba 100644 --- a/crates/e2e/tests/split_layout.rs +++ b/crates/e2e/tests/split_layout.rs @@ -616,6 +616,16 @@ async fn shared_split_layout_renders_wide_and_is_read_only_narrow() { .await, "the menu's zoom row must zoom the pane grid" ); + // Spec 0212: zoom fills the window, so the session list gets out of the + // way too — not just the sibling panes. + assert!( + wait_for_bool( + &page, + "document.querySelector('.session-list-wrap').getBoundingClientRect().width === 0", + ) + .await, + "zoom must cover the session list" + ); // Zoom is per-client (spec 0118): it hides panes, it does not rewrite the // shared tree, so no layout edit is published. let after_zoom = d.client.layout().await.expect("layout"); @@ -641,6 +651,16 @@ async fn shared_split_layout_renders_wide_and_is_read_only_narrow() { .await, "clicking unzoom must restore the split layout" ); + // ...list included: zoom borrows the list, it does not consume the + // user's own show/hide preference. + assert!( + wait_for_bool( + &page, + "document.querySelector('.session-list-wrap').getBoundingClientRect().width > 0", + ) + .await, + "unzooming must give the session list back" + ); // Closing a split through the menu really collapses the layout, and the // collapse is published like any other layout edit. @@ -662,6 +682,50 @@ async fn shared_split_layout_renders_wide_and_is_read_only_narrow() { "closing a pane is a layout edit and must be published to other clients" ); + // Zoom is not split-gated (spec 0212): with one pane it still has the + // list to cover, so the row stays live and does the same thing. + let zoom_enabled_single = wait_for_bool( + &page, + "(() => { + const btn = document.getElementById('sessionMenuBtn'); + const item = document.getElementById('sessionMenuZoomBtn'); + if (!btn || !item) return false; + if (document.getElementById('sessionMenu').hidden) btn.click(); + return !item.disabled; + })()", + ) + .await; + assert!( + zoom_enabled_single, + "zoom must stay available when the layout has a single pane" + ); + page.evaluate( + "(() => { document.getElementById('sessionMenuZoomBtn').click(); return true; })()", + ) + .await + .ok(); + assert!( + wait_for_bool( + &page, + "document.querySelector('.session-list-wrap').getBoundingClientRect().width === 0", + ) + .await, + "zooming a single pane must still cover the session list" + ); + // The `≡` toggle asks for the list back, which is a request to leave zoom + // — it must not be a dead control while zoomed. + page.evaluate("(() => { document.getElementById('toggleList').click(); return true; })()") + .await + .ok(); + assert!( + wait_for_bool( + &page, + "document.querySelector('.session-list-wrap').getBoundingClientRect().width > 0", + ) + .await, + "asking for the list while zoomed must leave zoom" + ); + // Split back from a SINGLE pane through the session menu. This is the // only path to a first split now that the main title bar carries no // split buttons — with one pane there is no pane title bar to hold diff --git a/specs/0212-zoom-fills-the-client-window.md b/specs/0212-zoom-fills-the-client-window.md new file mode 100644 index 00000000..265c53b0 --- /dev/null +++ b/specs/0212-zoom-fills-the-client-window.md @@ -0,0 +1,56 @@ +# 0212-zoom-fills-the-client-window + +Status: accepted +Date: 2026-08-28 +Area: ux +Scope: What zoom means in a client, and what it is allowed to hide. + +## Decision + +Zoom means: **the focused session view fills this client's window.** Every +other pane gets out of the way, and so does the session list. + +- Zoom is available whether or not a split layout exists. With one pane it + still has the list to cover, so it is never a no-op the user has to + discover by pressing it. +- Zoom is per-client presentation state (see + [0118-split-layout-is-shared-daemon-state](0118-split-layout-is-shared-daemon-state.md)). + It hides panes rather than rewriting the shared tree, publishes no layout + edit, and unzooming restores the layout exactly. +- Zoom must not consume the user's own list show/hide preference. It hides + the list for the duration; unzooming restores whatever the user had, not + whatever zoom left behind. +- Asking for the session list while zoomed is a request to leave zoom. A + client must not leave a control that asks for the list doing nothing. +- Whatever surface offers zoom must also offer the way back, labelled as + such, unless the zoomed layout genuinely has no room for it — a client + whose zoomed view keeps its title bar has room. + +## Reason + +"Zoom" that only hid sibling panes left the session list occupying a +column, so the same gesture produced a full-screen view in one client and a +partial one in another, and did nothing at all in the common single-pane +case. One name should mean one thing across clients. + +Zoom is a viewing gesture, not a layout edit: the user is looking closer, +not rearranging what everyone else sees. That is why it stays client-local +and why it must be exactly reversible — including the preferences it +temporarily overrides. + +## Consequences + +- New chrome that competes for space (list, sidebars, panels) must decide + whether zoom hides it; the default answer is yes, since zoom's promise is + the window. +- Clients must keep zoom out of persisted preferences, or they will leak a + temporary view state into the user's saved layout. +- A client whose zoomed layout drops its title bar has no menu to offer the + way out from; its zoom must stay reachable by key or command. + +## Non-Goals + +- Zoom is not a layout edit and never becomes one; a user who wants other + clients to see one pane closes the others instead. +- Hiding the composer, header, or other input affordances is not implied — + zoom covers what competes with the view, not what drives it. From f9321c488b117c4eba50c6f60529dbc14104322a Mon Sep 17 00:00:00 2001 From: Edwin Date: Fri, 28 Aug 2026 14:21:10 -0700 Subject: [PATCH 2/3] chore: temporary PR screenshot --- docs/media/webui-zoom-covers-list.png | Bin 0 -> 28462 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/media/webui-zoom-covers-list.png diff --git a/docs/media/webui-zoom-covers-list.png b/docs/media/webui-zoom-covers-list.png new file mode 100644 index 0000000000000000000000000000000000000000..388934b2d8c0bd404345edb6a626275fe5d1d8f0 GIT binary patch literal 28462 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 literal 0 HcmV?d00001 From 0009f1ab3ae38ff1264e3fddbd43c99533c1ea50 Mon Sep 17 00:00:00 2001 From: Edwin Date: Fri, 28 Aug 2026 14:21:40 -0700 Subject: [PATCH 3/3] chore: drop the temporary PR screenshot --- docs/media/webui-zoom-covers-list.png | Bin 28462 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/media/webui-zoom-covers-list.png diff --git a/docs/media/webui-zoom-covers-list.png b/docs/media/webui-zoom-covers-list.png deleted file mode 100644 index 388934b2d8c0bd404345edb6a626275fe5d1d8f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28462 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