Skip to content

Filter modifier-hold shortcut hints by held modifier - #10833

Open
austinywang wants to merge 23 commits into
mainfrom
issue-9842-modifier-hints
Open

austinywang wants to merge 23 commits into
mainfrom
issue-9842-modifier-hints

Conversation

@austinywang

@austinywang austinywang commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Testing

  • Regression policy is split into two commits: cba4103e87 (test) then 93ea8888f6 (fix).
  • Before the fix, the focused policy run was red with 5 failures.
  • After the fix, the focused policy run passed 4/4 cases.
  • swift test --disable-sandbox in vendor/bonsplit: 222 XCTest cases and 27 Swift Testing cases passed.
  • Parent checks passed: package-resolved policy, workspace package grouping, pbxproj normalization, pbxproj test wiring, Swift warning-budget guard, and CI change-area filter.
  • No local Xcode/XCUITest or tagged launch was run, per the recovery dispatch restrictions.

The repository no longer contains .github/swift-file-length-budget.tsv or scripts/swift_file_length_budget.py (the budget was removed on main in #8125), so that requested audit command is unavailable; no parent Swift files were changed, and the two touched Bonsplit Swift files have no applicable parent budget row.

Demo Video

Not recorded: local UI launch is explicitly prohibited for this recovery session.

Review Trigger

Not requested; background review agents are disabled by the task instructions.

Checklist

  • Tested the change locally
  • Added or updated tests for the behavior change
  • Updated docs/changelog if needed (no user-facing strings changed)
  • Dogfood/UI video (blocked by explicit no-launch restriction)
  • Merge (requires user approval; do not merge)

Summary by CodeRabbit

  • Chores
    • Updated the bundled Bonsplit component to a newer version.
    • No direct user-facing feature or behavior changes.

@cursor

cursor Bot commented Aug 26, 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 Aug 26, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: e5fee064-38d7-41a8-90b8-85f48b140553

📥 Commits

Reviewing files that changed from the base of the PR and between df26a70 and 90df858.

📒 Files selected for processing (1)
  • .github/workflows/cmux-skill-contract.yml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: e4df65b3-7714-4737-8ede-e7a8a2648f89

📥 Commits

Reviewing files that changed from the base of the PR and between 1f98632 and df26a70.

📒 Files selected for processing (1)
  • vendor/bonsplit

Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The PR advances the vendor/bonsplit subproject pointer from commit 0501fed692b23bf793b60b046caccc08332b3d0b to 28e37a4a640edcdb4a5a3ed7add65ded5cf50c91. No in-tree source code changes.

Changes

Bonsplit subproject update

Layer / File(s) Summary
Update bonsplit subproject pin
vendor/bonsplit
The vendored subproject pointer advances to commit 28e37a4a640edcdb4a5a3ed7add65ded5cf50c91.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to df26a

This localized update changes modifier-hold shortcut hints and preserves configured labels; the supplied tests and checks pass, and no actionable merge-blocking risk remains beyond normal review.

Suggested reviewers: lawrencecchen, azooz2003-bit

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the behavior implemented by the updated Bonsplit dependency and matches the linked issue objective.
Description check ✅ Passed The description includes a summary, rationale, testing results, demo-video status, review status, and checklist. It explains why the video and review trigger were omitted under the stated restrictions…
Linked Issues check ✅ Passed The Bonsplit dependency update addresses issue #9842 by filtering modifier-hold hints by the held Command or Control family and preserving configured modifier labels.
Out of Scope Changes check ✅ Passed The changeset contains only the intended vendor/bonsplit subproject pointer update. No unrelated in-tree source changes are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Cmux Swift Actor Isolation ✅ Passed PASS: The PR changes only the Bonsplit submodule pointer. The referenced Bonsplit range changes one production helper in TabBarView.swift and updates TabItemView SwiftUI .onChange overloads; the…
Cmux Swift Blocking Runtime ✅ Passed PASS — The exact Bonsplit comparison changes only deterministic shortcut filtering, onChange closure signatures, and test assertions. The added production Swift code in TabBarView.swift performs m…
Cmux Browser Automation Off-Main ✅ Passed PASS: The effective PR diff contains only the vendor/bonsplit gitlink update from 0501fed692... to 28e37a4a64.... It changes neither Sources/TerminalController.swift nor `Packages/macOS/CmuxCo…
Cmux Expensive Synchronous Load ✅ Passed PASS: The PR-level superproject diff is only the Bonsplit pointer update from 0501fed to 28e37a4. The upstream comparison contains changes only in TabBarView.swift, TabItemView.swift, and tests. The p…
Cmux Cache Substitution Correctness ✅ Passed PASS — The Bonsplit comparison shows changes only to modifier-hold hint filtering, hint-label handling, warning syntax, and tests. TabControlShortcutHintPolicy reads the configured shortcut and cont…
Cmux No Hacky Sleeps ✅ Passed PASS: The pull-request diff changes only the vendor/bonsplit gitlink, from 0501fed692... to 28e37a4a640.... The named test and fix commits also change only this gitlink. No TypeScript, JavaScrip…
Cmux Algorithmic Complexity ✅ Passed PASS — The PR changes only the vendor/bonsplit gitlink. The exact dependency diff contains 21 added lines in TabBarView.swift, which switch over fixed Command/Control flags and read one configured…
Cmux Swift Concurrency ✅ Passed PASS: The PR-side diff contains only one gitlink update for vendor/bonsplit, from 0501fed692... to 28e37a4a64.... It introduces no cmux-owned Swift source changes. The submodule is declared as t…
Cmux Swift @Concurrent ✅ Passed PASS. The parent diff changes only the vendor/bonsplit gitlink. The pinned Bonsplit comparison contains Swift changes in TabBarView.swift, TabItemView.swift, and BonsplitTests.swift. The chang…
Cmux Swift Package Boundaries ✅ Passed PASS — The pull-request delta against its upstream parent changes only the vendor/bonsplit gitlink from 0501fed... to 28e37a4.... The feature commits also show only vendor/bonsplit changes. No…
Full details: Description check

Explanation

The description includes a summary, rationale, testing results, demo-video status, review status, and checklist. It explains why the video and review trigger were omitted under the stated restrictions.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Full details: Cmux Swift Actor Isolation

Explanation

PASS: The PR changes only the Bonsplit submodule pointer. The referenced Bonsplit range changes one production helper in TabBarView.swift and updates TabItemView SwiftUI .onChange overloads; the remaining changes are tests. The new helper is private, synchronous, pure, and does not add a model, service protocol, Sendable reference type, or background access to UI state. TabControlShortcutStoredShortcut and TabControlShortcutHintPolicy already existed, and the existing @MainActor key monitor remains the only UI-bound store path. The TabItemView change is an allowed SwiftUI UI-type change. No stated actor-isolation failure condition is introduced or materially worsened.

Full details: Cmux Swift Blocking Runtime

Explanation

PASS — The exact Bonsplit comparison changes only deterministic shortcut filtering, onChange closure signatures, and test assertions. The added production Swift code in TabBarView.swift performs modifier-flag checks. TabItemView.swift only updates deprecated onChange overload syntax. The diff adds no semaphore, blocking wait, sleep, delayed dispatch, polling, main-queue sync, or manual lock.

Full details: Cmux Browser Automation Off-Main

Explanation

PASS: The effective PR diff contains only the vendor/bonsplit gitlink update from 0501fed692... to 28e37a4a64.... It changes neither Sources/TerminalController.swift nor Packages/macOS/CmuxControlSocket, and it adds no browser socket command or worker-policy test. The rule therefore does not apply.

Full details: Cmux Expensive Synchronous Load

Explanation

PASS: The PR-level superproject diff is only the Bonsplit pointer update from 0501fed to 28e37a4. The upstream comparison contains changes only in TabBarView.swift, TabItemView.swift, and tests. The production change decodes one small, fixed-shape shortcut preference from UserDefaults during modifier-hint handling. It does not load agent history, transcripts, trajectories, JSONL logs, directories, or unbounded files, and it adds no per-record syscalls or whole-corpus loader. The other production change only updates SwiftUI onChange signatures.

Full details: Cmux Cache Substitution Correctness

Explanation

PASS — The Bonsplit comparison shows changes only to modifier-hold hint filtering, hint-label handling, warning syntax, and tests. TabControlShortcutHintPolicy reads the configured shortcut and controls transient hint visibility; it does not replace a fresh persistence, history, undo, or snapshot read with a cache. The changed UI hint path is explicitly an allowed non-persisted UI case.

Full details: Cmux No Hacky Sleeps

Explanation

PASS: The pull-request diff changes only the vendor/bonsplit gitlink, from 0501fed692... to 28e37a4a640.... The named test and fix commits also change only this gitlink. No TypeScript, JavaScript, shell, or build/runtime script change introduces a sleep, timer, polling loop, or fixed delay. The check is therefore not applicable.

Full details: Cmux Algorithmic Complexity

Explanation

PASS — The PR changes only the vendor/bonsplit gitlink. The exact dependency diff contains 21 added lines in TabBarView.swift, which switch over fixed Command/Control flags and read one configured shortcut, plus three SwiftUI onChange signature updates in TabItemView.swift. It adds no scalable-collection scan, nested scan, repeated sort/filter, batch rescan, join, or slower unbenchmarked algorithm. The remaining 53 added lines are test changes, which the rule excludes.

Full details: Cmux Swift Concurrency

Explanation

PASS: The PR-side diff contains only one gitlink update for vendor/bonsplit, from 0501fed692... to 28e37a4a64.... It introduces no cmux-owned Swift source changes. The submodule is declared as the separate manaflow-ai/bonsplit repository, so the listed legacy concurrency patterns are not introduced in cmux-owned code.

Full details: Cmux Swift `@Concurrent`

Explanation

PASS. The parent diff changes only the vendor/bonsplit gitlink. The pinned Bonsplit comparison contains Swift changes in TabBarView.swift, TabItemView.swift, and BonsplitTests.swift. The changed production code adds or edits only synchronous functions and synchronous .onChange closures. It adds no nonisolated async function, @concurrent annotation, or CPU/file/network-heavy async helper or call site. Existing @MainActor task-based UI work is unchanged.

Full details: Cmux Swift Package Boundaries

Explanation

PASS — The pull-request delta against its upstream parent changes only the vendor/bonsplit gitlink from 0501fed... to 28e37a4.... The feature commits also show only vendor/bonsplit changes. No in-tree production Swift source or SwiftPM target changed, and the boundary policy allows vendored code. Therefore, the diff does not introduce or expand an app-target domain-logic boundary violation.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-9842-modifier-hints

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.

@vercel

vercel Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cmux166 Canceled Canceled Sep 2, 2026 2:04am UTC
cmux41 Canceled Canceled Sep 2, 2026 2:04am UTC

@cursor

cursor Bot commented Sep 1, 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.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

You’re at about 90% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.

Re-trigger cubic

@cursor

cursor Bot commented Sep 1, 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.

@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

Deployment failed for project cmux166 with the following error:

Resource is limited - try again in 60 minutes (more than 450, code: "api-deployments-paid-per-hour").

Learn More: https://vercel.com/manaflow?upgradeToPro=build-rate-limit

@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

Deployment failed for project cmux41 with the following error:

Resource is limited - try again in 60 minutes (more than 450, code: "api-deployments-paid-per-hour").

Learn More: https://vercel.com/manaflow?upgradeToPro=build-rate-limit

@austinywang

Copy link
Copy Markdown
Contributor Author

recheck

@github-actions

github-actions Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@austinywang
austinywang force-pushed the issue-9842-modifier-hints branch from c2794bd to df26a70 Compare September 1, 2026 13:50
@cursor

cursor Bot commented Sep 1, 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.

@cursor

cursor Bot commented Sep 1, 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.

@cursor

cursor Bot commented Sep 1, 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.

@cursor

cursor Bot commented Sep 1, 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.

@cursor

cursor Bot commented Sep 1, 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.

…ints

# Conflicts:
#	.github/workflows/cmux-skill-contract.yml
@teamleaderleo teamleaderleo added S3: minor Wrong behavior with a workaround area: input Keyboard, shortcuts, IME, mouse, clipboard and paste difficulty:2 Focused: one package or feature boundary labels Sep 30, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator

Still live; it depends on Bonsplit #225 and the current branch conflicts with main, so leaving it open for dependency and catch-up.

This branch was successfully deployed

2 active deployments
Preview – cmux41 — 5094e4b2 Deployed Sep 2, 2026 by vercel[bot]
Preview – cmux166 — 5094e4b2 Deployed Sep 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: input Keyboard, shortcuts, IME, mouse, clipboard and paste difficulty:2 Focused: one package or feature boundary S3: minor Wrong behavior with a workaround

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modifier-hold shortcut hints should be filtered by the held modifier

2 participants