Add shortcut to settle the open thread#4277
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature: a keyboard shortcut (mod+shift+x) to settle threads with a confirmation dialog and auto-navigation to the next active thread. New features with user-facing workflows warrant human review. You can customize Macroscope's approvability policy. Learn more. |
4ac33ed to
a3cb697
Compare
7e1eb9e to
e6e9e4a
Compare
e6e9e4a to
f065547
Compare
2d4990a to
a6d2a79
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a6d2a79. Configure here.

What Changed
thread.settleas a configurable keybinding command withMod+Shift+Xas the defaultWhy
Settling the thread currently requires targeting a hover-only sidebar action. A global shortcut makes this frequent lifecycle action available without leaving the keyboard, while the focused confirmation prevents accidental settles and makes the confirmation keystroke explicit.
UI Changes
The shortcut opens an in-app alert dialog naming the thread and explaining that it moves out of active work. The
Settle threadbutton is the initial focus target and displays anEnterkey hint; Escape cancels.Exact-head browser verification completed in an isolated environment against a disposable thread; the focused confirmation state is shown below.
Checklist
vp checkvp run typecheckvp test apps/web/src/keybindings.test.ts apps/server/src/keybindings.test.tsvp run --filter @t3tools/web buildExact-head evidence
Revalidated at 2d4990a: focused tests, vp check, and vp run typecheck passed. Integrated browser verification confirmed Mod+Shift+X opens the settle dialog from the focused composer while preserving draft text, and Mod+Shift+Enter no longer triggers settlement. The capture uses only disposable local projects.
Note
Medium Risk
Touches shared sidebar keyboard routing and post-settle navigation across v1/v2; incorrect eligibility or PR-state reporting could mis-settle threads or navigate to the wrong route.
Overview
Adds
thread.settle(mod+shift+x, disabled when the terminal has focus) as a configurable command in defaults, contracts, and docs.Both Sidebar and SidebarV2 route thread keyboard handling through
resolveThreadSidebarShortcutAction, which opens a confirmation dialog for settle, blocks prev/next/jump while that dialog is open, and consumes settle when the route thread cannot be settled or is already settling.After a confirmed settle, navigation uses
resolveNextActiveThreadIdAfterSettleto pick the next non–effectively-settled thread (visible list first, then full unarchived fallback), or starts a new thread when none remain.Hidden PR/change-request reporters keep settlement state accurate for collapsed, preview-hidden, and off-screen threads via
isSidebarThreadEffectivelySettledand sharedresolveSidebarThreadGitCwd.Reviewed by Cursor Bugbot for commit 60ff41d. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add
thread.settlekeyboard shortcut with confirmation dialog to sidebarmod+shift+xas the default keybinding forthread.settlein both sidebar V1 and V2, triggering a confirmationAlertDialogbefore settling the current thread.resolveNextActiveThreadIdAfterSettle, preferring visible order with a fallback to full logical order, or starts a new thread if none remain.isSidebarThreadEffectivelySettledto classify threads as settled based on server capability, inactivity timing, and PR/change-request state; hidden threads get background PR-state reporters to keep this classification current.resolveThreadSidebarShortcutActionto uniformly interpret thread keybinding commands into typed actions (navigate, confirm-settle, consume, none), shared across both sidebars.Enter.Macroscope summarized 60ff41d.