Session Info: the machine, Context, what it runs, then Sources by default
Follow-up to #32817 (the web Session Info panel is the default again).
Leo, on the Session Info panel: "buttons stay in swift, summary panel in react", "i just want a good one". His list, in this order: "1. Machines showing up so I know if it's cloud or not 2. context 3. Subagents/background tasks running 4. Sources... you can technically use that area to add them".
What changes
- Default section order (
sectionOrder.tsDEFAULT_ORDER): Environment (the machine row: this Mac, SSH or Cloud) → Context → Usage → Subagents → Background tasks → Sources → Changes → Outputs → Connectors.- Usage keeps its place right after Context (#28773: a folded row valued at this chat's 24h cost).
- The sections he did not name follow Sources. No section is dropped.
- A saved order (any drag, any pane) still wins. The stored format is unchanged, so there is no migration. A person who never dragged gets the new order.
- Block membership (
GROUP_SECTIONS, which draws the hairlines and reads the #27291 per-block format) is unchanged. The hairlines now fall between Usage and Subagents, between Background tasks and Sources, and before Connectors. - The page also builds the native panel's model from
sectionOrder(), so the native panel gets the same order.
- Width stages (no code change, now pinned by
test/session-info-width-stages.test.ts), checked against #32817 and #32591:- 1800px pane: it floats in the free right gutter.
- 900px pane: it pushes the chat left at its own width.
- 370px pane: it pushes at its 200px floor and waits for the toggle.
- No tall pane of any width draws it over the chat.
- A short pane's popover is the only stage over the chat. #32591 ("always pushes the chat left, never covers it") removed covering the chat in a narrow pane, and this PR keeps it removed.
- Gallery:
agent-pane.chat-inspector/fullnow asserts the default order in its play. The notes forfullandreorder-draggingdescribe the new order. - Tests: the order fixtures in
session-info-section-order.test.tsxandsession-info-section-order-browser.test.tsxfollow the new default. The drag offsets are recomputed for the new section tops.
References
cmux-design-references ids (private, not attached): claude/live/session-info-environment-and-context-panel, claude/live/session-info-popover-remote-control-context (the machine first, then context), claude/live/claude-right-panel-running-tasks (running tasks and agents in the rail), chatgpt/live/sidebar-session-info-rail-sections (subagents and sources in one panel), cmux/live/session-info-summary-panel-regressed.
Spec: leo-workspace design/session-info.md, updated in a separate notes PR with the order rule.
Changelog
Changed: Session Info lists the machine first, then Context, running subagents and background tasks, then Sources.
Observed / Not run
- Observed:
scripts/web-lint.shpassed andprepush-gate.pyreported no new violations. Test results fromcmux-ci testare in a comment below. - Not run: no local gallery capture.
Agent session: agent session
🤖 Generated with Claude Code
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Changes the Session Info panel's default section order so the machine appears first, then Context, running subagents and background tasks, then Sources. A saved order from any drag still wins, and the stored format is unchanged, so no migration is needed.
- New default order: Environment, Context, Usage, Subagents, Background tasks, Sources, Changes, Outputs, Connectors. Usage keeps its spot after Context, and the sections Leo didn't name follow Sources; none is dropped.
- Block membership and hairline styling are unchanged, so the hairlines now fall between Usage and Subagents, between Background tasks and Sources, and before Connectors.
- Adds a test pinning the existing width stages (floating in the gutter at wide panes, pushing the chat at mid widths, waiting for the toggle at the 200px floor); no layout code changed.
- The gallery's full chat now asserts the default order.