Session Info: a short default view, Leo's four then one Show more for the rest

Merged
TE
3d ago
+490-18

Leo, 2026-11-03:

but also i feel like it's a bit too much stuff by default there's a bunch of things there that can be a bit more hidden under "show more" or whatnot

Session Info's default view is now short. His four (2026-11-03: "1. Machines showing up so I know if it's cloud or not 2. context 3. Subagents/background tasks running 4. Sources") stay in view. Usage, Changes, Outputs and Connectors go behind one whole-row Show more under them, and that row names what it holds (Show more 路 Usage 路 Changes 路 Outputs 路 Connectors).

  • No section is removed. Show more draws every section in the panel's order, and Show less hides the four again. A chat with none of the less-used sections gets no row.
  • The choice is kept: the pane saves it like its folds, and a new chat starts from the last choice made.
  • A person's choices still win. A fold saved shut stays shut under Show more. A less-used section dragged above one of the four stays in view (sectionOrder.ts tuckedSections).
  • A reveal of a hidden section (a running line's count, the header chip) opens Show more first, then lights the section.
  • It reuses the existing "Show more" / "Show less" strings and the shared whole-row fold (SessionInfoFold), so there are no new strings.

Spec (leo-workspace design/session-info.md): "Sections default to the machine first, then Context, what it runs, then Sources; a person's drag wins ... No section is ever dropped from the order, and a saved order (a drag in any pane) always wins over the default." The spec update for the compact default is a separate leo-workspace PR.

Gallery: three variants, one picked

agent-pane.chat-inspector:

  • compact-more (shipped): the four, then one Show more. Its play checks that only the four draw, that the row names all four held sections, that Show more draws all nine in the default order and offers Show less, and that Show less brings back the short view. compact-more-open shows it opened.
  • compact-folded: every section in view, with the less-used ones folded to their heading. It is shorter than before, but it still shows nine rows of headings, and a fold already saved open in a chat keeps that section long, so Leo's open chats would barely change.
  • compact-capped: every section open, each cut at three rows with its own Show more. Short lists get a Show more they don't need, and every section still takes up room, so the panel looks busier, not calmer.

I picked compact-more because it is the most literal reading of "hidden under show more", it is the only one that shortens chats whose folds are already saved, and it keeps the four he named at the top. The variants pass a compactLook prop that only the gallery sets.

References used (cmux-design-references, private): claude/live/panel-changes-pr-card and claude/live/session-running-with-side-panels (Claude's right panel shows a few compact cards), cmux/live/sidebar-environment-changes-background-tasks.

Tests

  • New test/session-info-compact-default.test.tsx: the default view, Show more and Show less, the choice kept, no row when nothing is held, a saved fold kept, a dragged section kept in view, tuckedSections, and a reveal that opens Show more.
  • Tests that check a section's content (Connectors, Outputs, Usage, Subagent, dead clicks, session-info) open Show more first. session-info.test.tsx's started-chats order now expects #32850's default order (Subagents before Outputs).

Observed / Not run

  • Observed: locally, bun test on the session-info files listed above, scripts/web-lint.sh and prepush-gate.py pass. session-info-width-stages.test.ts fails the same way without this change (expectations from before #32751), so that red is not this PR's.
  • Not run: the native Swift panel (agent.sessionInfo.native) builds its own model and is unchanged here. The web panel is the default (#32817).

Agent session: agent session

馃 Generated with Claude Code