cmux-next sidebar: the Chief's workspaces read like any workspace (no aN id, no Chief line)
Summary
The workspaces the Chief opens for its subagents now look like any other workspace in the cmux NEXT sidebar. This is part 1 of Leo's ask from 2026-10-21. The row shows the task title on one line, with no a14 · id and no "Chief" second line. Who started it moves into the hover card.
Why
Leo's screenshot showed rows like "a14 · Native workflows runtime", with a second line reading "Chief" or "Chief · ~/Projects/cmux". He asked for:
- the title only, rendered like any row, with "Started by Chief" in the hover card and the context menu;
- one "Chief" group;
- the aN ids never shown in the UI.
Where those came from:
- The id: optchat-chief named each workspace
format!("{id} · {title}")(workspaces.rs). - The second line: it isn't Chief-specific. In the one-list sidebar, every non-local machine's rows name their machine on the second line (
SidebarLayout.machineLabel). The Chief owner daemon is such a machine, named "Chief". With a machine label, the row also shows its folder, which is where "Chief · ~/Projects/cmux" came from.
What changes
- optchat-chief: a subagent's workspace is named by its task's short title only (
workspaces::title). The aN id stays the Chief's own: status lines and the agents list still print it, and the prompt no longer says the workspace is namedaN · <title>. - Sidebar rows:
- Rows on the local Chief machine (
MachineID.isLocalChief, i.e.server-host_chief…) drop thea<digits> ·prefix an older Chief wrote (ChiefWorkspaceName.taskTitle, whichAgentChatTabTitle.taskNamenow shares). - The local Chief machine gets no one-list second line, so its rows match this Mac's rows.
- Rows on the local Chief machine (
- Hover card: the machine line on those rows reads "Started by Chief", keeping the connection dot.
- Chief sidebar item (#22759): its subagent rows show the task title, or "Subagent" when the chat has none. They no longer show
a3/a10 · Inspector. - Strings:
sidebar.hover.startedByChiefandchief.subagent.untitled, in all 21 languages.
Not in this PR
- One "Chief" group (point 2) and the "Started by Chief" context menu line: a follow-up.
- The Chief's rows aren't in "Codex". They sit loose at the end of the Chief machine's own section, which has no header in one-list mode, so they draw right after the last local group (Codex in Leo's sidebar).
- The follow-up gives that section one collapsible Chief group.
- Other source-specific labels: I found no other source-specific text labels in row rendering. Codex and lanes only show their brand glyph.
Testing
No capture: every visible change applies only to rows on the local Chief owner daemon's machine (server-host_chief…) and to the Chief item's subagent rows. A capture slot runs the app with its own HOME and no Chief home, so neither exists there, and a capture would show an unchanged sidebar. ChiefWorkspaceRowsTests and ChiefSidebarItemTests cover the row title, the missing machine line, the hover card line and the subagent rows.
- New
ChiefWorkspaceRowsTests:- the machine-id rule matches
ServerReach.localChief; - the prefix strip only touches
a<digits> ·; - the mapped row title, the empty machine line, and the hover card's "Started by Chief".
- the machine-id rule matches
ChiefSidebarItemTestsupdated to expect titles with no ids.optchat-chiefworkspace_titlesno longer asserts the prefixed name.- A fleet compile-check is running; PR CI runs the Swift and Rust tests.
Agent session: cosmic-gray
🤖 Generated with Claude Code