feat(settings): add shared project defaults and scoped overrides - #9754
feat(settings): add shared project defaults and scoped overrides#9754maria-rcks wants to merge 18 commits into
Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR introduces a broad Projects settings capability with persisted machine defaults and project overrides, affecting thread creation, setup scripts, automatic pulls, and agent browser access across web, mobile, and server paths. The scope and product-default changes require human review. You can add or adjust custom eligibility rules. Learn more. |
e0f623b to
06f43fa
Compare
01d7ee6 to
767464a
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default 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 767464a. Configure here.
# Conflicts: # packages/shared/src/serverSettings.test.ts
Bugbot is paused — on-demand spend limit reachedBugbot 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. |
Bugbot is paused — on-demand spend limit reachedBugbot 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. |

project settings live in settings → projects, with machine tabs and a project dropdown. machine defaults apply unless a project overrides them; reset restores inheritance.
shared action persistence now handles defaults and checkout overrides once, removing 147 lines of duplicated save, shortcut, and editor logic without adding a helper module. the layout and shared-default behavior are preserved. merged main without rewriting branch history and updated the existing projection test mock. review fixes preserve defaults in settings search, native script menus, bootstrap threads, and onboarding imports. the final net code reduction is 101 lines. the patch remains large: 37 files, +2,220/-643 versus the starting 35 files, +2,204/-526; code reuse and review fixes add line churn despite reducing the code.
verified web/server/mobile typechecks, 117 focused tests, real-browser default create/edit plus project inherit → override → delete → reset, and both settings-search entry points. targeted lint reports existing warnings in untouched code. ci passes on
59449df1f; both independent code reviews approve that head and all review threads are resolved.before
original layout capture, using the earlier project fixture.
after
action persistence after trimming
recorded the interaction walkthrough, but its file is on the desktop browser host and cannot be retrieved from this environment. video transfer and playback remain unverified. native simulator runtime was not exercised; evidence is not complete.
built with
gpt-5.6-solin t3 code.Note
Medium Risk
Changes effective auto-pull, setup scripts, and agent browser MCP issuance based on new server settings and projection lookups; misconfiguration or missing settings layers could alter background git behavior or tool access for running sessions.
Overview
Introduces Settings → Projects with machine and project scope pickers, replacing the standalone project settings route (which now redirects). All projects edits machine-wide defaults; selecting a project configures per-checkout overrides with inherit/reset semantics.
Server settings gain
defaultModelSelection,defaultProjectScripts,defaultAutoPull, and per-project override maps for scripts, auto-pull, and agent browser access. Web, mobile, and server paths resolve effective values viaresolveProjectScripts,resolveProjectAutoPull, andresolveProjectAgentBrowserAccessinstead of relying only on project records.Project actions are persisted as
projectScriptOverrideson the server (null resets to defaults); setup scripts on worktree create use the same resolution. Auto-pull at startup and in VCS status refresh now consults server settings layers. Agent MCP browser credentials are issued or revoked based on the thread’s project override, not just the global toggle.Composer and new-thread flows fall back to the target environment’s
defaultModelSelectionand workspace defaults. General/Integrations settings link out to Projects for model, workspace, and browser access;defaultThreadEnvModeis no longer synced as a shared preference across machines.Reviewed by Cursor Bugbot for commit 13dfd0c. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add shared project defaults and scoped overrides to settings
/settings/projectsroute with project and machine scope pickers; General and Integrations settings now link there instead of editing workspace mode and browser access inlineServerSettingsandServerSettingsPatchwith per-project overrides for browser access, auto-pull, project scripts, and default model selection; new resolvers in serverSettings.ts and projectScripts.ts compute effective values with inheritance and reset semanticsuseProjectScriptSettingsfor serialized script persistence with Electron keybinding syncProviderService,ProjectSetupScriptRunner,VcsStatusBroadcaster, startup) now resolve browser access, setup scripts, auto-pull, and model defaults through the new server-settings resolvers instead of reading only global or project-stored valuesdefaultThreadEnvModemoved from shared to local settings classification in sharedSettings.tsapplyServerSettingsPatchnow merges per-project override maps entry-by-entry; callers that previously patched these maps as plain objects must use the new patch fields to avoid losing entries. Legacy/projects/$projectKeyroute redirects to/settings/projects.Macroscope summarized 59449df.