Skip to content

cmux-next: hover swaps an unread row's badge for its x in place - #17625

Merged
teamleaderleo merged 7 commits into
feat-cmux-nextfrom
op-next-row-close-slot
Oct 6, 2026
Merged

teamleaderleo merged 7 commits into
feat-cmux-nextfrom
op-next-row-close-slot

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

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.anUnreadRowsNameKeepsItsWidthOnHover covers a dot, a small count and a three-digit count. The test commit goes first, and this PR's cmux-next swift test lane records red on it and green on the fix.
  • The fleet suite run on the red commit stopped early, on DebugMouseButtonTests (it needs a display), before reaching the sidebar suites.
  • check-no-godfiles and check-concurrency pass.

Changelog

  • Fixed: Hovering an unread workspace in the sidebar no longer shifts its name.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with 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

  • Adds SidebarHoverStabilityTests.anUnreadRowsNameKeepsItsWidthOnHover, covering a dot, a small count, and a three-digit count.

Written for commit 843c615. Summary will update on new commits.

Review in cubic Turn on auto-fix

teamleaderleo and others added 2 commits October 6, 2026 11:31
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 6, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot 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.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 4470639a-4b50-4cd0-8015-64545f546f91

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Not verified: macOS jobs did not run: compile and app tests were skipped on a9b27b042d; ci-status is green without them.

CI passes on a9b27b042d (run 37529482462 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Red and green on this PR's cmux-next swift test lane:

  • Red, test commit a8e5bf0 (job): .dot title width went from 222 to 214 on hover, and .count(128) from 204 to 214.
  • Green, fix 84dafc0 (merged as e8cba72, job): anUnreadRowsNameKeepsItsWidthOnHover passes with all 3 cases.

That lane was still red on WorkspaceRowMiddleClickTests and DebugMouseButtonTests, which #17624 fixes. a9b27b0 merges it in.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Batch queue: green. Batch stack 1a07d268cf62 on feat-cmux-next 423bd8a882c8 with #17584 #17602 #17609 #17611 #17625 #17630 #17633. Fleet production build: job 07b1c1720d6973c1d000950b (cmux-ci artifact 07b1c1720d6973c1d000950b (job 07b1c1720d6973c1d000950b, tag nb-local-20261006-192713-1)). heavy tier did not run on this branch (run); your PR's own checks are the tests. Validated this PR at a9b27b042d61.

Next: land it yourself with gh-merge-green on this receipt.

@cursor

cursor Bot commented Oct 6, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot 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.

@teamleaderleo
teamleaderleo merged commit 2d88394 into feat-cmux-next Oct 6, 2026
56 of 77 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-row-close-slot branch October 6, 2026 21:41
teamleaderleo added a commit that referenced this pull request Oct 6, 2026
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants