Skip to content

Agents - enable switching branches for folder sessions - #334354

Merged
Ladislau Szomoru (lszomoru) merged 4 commits into
mainfrom
lszomoru/agents-checkout-operation
Sep 3, 2026
Merged

Agents - enable switching branches for folder sessions#334354
Ladislau Szomoru (lszomoru) merged 4 commits into
mainfrom
lszomoru/agents-checkout-operation

Conversation

@lszomoru

Copy link
Copy Markdown
Member

No description provided.

Copilot AI balanced review requested due to automatic review settings September 3, 2026 19:15
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

Sandeep Somavarapu (@sandy081)

Matched files:

  • src/vs/sessions/services/sessions/common/session.ts

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

Operation ordering, draft lifecycle gating, and checkout failure feedback have unresolved correctness and accessibility issues.

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

Review tier: Balanced
Findings: 1 High severity · 3 Medium severity

New issues introduced by this change (4)
Severity Finding
High severity src/​vs/​platform/​agentHost/​node/​agentHostChangesetOperationService.ts — An identical request is always joined to the older in-flight promise, even when a different request…
Medium severity src/​vs/​platform/​agentHost/​node/​agentHostCheckoutOperationProvider.tsCreating is not equivalent to an unused draft: the first turn can start and finish before…
Medium severity src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostSessionConfigPicker.ts — Folder checkout can reject with actionable errors such as a dirty working tree or a missing branch,…
Medium severity src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostSessionConfigPicker.ts — This fire-and-forget checkout can fail after the mobile sheet has synchronously marked the tapped…
What changed in this PR

Enables branch switching for draft folder-based Agent Host sessions while coordinating configuration, checkout operations, and first-send readiness.

Changes:

  • Adds validated Git checkout operations and protocol metadata.
  • Makes folder-session branches selectable across desktop and mobile pickers.
  • Serializes configuration and checkout operations with expanded tests.
File Description
src/​vs/​sessions/​services/​sessions/​common/​session.ts Adds operation metadata.
src/​vs/​sessions/​contrib/​providers/​agentHost/​test/​browser/​localAgentHostSessionsProvider.test.ts Tests configuration serialization.
src/​vs/​sessions/​contrib/​providers/​agentHost/​test/​browser/​agentHostSessionChangesets.test.ts Tests disconnected invocation.
src/​vs/​sessions/​contrib/​providers/​agentHost/​test/​browser/​agentHost/​agentHostSessionConfigPicker.test.ts Tests folder branch selection.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​baseAgentHostSessionsProvider.ts Coordinates draft configuration operations.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostSessionConfigPicker.ts Performs branch checkout from pickers.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostSessionChangesets.ts Forwards operation metadata.
src/​vs/​sessions/​contrib/​changes/​test/​browser/​changesViewService.test.ts Tests checkout visibility filtering.
src/​vs/​sessions/​contrib/​changes/​test/​browser/​changesActions.test.ts Tests hidden checkout actions.
src/​vs/​sessions/​contrib/​changes/​browser/​changesViewService.ts Hides internal checkout operations.
src/​vs/​sessions/​contrib/​changes/​browser/​changesActions.ts Excludes checkout actions from menus.
src/​vs/​sessions/​common/​agentHostSessionsProvider.ts Adds draft-operation tracking API.
src/​vs/​platform/​agentHost/​test/​node/​shared/​worktreeIsolation.test.ts Tests folder branch configuration.
src/​vs/​platform/​agentHost/​test/​node/​copilotGitProject.test.ts Updates Git test stub.
src/​vs/​platform/​agentHost/​test/​node/​copilotAgent.test.ts Updates Git test stub.
src/​vs/​platform/​agentHost/​test/​node/​agentService.test.ts Updates configuration expectations.
src/​vs/​platform/​agentHost/​test/​node/​agentHostPullRequestOperationHandler.test.ts Updates Git test stub.
src/​vs/​platform/​agentHost/​test/​node/​agentHostGitService.integrationTest.ts Tests real branch checkout.
src/​vs/​platform/​agentHost/​test/​node/​agentHostDiscardChangesOperationHandler.test.ts Updates Git test stub.
src/​vs/​platform/​agentHost/​test/​node/​agentHostCommitOperationHandler.test.ts Updates Git test stub.
src/​vs/​platform/​agentHost/​test/​node/​agentHostCheckoutOperationProvider.test.ts Tests checkout advertisement.
src/​vs/​platform/​agentHost/​test/​node/​agentHostCheckoutOperationHandler.test.ts Tests checkout validation.
src/​vs/​platform/​agentHost/​test/​node/​agentHostChangesetOperationService.test.ts Tests metadata serialization.
src/​vs/​platform/​agentHost/​test/​common/​sessionTestHelpers.ts Updates shared Git stub.
src/​vs/​platform/​agentHost/​node/​shared/​worktreeIsolation.ts Makes folder branches selectable.
src/​vs/​platform/​agentHost/​node/​agentHostGitService.ts Implements Git checkout.
src/​vs/​platform/​agentHost/​node/​agentHostContributions.ts Registers checkout contribution.
src/​vs/​platform/​agentHost/​node/​agentHostCheckoutOperationProvider.ts Advertises checkout capability.
src/​vs/​platform/​agentHost/​node/​agentHostCheckoutOperationHandler.ts Validates and executes checkout.
src/​vs/​platform/​agentHost/​node/​agentHostChangesetOperationService.ts Serializes operation lanes.
src/​vs/​platform/​agentHost/​common/​meta/​agentCheckoutOperationMeta.ts Encodes checkout metadata.
src/​vs/​platform/​agentHost/​common/​agentHostGitService.ts Extends the Git service API.
src/​vs/​platform/​agentHost/​common/​agentHostChangesetOperationService.ts Defines checkout operation ID.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/vs/platform/agentHost/node/agentHostChangesetOperationService.ts Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@lszomoru
Ladislau Szomoru (lszomoru) merged commit 68a1501 into main Sep 3, 2026
60 of 61 checks passed
@lszomoru
Ladislau Szomoru (lszomoru) deleted the lszomoru/agents-checkout-operation branch September 3, 2026 22:17
@vs-code-engineering vs-code-engineering Bot added this to the 1.137.0 milestone Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants