Skip to content

feat(settings): add shared project defaults and scoped overrides - #9754

Open
maria-rcks wants to merge 18 commits into
pingdotgg:mainfrom
maria-rcks:t3code/clarify-project-machine-settings
Open

feat(settings): add shared project defaults and scoped overrides#9754
maria-rcks wants to merge 18 commits into
pingdotgg:mainfrom
maria-rcks:t3code/clarify-project-machine-settings

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

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.

original project settings

after

individual project settings with inherited defaults

all projects defaults and muted project-only settings

individual project settings at 760px in light mode

action persistence after trimming

inherited action after reset, desktop dark

inherited action after reset, narrow light

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-sol in 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 via resolveProjectScripts, resolveProjectAutoPull, and resolveProjectAgentBrowserAccess instead of relying only on project records.

Project actions are persisted as projectScriptOverrides on 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 defaultModelSelection and workspace defaults. General/Integrations settings link out to Projects for model, workspace, and browser access; defaultThreadEnvMode is 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

  • Adds the /settings/projects route with project and machine scope pickers; General and Integrations settings now link there instead of editing workspace mode and browser access inline
  • Extends ServerSettings and ServerSettingsPatch with 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 semantics
  • Rewrites ProjectSettingsPanel.tsx to support machine-scoped views, mixed/inherited value detection, per-environment patches, and checkout-scoped deletion; adds useProjectScriptSettings for serialized script persistence with Electron keybinding sync
  • Backend services (ProviderService, 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 values
  • defaultThreadEnvMode moved from shared to local settings classification in sharedSettings.ts
  • Risk: applyServerSettingsPatch now 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/$projectKey route redirects to /settings/projects.

Macroscope summarized 59449df.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 4, 2026
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
@macroscopeapp

macroscopeapp Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: 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.

Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx Outdated
@maria-rcks
maria-rcks force-pushed the t3code/clarify-project-machine-settings branch from e0f623b to 06f43fa Compare September 5, 2026 05:20
@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 5, 2026
Comment thread apps/web/src/components/settings/ProjectsSettings.tsx Outdated
Comment thread apps/web/src/components/settings/ProjectDefaultActionsSettings.tsx
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
Comment thread apps/web/src/hooks/useHandleNewThread.ts
Comment thread apps/web/src/components/ChatView.tsx Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread apps/server/src/provider/Layers/ProviderService.ts
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx Outdated
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
Comment thread apps/server/src/project/ProjectSetupScriptRunner.ts Outdated
@maria-rcks maria-rcks changed the title feat(web): add machine tabs to project settings feat(settings): add shared project defaults and scoped overrides Sep 5, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx Outdated
@maria-rcks
maria-rcks force-pushed the t3code/clarify-project-machine-settings branch from 01d7ee6 to 767464a Compare September 5, 2026 05:58
Comment thread apps/web/src/components/settings/ProjectDefaultsSettings.tsx Outdated
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
@cursor

cursor Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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.

Comment thread apps/mobile/src/features/threads/ThreadRouteScreen.tsx
Comment thread apps/web/src/components/settings/settingsSearch.ts
@cursor

cursor Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant