Sidebar: profile button shows avatar, name and a menu chevron
The sidebar's bottom-left profile button in cmux NEXT was a bare 24 pt avatar. It now reads as one control, following the legacy footer redesign in #14893: the avatar, the profile's name, and one chevron.up at the trailing edge that points the way the menu opens. The whole chip is the click target, with the shared chrome fills (ChromeHover: hover, then pressed), and it holds the selected fill while its menu is open.
The chip fills the footer line's free width up to 220 pt, minus room for the Search button and the spaces dots, which still sit after it (amendment 2 of SIDEBAR-FOOTER-AND-SPACE-MENU, plans/cmux-next/sidebar-search.md). As the sidebar narrows, the name truncates, then the chip drops to avatar and chevron, then to the old avatar-only square. It only becomes a chip when the account is the footer section's sole item (the default), so a custom footer keeps its icon line. The menu is unchanged: a native NSMenu opened upward with its leading edge on the control, now the chip's leading edge.
Mechanism: SidebarRegionView.labelWidths gives the avatar item a chip width from the line width, so SectionFlow lays it out as a .chip; SidebarItemRowView draws the avatar chip; SidebarFooterBand.profileControl accepts chip rows, and popUpProfileMenu sets showsMenu around menu.popUp, which also clears the pressed state the menu's tracking used to leave behind.
Two base-branch compile fixes for CmuxNextAppTests on Xcode 26.6 are cherry-picked from leo/chief-dock-drag unchanged (30782b07 TransferProgressGateTests, 9140ff56 DaemonRestartTests), so the test target builds; whichever PR lands second merges cleanly.
Verification
- Red:
cmux-ci run --redofSidebarProfileChipTestsat 09f0df5ab999 (base + the test commit, on a scratch branch) failedaRoomyFooterShowsTheAvatarAndTheName: title width 0, a 24×24 square, no name after the avatar. The narrow-fallback test passed, as intended. - Green:
SidebarProfileChipTests,ProfileButtonHitTargetTests,SidebarSearchButtonTests,SidebarBandHideTests,MouseDownSelectsTests,SidebarKeyFocusTests,SharedIndicatorSurfacesTestsat 273ddeb12b67 viacmux-ci run(package-test-lane.sh suite, Xcode 26.6): all 7 suites passed. - Nothing was checked visually: no tagged build was run or looked at, so the spacing, the chevron size and the fills are unverified on screen.
lint-ios-package-conventions.sh --namespace-fixcould not run in this sparse checkout; the change adds no package types.- No new user-facing strings (the chip shows the profile's name).
Changelog
- Changed: The sidebar's profile button shows your avatar, name and a menu chevron, and keeps a highlight while its menu is open.
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
The sidebar's bottom-left profile button in cmux NEXT now reads as one chip: the avatar, the profile's name, and a trailing chevron.up pointing the way the menu opens, following the legacy footer redesign (#14893). The whole chip is the click target with the shared chrome fills, and it holds the selected fill while its menu is open.
- The chip fills the footer line's free width up to 220 pt, reserving room for the Search button and the spaces dots; as the sidebar narrows, the name truncates, then drops to avatar+chevron, then to the avatar alone.
- It is a chip only when the profile is the footer section's sole item, so custom footers keep their icon line. The menu is unchanged: a native
NSMenuopened upward with its leading edge on the control. - Carries the Xcode 26.6 compile fix for
TransferProgressGateTests; the merge fromfeat-cmux-nextresolved theDaemonRestartTestsfix, so the test target builds.