Skip to content

[Bug]: Browser settings changed in project scope silently overwrite the global default #35093

Closed

Description

@LinusHe

Version: T3 Code (Beta) 0.1.9 (24e77473ecf4), macOS desktop

What happened

In Settings → Browser, with the scope set to a single project, changing Default browser viewport does not create a project override. It silently changes the global default for all projects. There is no warning or disabled state.

Steps to reproduce

  1. Settings → Browser, scope All: set the default viewport to Fill pane.
  2. Switch the scope to Project A: set it to Responsive 1440 × 900.
  3. Switch back to scope All, or open a browser tab in Project B.

Expected: Either a real project override, or (if not supported) the control is disabled in project scope with the usual "cannot be overridden by a project" hint.
Actual: The global value (browserDefaultViewport in client-settings.json) is now 1440 × 900 for every project.

Cause (from the shipped bundle)

  • browserDefaultViewport is a client setting. The project override schema (projectSettingsOverrides) only accepts server keys (defaultModelSelection, defaultRuntimeMode, enableAgentBrowserAccess, …).
  • The settings write path splits a patch into client and server keys. In project/checkout scope only the server keys become a project override. Client keys still go into clientPatch and are written globally, whatever the selected scope.
  • "This setting is environment-wide and cannot be overridden by a project." only shows when nothing at all would be written. Because the client write happens, the hint never appears.

Probably the same for the other client-only rows shown in project scope (e.g. default zoom, default appearance), since they take the same path.

Suggested fix

In project/checkout scope, don't write client keys. Show those rows as disabled with the "cannot be overridden by a project" hint, or hide them.

Related

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions