Uh oh!
There was an error while loading. Please reload this page.
Unify the new thread project picker - #4263
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 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ApprovabilityVerdict: Needs human review This PR introduces new user-facing functionality: a unified project picker for new threads with modified keyboard shortcut behavior, new state management, and changed command palette interactions. These feature-level changes to the thread creation workflow warrant human review. You can customize Macroscope's approvability policy. Learn more. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
juliusmarminge
commented
Jul 22, 2026
393a8ab to
ae058e8CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
colonelpanic8
commented
Jul 22, 2026
942961d to
95ef9caCompareUh oh!
There was an error while loading. Please reload this page.
Dismissing prior approval to re-evaluate 891f36e
891f36e to
f2fecdbCompareUh oh!
There was an error while loading. Please reload this page.
584440b to
dfc3277CompareUh oh!
There was an error while loading. Please reload this page.
9fb451d to
420ec83CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
420ec83 to
6e0d514Compare6e0d514 to
287631fCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
287631f to
7df1729CompareDismissing prior approval to re-evaluate 7df1729
ef15fa2 to
200eed6Compare200eed6 to
5745e70CompareThere was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 13906ad. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.



Summary
Why
T3 Code originally had two project-picker experiences for starting a thread. The command-palette picker was searchable and already served the Ctrl+K flow, while Ctrl+N and the Sidebar V2 button used a separate sidebar-owned modal. Consolidating them gives every entry point the same interaction and removes duplicate UI and keyboard-navigation code.
PR #4269 landed the basic route into the command palette after this PR opened. That means the current
mainscreenshot below is an intermediate state, while the first screenshot is the real product before-state of the consolidation this PR proposed.UI comparison
Before: standalone Sidebar V2 dialog
The original new-thread flow used a separate project dialog. It duplicated the Ctrl+K picker and did not support incremental filtering.
Current
mainafter #4269mainnow routes into the command palette, but the intermediate picker still shows the new-thread shortcut on every project row and does not include Add project in the same result set.This PR
This PR keeps the command-palette picker, prioritizes the contextual project, and includes Add project as a keyboard-addressable action.
It also uses the same incremental search behavior as Ctrl+K → New thread in…:
Validation
CommandPalette.logic.test.tsandkeybindings.test.ts(56 tests)Exact-head evidence
Revalidated at 9fb451def031 on current main (9a0a071): focused tests, vp check, and vp run typecheck passed. The capture uses only disposable local projects.
Note
Medium Risk
Touches thread-creation entry points, global shortcuts, and command-palette navigation across Sidebar V2 and chat routes; behavior changes for zero-project and multi-project cases but logic is largely extracted and unit-tested.
Overview
Unifies starting a new thread behind a single command-palette project picker instead of mixed sidebar and palette flows.
The palette gains a dedicated
new-thread-inview: grouped project rows, Add project always in an Actions group (including the>actions filter), and empty/loading copy via new logic helpers. Opening can passpreferredProjectRefon the event bus; resolution combines that with sidebar project scope and thread/route context throughresolveNewThreadPickerProjectRef/resolveScopedNewThreadProjectRef, with scope lifted to a sharedsidebarProjectScopeStore.Sidebar V2 and chat route shortcuts (
Ctrl+N/chat.new) useresolveChatNewShortcutBehavior: multi-project or zero-project Sidebar V2 opens the picker (with preference); single-project still creates immediately and can close an open palette first.chat.newmay refresh while the palette is open; other chat shortcuts stay suppressed. The sidebar New thread control is no longer disabled when there are no projects.Supporting changes:
closeCommandPaletteon the bus, add-project back-navigation fix when popping views, and removal of per-rowchat.newshortcut on picker projects.Reviewed by Cursor Bugbot for commit 13906ad. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Unify the new thread project picker in the command palette with scoped project resolution
buildNewThreadPickerGroupsresolveNewThreadPickerProjectRefandresolveScopedNewThreadProjectRefpreferredProjectRef; the button is no longer disabled with zero projectsChatRouteGlobalShortcuts) suppress unrelated shortcuts while the palette is open and close the palette before immediate thread creationcloseCommandPalette/onCloseCommandPaletteevent utilities and a sharedsidebarProjectScopeStorefor cross-component scope sharingresolveChatNewShortcutBehaviorreplaces a simple project-count check with a three-way decision (open-project-picker,create-immediately,dismiss-and-create) affecting keyboard shortcut behaviorMacroscope summarized e2550fb.
Current combined-stack UI evidence (2026-07-24)
Captured from PR head
a5e53a9ce55272a331c6ba6443d3601c82363020on upstream mainece05087a70e94efcd57441337fa1249559362ba, using combined integration4dd4cef40and package/nix/store/pf7fjqw8ykkdgayf3ywsbgxxp6wi1m42-t3code-0.0.29-patched-main-20260724.The animation shows the Sidebar V2 New thread control opening the shared Projects picker, filtering to Atlas API, and Enter creating the new draft in that project. The picker retains Add project and keyboard hints. All names and paths are disposable seed data.