cmux NEXT: the Chief's status, subagents and actions in its pane's tab row

Merged
TE
16d ago
+581-6

Follows #22759 (merged): the sidebar's Chief item.

Summary

Leo asked (2026-10-20) for the Chief's pane to get a top-right area like a normal workspace's, holding its status, subagents and actions, in the same place as a chat's tools in the pane's tab row (PaneTabRowSharing, #22655, #22758, #22769).

  • The docked Home's Messages view (the Chief's chat) shares its pane's tab row. HomeDockSwitchView conforms to PaneTabRowSharing:
    • tabRowToolsWidth / tabRowToolsNeed give the shown view's tools' width (tabRowToolsNeed is kept after the row ends).
    • The tools sit at the row's trailing end, left of the pane's own toolbar.
    • The view lays its content under the row, and sets setTabRowCover, only while the tools are in the row.
    • Channels has no tools; switching to it tells the pane.
  • The page-tab wrapper forwards the row. InternalPageView forwards the row to its page through a new PaneTabRowForwarding protocol in CmuxNextDesign. That is a one-line conformance, so CmuxNextApp does not grow.
  • ChiefPaneTools (CmuxNextAgentLanes) draws the tools:
    • the Chief's status mark: the same ChiefSidebar.status as the sidebar item; its slot is kept while idle;
    • Subagents: every subagent with its status; a row opens like its sidebar row;
    • Chief Actions: Stop Chief, Chief Settings, the Memory Inspector, Usage, New Chief, all from the catalog with their shortcuts.
  • Wiring. ChiefSidebar.bind registers the tools factory (HomeDockSwitchView.makeRowTools).
  • Off switch. The tools follow ChromeTunables.tabRowTools: with it off, there are no tools.

Testing

  • HomeDockTabRowToolsTests (new):
    • the width is reported;
    • fitsTabRow holds and fails in the right rooms;
    • the tool and content frames are right with the row offered and without it;
    • Channels reports no tools, keeps the need and tells the pane once.
  • prepush-gate.py: no new violations. check-app-size.sh --base origin/feat-cmux-next: OK.

Observed / Not run

  • Observed: the static gate and the size cap, run locally.
  • Not run: the Swift build and the tests. Per the repo rules, they run on CI, not on this Mac. I have not dogfooded this in a tagged build.

Changelog

  • Added: The Chief's pane shows the Chief's status, its subagents and its actions at the right end of its tab row.

Strings: 2 new keys (chief.tools.subagents, chief.tools.actions) in 21 locales, in a new CmuxNextAgentLanes string catalog.

Agent session: cosmic-gray

🤖 Generated with Claude Code