Session Info: a pane too narrow to push gets a popover that waits for the person
HOLD: ownership moved to ux-owner (Leo's 22:59 Session Info regression, which asks for a push, not a popover); they decide whether this lands, changes or closes.
Fixes the finding in cmuxterm-hq#6137 (NEXT nightly 1.0.0-nightly.4150738990701, 069f8c08): a new agent chat in a narrow pane opened with Session Info covering the transcript, the "Not sent. Send it again." line and its Retry, until the person closed it with the toggle.
Why it happened
The pane was about 370px wide. Since #31423 and #31426, Session Info pushes the chat when the right gutter can't hold it, and pushedWidth floors the panel at its 260px narrowest. Nothing checked what that left the chat: about 100px, with the transcript's line and the composer cut off under the panel. (The capture is the native panel since #32159, which draws at the width and top the page gives it, so the page's placement decides.)
Leo, 2026-10-31, on exactly this case: "sometimes the claude code/chatgpt desktop just straight up make it a popover that hides when you click away when the viewport is indeed too small".
What
tooNarrowToPush(paneWidth): a pushed panel, even at its narrowest, would leave the chat narrower than the panel itself, i.e. a pane under 528px. There Session Info doesn't push; it's the popover over the chat that a short pane already gets (sessionInfoPopover), which a click elsewhere hides.- A popover (short or narrow) shows only once the person opens it in that pane: the toggle, a running line's count or the palette. It never shows from a saved open state alone, so a new chat in a narrow pane starts with its transcript and Retry clear.
- Unchanged: where there's room, a new chat still opens Session Info (Leo, 2026-10-20). A diff split that halves a wider pane still pushes (chat 332px at 600). Settings Push always keeps its column.
The default-open rule itself is by design (design/session-info.md, sessionInfoState.ts), so this fixes the covering, not the default.
Changelog
- Fixed: in a narrow agent pane, Session Info no longer opens over a new chat's transcript and Retry; it opens as a popover from its toggle.
Observed / Not run
- Red then green. Command:
bun test test/session-info-surfaces.test.tsx src/agent-session/acpmux/session-info/sessionInfoPopover.test.ts. On base (the test commit alone) 3 fail: the narrow-pane test, the short-pane project-click test now opening through the toggle, and thetooNarrowToPushunit test. On head everything passes (16, then 2). - Every non-browser Session Info suite passes on head (
test/session-info*.test.*,session-info/*.test.ts).scripts/web-lint.shpasses. - Fleet browser run of the Session Info browser tests at this head: in progress, result added below.
- Not run: a native nightly capture at 370px. The native panel follows the page's placement (
NativeSessionInfowidth/top/foot), and the page side is tested.
Risk: normal. Placement logic only, with an existing popover path.
Agent session: agent session
š¤ Generated with Claude Code