cmux NEXT: toggle the chat header's Files, Preview and side tabs from the palette
Leo, 2026-10-24 (ask-c6143f0e48): "command palette should be able to "do" more stuff... eg toggle session info. think of more things like this too. we can extend the actions situatoin we have in the command palette."
#25209 added Toggle Session Info. This adds Toggle Files Beside Chat, Toggle Preview Beside Chat, and Toggle Tabs Beside Chat through the same actions as their chat-header buttons. Unavailable rows explain why; automation requires focus. Commands carry the originating session identity and are dropped unless both the live selection and the rendered callback map belong to that chat. Availability is refreshed after every reconnect.
The three action titles and refusal reasons are localized in all 21 locales. Generated CLI and palette documentation includes the actions. No defaults or existing action rankings change.
Risk: adds a page-to-native availability projection and native-to-page command path. Target-aware refusal, session-bound delivery, and reconnect regression coverage constrain stale state and incorrect targeting.
Validation
Frozen merged head: ea6db1c86850d5c804cbc58ab37c6c5d28de1149, normal merge of base b30d2f1073e7fa50b5f5ab8cb09bcb42007dd1c4. Only documentation conflicts required resolution: action counts/exemptions and generated CLI reference counts. Product code merged cleanly; session ownership guards are preserved.
Run 40955051920 passed all 10 docs tests, generator freshness, full webviews checks and all four real Chromium palette regressions. Its tested tree 42fa4366717024bc1a0ecaa0bad3dae25c7cfabc exactly matches this merged head. The static pre-push gate and diff whitespace checks also passed.
Previous-head evidence below applies to ff7fcea115ceaa16cb957c7676c2400f262a117b; its source review is not transferred to the merged SHA.
prepush-gate.py: passed with no new violations.- Pure TypeScript docs generator plus all 10
next-docs.test.tstests: passed in run 40842376355; exact generated palette/CLI patch committed. - Generator freshness (no output changes) and all 10 docs tests passed at
d1725473f02024751f661425c35e226a428ee12bin run 40845394961. Docs inputs and generated output are unchanged in the final head. - Full webviews checks and all 4 real Chromium palette/reconnect/session-transition tests passed in run 40847991837. This tested the final repair snapshot; the exact formatter output was committed.
- The transition regression was also run against the old snapshot-only guard in run 40848481994. It failed as expected by opening the old chat's folder after the new chat snapshot arrived, proving coverage of the callback ownership race.
- Exact-head generated-files guard and prepush gate passed. The baseline registration covers an already-tracked palette-reference file under the existing rule, with no manifest or export widening. All 22 focused guard tests passed in run 40845952579.
- Independent Astra high/fast whole-diff source review: SHIP at
ff7fcea115ceaa16cb957c7676c2400f262a117b, with no actionable findings across all 28 changed files. Native validation remains held. Previous findings about stale-session delivery, render callback ownership, generated docs/counts, and the generated-file baseline are repaired.
Native ActionSurfaceParityTests generation, compile, Swift suites (AgentPageCommandTests, PaletteRowReasonTests, ActionCatalogTests, ActionSurfaceParityTests, AgentPaneSessionInfoTests) and fresh real native captures remain unexecuted at the newly merged head. The obsolete cross-PR #26809 hold is removed; these receipts must still be reconciled before landing. Prior-head media is historical only and is not final-head evidence.
Changelog
- Added: Toggle Files, Preview and Tabs Beside Chat in the command palette.
Agent session: agent session