Sidebar: an unnamed Cloud workspace reads as its machine, not "cmux"
HOLD: Leo rejected the Cloud row depiction (2026-10-30); this naming is being folded into #28051's rework. Do not land.
What
Leo, 2026-10-29, on the Cloud rows at the bottom of the sidebar:
"why is there all this weird stuff at the bottom of the sidebar"
"the rendering gets borked there too :("
"a whole lot of this cloud stuff ought to get better..."
Every Cloud row was titled "cmux". A workspace nobody renamed takes its front tab's name (WorkspaceAutoName); an idle shell's name is its folder's last component (NewWorkspaceName.forTab), and a Cloud VM's shell idles at /home/cmux. So every machine's row read "cmux", the account's home folder, which says nothing about which machine or what work.
On another computer (SSH, Cloud) a label that is only its home folder's name is now no name: the row counts as unnamed, and an unnamed row of another computer takes that computer's name (dev-vm). A row titled by its computer no longer says the computer again on its second line (dev-vm · ~ under dev-vm reads ~); a status such as Paused stays (Paused · ~). A shell in a project folder keeps that folder's name, a tab named (or a chat titled) like the home folder keeps that name, a named workspace keeps its name, and this Mac's rows and the local Chief's are unchanged.
Measured
Unnamed Cloud workspace, idle shell, one-list sidebar, compact:
| Case | base title / second line | head title / second line |
|---|---|---|
shell at /home/cmux on dev-vm | cmux / dev-vm · ~ | dev-vm / ~ |
| same, machine paused | cmux / dev-vm · Paused · ~ | dev-vm / Paused · ~ |
shell at /home/cmux/app | app / dev-vm · ~/app | app / dev-vm · ~/app (unchanged) |
workspace named deploy | deploy | deploy (unchanged) |
this Mac, shell at ~ | leo | leo (unchanged) |
Captures
No capture: the change shows only with Cloud machines in the left sidebar, and a capture mini's app build has none (no fixture puts Cloud workspaces in that list; the cloud-sidebar-machines tour is the right sidebar). The captures are the real SidebarListView drawn offscreen on a fleet Mac with four Cloud machine sections, base and head (https://github.com/manaflow-ai/cmux/pull/28045#issuecomment-6517342259).
Before and after captures are in the comment linked above.
Tests
scripts/ci/package-test-lane.sh suite Packages/macOS/CmuxNext SidebarRemoteHomeTitleTests,SidebarRowPageBesideChatTests,SidebarRowTitleTests,ChiefWorkspaceRowsTests,SidebarTabLineTests,GroupHeaderTrailingTests,SidebarMachineMarkTests,SidebarLookContractTests through cmux-ci run --class light:
- Red at 46892c40 (the test alone on base):
SidebarRemoteHomeTitleTestsfails (aCloudShellAtItsHomeReadsAsItsMachine,aRowTitledByItsMachineDoesNotRepeatIt); the other 7 suites pass. - Green at edf15e85: all 8 suites pass.
- Review fix (a title that only starts a machine name holding the separator stripped that prefix:
dev-vmondev-vm · stagingreadstaging): the label keeps the machine's name and status apart (SidebarMachineLabel) and drops the name only on an exact match. SuitesSidebarRemoteHomeTitleTests,SidebarMachineMarkTests,SidebarRowPageBesideChatTests,SidebarRowTitleTests,ChiefWorkspaceRowsTests,SidebarTabLineTests,GroupHeaderTrailingTests,SidebarLookContractTests,SidebarNowLineTests,SidebarRowStatusTests,WorkspacesAsTabsTests,SidebarPullRequestBadgeTests,SidebarRowNoDoneTests: red at 946f1be9 (the new tests alone),aTitleThatStartsTheMachinesNameKeepsTheNamefails on normal and expanded rows (staging · ~,staging,staging · Paused · ~,staging · Paused), the other 12 suites pass; green at 981dfebe, all 13 pass. - Review fix (any label equal to the home folder's name was dropped, so a tab the person named
devat/home/dev, or a chat titleddev, read as the machine):namesHomenow drops it only when the row's face tab is an unnamed terminal with no agent. Same suites plusSidebarQuietUnnamedRowTests: red at 9f76e0a8 (the new test alone),aTabNamedLikeTheHomeFolderKeepsItsNamefails for the named tab and the chat, the other 13 suites pass; green at 0549795c, all 14 pass; after the base merge, all 14 pass at cafad354.
Observed / Not run
- Observed: the fleet red/green runs above.
- Not run: a live Cloud VM in a dev build.
Risk
Normal. Row titles and the second line of other computers' unnamed rows only; this Mac and the local Chief are excluded and covered by ChiefWorkspaceRowsTests and thisMacsShellAtHomeIsUnchanged. Sidebar look note updated (plans/cmux-next/sidebar-owner.md).
Changelog
Fixed: an unnamed Cloud or SSH workspace is titled by its machine instead of its home folder's name ("cmux").
Agent session: agent session
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes unnamed Cloud and SSH workspaces reading as their account's home folder ("cmux") in the sidebar instead of the machine they run on.
- An unnamed workspace on another computer now takes that computer's name (e.g.,
dev-vm). - Base's removal of the normal second line (#28510) is kept; the machine name now appears only on an expanded row's meta line. A row titled by its machine drops the name there, keeping a status such as Paused; only an exact whole-name match drops, so
dev-vmon a machine nameddev-vm · stagingkeeps the name. - Only an idle shell's home folder counts as unnamed; a tab the person named, a chat titled the same word, and shells in project folders keep their names. This Mac's rows and the local Chief's are unchanged.