Repository navigation
cmux NEXT sidebar: hover card names a Cloud machine once, closes tabs, stops re-hover flicker - #32688
Conversation
Leo, 2026-11-02, on a Cloud workspace's hover card: "isn't this extremely
stupid looking?" / "the tiny cloud icon the repeated cloud cloud cloud".
The card's header names the machine once ("Cloud" or the remote machine's
name, secondary ink or its colour pick) right after the title, its
connection dot beside it. The title carries no icon on such a card and the
separate host row is gone. Tab rows name a machine only when the tab runs
somewhere other than the header says. The workspace row no longer draws a
machine glyph; its accessibility label still names the machine.
Sidebar-Look: "isn't this extremely stupid looking?" "the tiny cloud icon the repeated cloud cloud cloud"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d7e9fe71444b4a2123
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Default changesThis pull request changes 7 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
…card-cloud-once # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/WorkspaceRowView+Rendering.swift # Packages/macOS/CmuxNext/Sources/CmuxNextSidebar/Views/WorkspaceRowView.swift
Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d7e9fe71444b4a2123
|
Review (subagent claude-opus-5-5 medium): SHIP at 02ffacf Visual verdict: no images; the header, tab-row and row changes match Leo's ask by code reading. |
|
Found 1 test failure on Blacksmith runners: Failure
|
…ark's size #32688 removes the workspace rows' machine mark and its image helper, so the header no longer borrows WorkspaceRowView.machineMarkImage and the test pins the header's mark to the status mark size every row's trailing mark takes, not to a row's machine mark. Either PR now lands first without breaking the other. Sidebar-Look: the sizes of the icons for groups and workspaces aren't the same size anymore they should be Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-37e34789fdc077e9813b
…tidy its tab rows A hovered tab row shows a close button that closes the tab and keeps the card open. Coming back to the row whose card is fading out shows the same card with no crossfade, and the rows' spinners keep turning instead of redrawing. The spinner sits after the title; the meta line drops "Working" and "This Mac" and truncates with an ellipsis. Sidebar-Look: Leo 2026-11-02: "YOU SHOULD BE ABLE TO CLOSE THESE TABS FROM THE HOVER PREVIEW AND THE HOVER PREVIEW SHOULD NOT MAKE THE SIDEBAR FLICKER" / "PLUS THE PLACEMENT LOOKS LIKE SHIT" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d7e9fe71444b4a2123
* fix(sidebar): a remote group's machine mark is its rows' size Leo (2026-11-02): "the sizes of the icons for groups and workspaces aren't the same size anymore they should be". #29833 drew each workspace row's machine mark at a status mark's size but left the group header's trailing mark (added in 4ef89f1) at the leading glyph's side, larger than the rows under it. The header now draws the rows' mark image at their size; the leading look keeps the icon column's glyph. Adds SidebarGroupIconSizeTests (group icon vs workspace icon box, group vs row machine mark, every density and text size). Sidebar-Look: the sizes of the icons for groups and workspaces aren't the same size anymore they should be Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-37e34789fdc077e9813b * fix(sidebar): the group's machine mark draws its own image at a row mark's size #32688 removes the workspace rows' machine mark and its image helper, so the header no longer borrows WorkspaceRowView.machineMarkImage and the test pins the header's mark to the status mark size every row's trailing mark takes, not to a row's machine mark. Either PR now lands first without breaking the other. Sidebar-Look: the sizes of the icons for groups and workspaces aren't the same size anymore they should be Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-37e34789fdc077e9813b * test(sidebar): the group mark's box carries the size; its image rasters at the icon floor Review at 0ea3e2b: NSImage.icon rasters at max(iconFloor, size), 12 pt, so the image-size check could not hold at a 10 pt status mark. Sidebar-Look: no visual change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-37e34789fdc077e9813b --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…on the ✕ Review at 51fa9e9: the rows' and header's spinners joined the panel before it showed, so with occlusion tracking off they drew a still arc. Coming back to a fading card no longer crossfades, which keeps them turning in place. Also drops a duplicated test, lets the ✕ take the first click in the never-key panel, and clears the card's close handler on deactivate. Sidebar-Look: Leo 2026-11-02: "IT RE-RENDERS THE SPINNER VIEW IT'S BAD" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d7e9fe71444b4a2123
|
Review (subagent claude-opus-5-5 medium): SHIP at 22e4c97 The first pass at 51fa9e9 found a duplicated test and spinners that would freeze once occlusion tracking was off. Both are fixed: the duplicate is gone and occlusion tracking is back to base. The flicker fix now rests on the no-crossfade return and Follow-ups:
|
#32688 named the personal machine once more in HoverCardMachineColorTests, so the fleet rule lint (big-red) went red on base. The fixture now uses "my-vm", as the allowlist entry asked, and the entry is removed since nothing matches any more. python3 tests/test_ci_fleet_rule_lints.py: test_big_red passes (red at 901d7e6). Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d7e9fe71444b4a2123 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Treat as a
leo-named-fix(lanes can't add that label): every change here is a fix to something Leo named.Takes back #29833: Leo asked to drop the sidebar row's machine glyph ("the tiny cloud icon the repeated cloud cloud cloud"). The row's accessibility label still names the machine.
Takes back #28897: the hover card's separate machine row is gone and the machine is named once in the header, so the machine-colour test now reads the header's name.
Leo, 2026-11-02, on a Cloud workspace's hover card that said Cloud four times (a cloud icon before the title, a "Cloud" row with another cloud icon, "Cloud" under the Terminal tab, and the tiny cloud mark on the sidebar row behind it):
Leo, 2026-11-02 23:55Z, on the same card's tab rows:
What changes
Machine named once
appearance.machineColorspick when one is set.namesLocalMachine.Close tabs from the hover card
SidebarIntent.closeTab, which closes the tab through the same path as the palette's Close Tab.No flicker on re-hover
HoverCardMachineremembers the last shown target. Coming back to a row whose card is still fading out shows the same card as a non-sliding show.HoverCardPanel.presentno longer crossfades a body over itself just because it was dismissing.Placement
lane-vm-11/nightly-rollbackshows only its last part.Gallery and spec
design/sidebar.mdin our notes repo andplans/cmux-next/sidebar-owner.mdrecord the rules.Tests
WorkspaceHoverHostIdentityTests.aCloudCardNamesItsMachineExactlyOnceWorkspaceTabHoverCardTests.aHoveredRowsCloseButtonClosesItsTabAndKeepsTheCardWorkspaceHoverCardBehaviorTests.comingBackToTheSameRowShowsTheSameCardWithNoCrossfade(new);comingBackSoonupdatedWorkspaceTabHoverCardRichRowsTests:rowsNeverRepeatTheCardsMachinetheThisMacVariantNamesThisMacaRemoteWorkspacesTabNamesOnlyAnotherMachineagentRowsShowModelAndTimeAndLeaveWorkingToTheSpinneraLanePathSessionShowsItsShortNameSidebarMachineMarkTests.aRowOnAnotherMachineDrawsNoMachineGlyphHoverCardMachineColorTestsObserved / Not run
python3 scripts/cmux-next/prepush-gate.py: no new violations.Changelog
Changed: A Cloud or remote workspace's hover card names its machine once, beside the title. Its tab rows close with a ✕ on hover and no longer flicker when you hover back. They show a shorter line, with the spinner next to the title. Sidebar rows no longer draw a machine icon.
🤖 Generated with Claude Code
Agent session: agent session