fix(agent-pane): start summary popover with environment (carry #27937)
Carries #27937 onto current feat-cmux-next, with its five commits and their authorship kept, plus a merge of the base and two small fixes.
Leo asked:
"why doesn't this top of the thing have environemnts why does it still have the unnecsssary titling of "summary"... iv easked so many times to not have titling... what's the most recent code?"
"this is a pointless toggle. you should just show it all at the start to be able to be scrolled down, and this kind of button should be ablke to open up the whole thing at the right pane"
What changed (from #27937)
The toolbar Summary popover now starts with a labeled Environment section using the existing Session Info EnvironmentSection rows: machine, project folder, repository and branch. The popover has no title row. Its activity counts moved into the Subagents section header. Inline Summary columns and right-pane panels keep their existing title and behavior.
What this carry fixed
-
Conflicts with base.
summary.css: base had since landed #27808 (the glass Summary popover), which #27937 carried as an earlier copy; the merge keeps base's landed glass tokens and adds this PR's popover body rule.SummaryCard.gallery.tsx: keeps base's newinspectorPushfixture prop and adds this PR'spopoverprop andpopover-environmentvariant. -
fast-gates red (this PR's own). The
web lintgate's design-token check refused the newpadding-top:6px(the spacing scale is 0/4/8/12/16/24/32). It is now4px.python3 scripts/web_lint_prepush.py --base <merge base> --head HEAD --new-onlyfailed before withnew design token violation (1 > 0): agent-session/acpmux/summary/summary.css spacing padding-top 6pxand passes after. -
Focus on close. #27937 had replaced the popover close button's handler with a bare
card.close(), dropping base's hand-off of focus back to the toolbar's summary button. Restored. -
One Stop per running task (review BLOCK at fce75bf1). The popover showed a Stop beside every running background task, so the same control repeated down the column. Stop now shows only for the task under the pointer or keyboard focus, and stays while a stop is in flight or has failed. Browser test
a running task's Stop shows only for the task under the pointer. -
Subagents twice for older records (review follow-up at fce75bf1). A record from before acpmux reported subagents (Claude's Task tool as a titled
thinkcall) beside a running command drew the Subagents section twice. The body's fallback list now steps aside whenever the list above renders. Gallery variantpopover-legacy-subagents; browser testan older record's Task-tool subagent beside a running command lists Subagents once.
Gallery
The stills below were taken at d211816b2a0, before the Stop and Subagents fixes above. The popover-with-activity stills from then showed a Stop on every running task, which no longer holds at the head, so they are removed rather than left to mislead. At the head, Stop shows only on the hovered or focused task: summary.css (.acpmux-summary-task>.acpmux-chat-inspector-stop[data-state=idle]{opacity:0}, and opacity:1 under :is(:hover,:focus-within)), covered by the tests below. New after stills of that state are a follow-up (gallery popover-legacy-subagents and the popover-with-activity state).
| State | Before (base) | After (this PR) |
|---|---|---|
| Narrow pane, popover open, light | ![]() | ![]() |
| Narrow pane, popover open, dark | ![]() | ![]() |
Viewed after image: after-narrow-summary-light.png shows no "Summary" title row; only the fold and close icons remain on top, then Environment (This Mac, atlas-web, main) above the empty-state line and Attach.
Note: the after header row keeps the fold and close icons with empty space after them. #27937's commits 109aeedd/7928ae3e kept that row on purpose ("keep popover controls", "keep popover folding behavior"); this carry leaves it as is.
Verification
python3 scripts/cmux-next/prepush-gate.py: no new violations.python3 scripts/web_lint_prepush.py --new-onlyon the merge: passes (Oxfmt, Oxlint, type check, design tokens, layers); the remaining findings are all on base too.CMUX_BROWSER_TESTS=1 bun test test/summary-header-surface.test.ts -t 'popover starts with Environment'on Linux fast checks atd211816b2a0: 1 pass, 10 expect() calls (run 41159744264).
Observed / Not run
Observed: the lint and gate runs, the browser test and the gallery stills above. Not run: the full summary-header-surface and narrow-layouts browser suites, and a native app capture (the popover is a webview surface, so the gallery is the evidence).
Risk
Normal UI behavior change, scoped to the Summary popover. Environment data is the existing Session Info data path. No toolbar icons, inline/right-pane panels or defaults changed.
Changelog
Changed: the toolbar's session popover starts with its machine, project, repository and branch, with activity counts under Subagents and no title row.
#27937 closes once this lands.
Agent session: agent session
🤖 Generated with Claude Code



