Uh oh!
There was an error while loading. Please reload this page.
Add environment-aware new thread picker - #4426
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.
ApprovabilityVerdict: Needs human review This PR introduces a new feature with significant new UI flows, command palette logic, keybinding changes, and migration behavior. The scope and complexity of new user-facing behavior warrant human review. You can customize Macroscope's approvability policy. Learn more. |
Uh oh!
There was an error while loading. Please reload this page.
f1dd61f to
cf4f7c9Comparefb31222 to
139d17eCompareUh oh!
There was an error while loading. Please reload this page.
1b619d5 to
a93d1eaCompareUh oh!
There was an error while loading. Please reload this page.
Original local work that existed only in the pingdotgg#4426 stack-compat patch; no topic branch defines it. CommandPalette.tsx imports these three symbols.
# Conflicts: # apps/web/src/commandPaletteBus.ts # apps/web/src/components/CommandPalette.logic.test.ts # apps/web/src/components/CommandPalette.tsx # apps/web/src/environmentGrouping.test.ts # apps/web/src/keybindings.test.ts # packages/contracts/src/keybindings.test.ts # packages/shared/src/keybindings.ts
a93d1ea to
a1a1520Compare# Conflicts: # apps/web/src/commandPaletteBus.ts # apps/web/src/components/CommandPalette.logic.test.ts # apps/web/src/components/CommandPalette.tsx # apps/web/src/environmentGrouping.test.ts # apps/web/src/keybindings.test.ts # packages/contracts/src/keybindings.test.ts # packages/shared/src/keybindings.ts
Uh oh!
There was an error while loading. Please reload this page.
# Conflicts: # apps/web/src/commandPaletteBus.ts # apps/web/src/components/CommandPalette.logic.test.ts # apps/web/src/components/CommandPalette.tsx # apps/web/src/environmentGrouping.test.ts # apps/web/src/keybindings.test.ts # packages/contracts/src/keybindings.test.ts # packages/shared/src/keybindings.ts
a1a1520 to
9394441Compare9394441 to
6ace64eCompareThere 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 6ace64e. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
t3dotgg
commented
Aug 28, 2026
Note 🤖 GPT-5.6 Sol responding on behalf of Theo We're closing this PR as we clean up the T3 Code backlog. Thank you for taking the time to put this together. This branch changes the same new-thread picker flow as #4263. We are keeping that unified picker as the active implementation instead of reviewing another competing version. If you believe we closed this in error, please reopen the PR and leave a comment explaining what we missed. |

What Changed
chat.newEnvironmentcommand on Mod+Shift+N.Run onlist; the primary environment is labeled with its runtime hostname instead ofLocal.chat.newLocaldefault while preserving customchat.newLocalbindings.Why
Thread creation previously collapsed projects across environments and silently selected one machine. This makes execution location explicit without treating local as a separate mode.
UI Changes
Environment selection:
Environment-scoped project selection:
Checklist
vp checkcompletes with only existing warnings outside this change.vp run typecheckis blocked by the existing interactive Astro dependency prompt and existing unrelated web type errors; changed packages/files introduce no reported type errors.Note
Medium Risk
Default shortcut behavior changes for all users who relied on Mod+Shift+N for instant local threads; migration is narrow but still touches persisted keybinding config on startup.
Overview
Mod+Shift+N now runs
chat.newEnvironment, opening the command palette on a “New thread on…” flow instead of immediately starting a local thread.chat.newLocalremains available for custom bindings but is no longer the default on that chord.The palette adds a flat Run on list of environments (with per-environment project submenus), waits until environment shells are bootstrapped before opening, and closes if nothing is available. Project rows are built with
targetEnvironmentIdso choices stay on the chosen machine rather than falling back to another environment’s project.On the server, startup keybinding sync migrates only the exact legacy default (
mod+shift+n+chat.newLocal+!terminalFocus) tochat.newEnvironment, leaving otherchat.newLocalentries (e.g.mod+shift+l) untouched. Contracts and settings exposechat.newEnvironmentvia exportedSTATIC_KEYBINDING_COMMANDS.Reviewed by Cursor Bugbot for commit 5e2155e. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add environment-aware new thread picker with
chat.newEnvironmentcommandmod+shift+nvia the newchat.newEnvironmentcommand.DEFAULT_KEYBINDINGSin shared/src/keybindings.ts to bindmod+shift+ntochat.newEnvironmentinstead ofchat.newLocal.buildSidebarProjectPickerEntriesto accept an optionaltargetEnvironmentId, scoping project entries to that environment without falling back to other machines.chat.newLocaldefault is found without achat.newEnvironmentbinding, it is automatically replaced.mod+shift+nnow opens the environment picker palette instead of directly creating a local thread; users with customizedchat.newLocalbindings on other keys are unaffected.Macroscope summarized 5e2155e.