Skip to content

sessions: move unified workspace picker setting - #334554

Merged
Megan Rogge (meganrogge) merged 6 commits into
microsoft:mainfrom
meganrogge:agents/workspace-chat-settings-refactor
Sep 4, 2026
Merged

sessions: move unified workspace picker setting#334554
Megan Rogge (meganrogge) merged 6 commits into
microsoft:mainfrom
meganrogge:agents/workspace-chat-settings-refactor

Conversation

@meganrogge

@meganrogge Megan Rogge (meganrogge) commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • move the unified workspace picker setting from shared Chat into the Sessions chat contribution
  • rename the setting from chat.agentSessions.consolidatedRemoteWorkspaces to sessions.chat.unifiedWorkspacePicker.enabled
  • describe the complete experience controlled by the setting: consolidated GitHub and remote workspace sources, workspace search, and, when supported, the No workspace option
  • update the workspace picker, new-session composer, and New Quick Chat action to consume the Sessions-owned setting

Setting migration

The deprecated setting remains registered so application-scoped values can be loaded and migrated.

For each explicitly configured legacy value, the migration:

  1. removes chat.agentSessions.consolidatedRemoteWorkspaces
  2. copies its value to sessions.chat.unifiedWorkspacePicker.enabled
  3. preserves an existing explicit value on the new setting rather than overwriting it

Defaults and remote experiment assignments are not persisted as user settings, so they are not copied by this migration.

Experiment update

The setting uses the default treatment name derived from its new ID:

config.sessions.chat.unifiedWorkspacePicker.enabled

Because the existing experiment only recently started and has little data, restart it using this new treatment name rather than retaining the legacy identifier indefinitely:

  1. stop the progression that publishes config.chat.agentSessions.consolidatedRemoteWorkspaces
  2. create or update the replacement progression to publish config.sessions.chat.unifiedWorkspacePicker.enabled
  3. use false for control and true for treatment
  4. target builds containing this setting rename and the unified picker UX

Do not delete or rename a shared ExP variant that is used by other experiments; create the replacement flag/progression as required by ExP.

Validation

  • npm run transpile-client
  • affected Sessions unit tests: 104 passing
  • npm run hygiene
  • node build/checker/layersChecker.ts
  • npm run compile reached source compilation but stopped on unrelated generated monaco.d.ts drift already present on the base branch
  • npm run typecheck-client and the type-check phase of npm run valid-layers-check are blocked by missing Electron typings in this checkout; no changed-file errors were reported

Move the No workspace experiment gate into the Sessions chat contribution and rename it to describe the tested UX. Migrate explicit values from the legacy application-scoped setting while preserving explicit values already configured under the new key.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 4, 2026 17:00
Name the experiment gate for the complete unified picker experience, including consolidated remote sources, search, and the No workspace option.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge Megan Rogge (meganrogge) changed the title sessions: move no-workspace experiment setting sessions: move unified workspace picker setting Sep 4, 2026

Copilot AI 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.

Copilot review overview

🟡 Changes recommended

The hidden legacy registration prevents application-scoped values from being loaded and migrated.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 1 High severity · 1 Low severity

New issues introduced by this change (2)
Severity Finding
High severity src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.tsincluded: false prevents this legacy key from being loaded by ApplicationConfiguration:…
Low severity src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.ts — This description promises that enabling the setting supports workspace-less sessions, but web…
What changed in this PR

Moves unified workspace picker configuration ownership from shared Chat into Sessions.

Changes:

  • Renames and registers the Sessions-owned setting.
  • Updates picker, composer, action, and tests.
  • Adds legacy-setting migration.
File Description
src/​vs/​workbench/​contrib/​chat/​common/​constants.ts Removes the legacy Chat setting constant.
src/​vs/​workbench/​contrib/​chat/​browser/​chat.shared.contribution.ts Removes shared setting registration.
src/​vs/​sessions/​contrib/​sessions/​test/​browser/​sessionsActions.test.ts Updates action tests.
src/​vs/​sessions/​contrib/​sessions/​browser/​views/​sessionsViewActions.ts Uses the new setting in Quick Chat.
src/​vs/​sessions/​contrib/​chat/​test/​browser/​sessionWorkspacePicker.test.ts Updates picker test configuration.
src/​vs/​sessions/​contrib/​chat/​common/​constants.ts Defines the new setting key.
src/​vs/​sessions/​contrib/​chat/​browser/​sessionWorkspacePicker.ts Uses the Sessions-owned setting.
src/​vs/​sessions/​contrib/​chat/​browser/​newChatWidget.ts Observes the renamed setting.
src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.ts Registers and migrates the setting.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/vs/sessions/contrib/chat/browser/chat.contribution.ts
Comment thread src/vs/sessions/contrib/chat/browser/chat.contribution.ts Outdated
Keep the deprecated application-scoped key included so configuration migration can inspect it, and qualify No workspace support in the replacement setting description.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep new and old clients on the same ExP flight by explicitly retaining the existing treatment identifier while the user-facing setting is renamed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow the renamed setting to derive a matching ExP treatment identifier for a clean restart of the recently launched experiment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI 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.

Copilot review overview

🟡 Changes recommended

The user-setting migration lacks focused coverage for copying and preservation behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 1 Medium severity

New issues introduced by this change (1)
Severity Finding
Medium severity src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.ts — Add focused coverage for this migration's data-preservation contract: an application-scoped legacy…
Issues resolved since last review (2)
Severity Finding
Low severity src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.ts — This description promises that enabling the setting supports workspace-less sessions, but web… View resolved comment
High severity src/​vs/​sessions/​contrib/​chat/​browser/​chat.contribution.tsincluded: false prevents this legacy key from being loaded by ApplicationConfiguration:… View resolved comment

Comment thread src/vs/sessions/contrib/chat/browser/chat.contribution.ts Outdated
Extract the unified workspace picker migration and cover application scope, legacy value removal, value copying, and preservation of an explicit replacement value.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge
Megan Rogge (meganrogge) merged commit b6fa70e into microsoft:main Sep 4, 2026
30 checks passed
@vs-code-engineering vs-code-engineering Bot added this to the 1.137.0 milestone Sep 4, 2026
TylerLeonhardt added a commit that referenced this pull request Sep 5, 2026
Use the Sessions-owned unified workspace picker setting in the Copilot provider and its tests, resolving the compiler errors and legacy-action test failures introduced by concurrent main changes.

Refs #334554 and #334591.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge Megan Rogge (meganrogge) added the feature-request Request for new features or functionality label Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature-request Request for new features or functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants