Context
The Settings page currently presents all settings (Providers, Git, MCP, Prompts, Instructions, Appearance) as flat tabs without any indication of whether a setting is global (affects all projects) or project-specific (affects only the current project). This leads to confusion about where settings are stored and what they affect.
Current state:
| Setting |
Actual Scope |
User knows? |
| Providers |
Global |
No |
| Git/SSH |
Global |
No |
| MCP Servers |
Global only |
No |
| Saved Prompts |
Browser (unscoped) |
No |
| Instructions |
Project |
Partially ("Project Instructions" label) |
| Appearance |
Browser |
No |
Goal
Make the Settings UI clearly communicate the scope of each setting and allow per-project configuration where it makes sense.
Tasks
Target state:
| Setting |
Scope |
Badge |
Notes |
| Providers |
Global |
[Global] |
Unchanged behavior |
| Git/SSH |
Global |
[Global] |
Unchanged behavior |
| MCP Servers |
Global + Project |
[Global + Project] |
Add globally, enable/disable per project |
| Saved Prompts |
Project |
[Project] |
Scoped per project in localStorage |
| Instructions |
Project |
[Project] |
Unchanged behavior |
| Appearance |
Browser |
No badge |
Unchanged behavior |
Key architectural finding
The backend SDK already supports per-project MCP overrides via { enabled: boolean } in the Config type's MCP section. The client.config.update() endpoint (project-scoped) vs client.global.config.update() (global) differentiation is already built into the SDK context. The work is primarily UI-level.
Context
The Settings page currently presents all settings (Providers, Git, MCP, Prompts, Instructions, Appearance) as flat tabs without any indication of whether a setting is global (affects all projects) or project-specific (affects only the current project). This leads to confusion about where settings are stored and what they affect.
Current state:
Goal
Make the Settings UI clearly communicate the scope of each setting and allow per-project configuration where it makes sense.
Tasks
Target state:
[Global][Global][Global + Project][Project][Project]Key architectural finding
The backend SDK already supports per-project MCP overrides via
{ enabled: boolean }in the Config type's MCP section. Theclient.config.update()endpoint (project-scoped) vsclient.global.config.update()(global) differentiation is already built into the SDK context. The work is primarily UI-level.