Repository navigation
cmux-next: hover swaps an unread row's badge for its x in place - #17625
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
|
Red and green on this PR's
That lane was still red on |
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
* test: gh-merge-green must refuse while a cmux-next run is pending Red: the helper merges a feat-cmux-next head whose cmux-next.yml run is still in progress or rerunning, because native jobs that do not exist yet are never required. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: gh-merge-green waits for the cmux-next run on the exact head Native cmux-next check runs only exist once their jobs start, and a rerun after a runner loss keeps the old verdict visible, so the helper merged heads whose Mac tests never ran (#17602, #17625). For feat-cmux-next it now reads the cmux-next.yml runs for the head SHA and refuses while any is not completed, with or without --override. An API error fails closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Hovering a workspace row with an unread badge swapped the badge for the close x at a different width. The name and the activity glyph beside it shifted on every hover. Now the x and the badge share one slot as wide as the wider of the two, so hover swaps them in place. Rows without a badge are unchanged: the x still appears on hover and narrows the name first, as the marquee expects.
Follows the hover stability rule from #17591: hover never moves known chrome.
Testing
SidebarHoverStabilityTests.anUnreadRowsNameKeepsItsWidthOnHovercovers a dot, a small count and a three-digit count. The test commit goes first, and this PR'scmux-next swift testlane records red on it and green on the fix.DebugMouseButtonTests(it needs a display), before reaching the sidebar suites.check-no-godfilesandcheck-concurrencypass.Changelog
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes the sidebar so hovering an unread workspace row swaps its badge for the close x without shifting the row's name or activity glyph. The badge and x now share a slot sized to the wider of the two, so the swap happens in place; rows without a badge keep the existing behavior where the x appears on hover and narrows the name first.
Testing
SidebarHoverStabilityTests.anUnreadRowsNameKeepsItsWidthOnHover, covering a dot, a small count, and a three-digit count.Written for commit 843c615. Summary will update on new commits.