Skip to content

cmux-next: a Dock bounce stops once its alert is read elsewhere - #21883

Merged
teamleaderleo merged 5 commits into
feat-cmux-nextfrom
feat/next-dock-bounce-cancel
Oct 19, 2026
Merged

teamleaderleo merged 5 commits into
feat-cmux-nextfrom
feat/next-dock-bounce-cancel

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

These are two follow-ups from the review of #21735 (Dock bounce).

  • A bounce stops once its alert is read elsewhere. With Until You Switch to cmux, the Dock icon kept bouncing after the notification was read on the phone, from the CLI, or with Mark All Read, because nothing cancelled the attention request. DockAttention (in CmuxNextDesign, with a bounce(untilActive:) API that NotificationCenterService maps notifications.dockBounce onto) now keeps the running request and cancels it when the unread count drops to zero. The unread count comes from the daemon store, so a clear from any client reaches it.
  • notify --desktop false no longer bounces. That poster asks for no banner, so the bounce now follows the banner decision instead of the alert decision.

The bounce helper moved out of the App, so CmuxNextApp's source still comes out 1 line under the base.

Known gap: an alert with no tab (for example cmux notify without a surface) doesn't raise the unread count, so an until-you-switch bounce from it stops only when you switch to cmux, not when the alert is cleared elsewhere.

Testing

  • The fleet export step at 644b20c built the package and tests. Its export stamp is committed at 4786f0d.
  • package-test-lane.sh suite at 4786f0d passed DockBouncePolicyTests (now including a no-banner case), FinishedBannerBurstTests, ApprovalBannerTests and SettingsSchemaExportTests.
  • Not run: DockAttention is AppKit-only and isn't unit-tested, and I didn't try the cancel live in a tagged build.

Changelog

Fixed: A Dock bounce set to last until you switch to cmux stops once the notification is read elsewhere, and notify --desktop false no longer bounces.

🤖 Generated with Claude Code

teamleaderleo and others added 2 commits October 19, 2026 02:51
…ounce without a banner

Follow-ups from the #21735 review:

- Until You Switch to cmux bounced on after the notification was read on the
  phone, from the CLI or by Mark All Read, since nothing cancelled the
  request. DockAttention (CmuxNextSettings) keeps the running request and
  cancels it when the unread count reaches zero.
- `notify --desktop false` asks for no banner, so it gets no bounce either:
  the bounce follows the banner decision, not the alert decision.

CmuxNextApp source shrinks by 2 lines (the bounce helper moved out).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated only: fleet export step at 644b20c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 19, 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: 8dc7213f-069c-4957-8be2-865b11119bb6

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
  • Autofix · 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.

…tting

Review of #21883: a settings module should not call app-wide AppKit.
DockAttention moves to CmuxNextDesign with a bounce(untilActive:) API;
NotificationCenterService maps notifications.dockBounce to it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-2qlrn created for this PR by the cmux coordinator.

…ock-bounce-cancel

# Conflicts:
#	schemas/settings-export/settings-schema.sources.sha256
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Receipt for 8a1a7e3 (this PR's head; a new push replaces it)

  • Visual review: HQ feed card · gallery before/after runs
  • Checks: this head
  • App of this head (app.zip, kept 1 day): gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr21883 -f ref=feat/next-dock-bounce-cancel -f platform=macos -f backend_mode=local

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

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

CI passes on 8a1a7e3eea (run 39194561012 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, seen on other PRs that it failed on another pull request's run lately.

Generated only: fleet export step at 05a097d.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@blacksmith-sh

blacksmith-sh Bot commented Oct 19, 2026

Copy link
Copy Markdown

Found 3 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmphxg6_kyq/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpi3qf7f9z/summary-missing.json (live):/summary-missing.json (live): View Logs
test_a_file_a_test_reads_selects_that_test (main.PullRequestTiers.test_a_file_a_tes
t_reads_selects_that_test)/
test_a_file_a_test_reads_selects_that_test (main.PullRequestTiers.test_a_file_a_tes
t_reads_selects_that_test)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo
teamleaderleo merged commit 53c56cb into feat-cmux-next Oct 19, 2026
126 of 135 checks passed
@teamleaderleo
teamleaderleo deleted the feat/next-dock-bounce-cancel branch October 19, 2026 04:30
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.

1 participant