Skip to content

[pull] main from microsoft:main - #1619

Merged
pull[bot] merged 11 commits into
code:mainfrom
microsoft:main
Aug 22, 2026
Merged

[pull] main from microsoft:main#1619
pull[bot] merged 11 commits into
code:mainfrom
microsoft:main

Conversation

@pull

@pull pull Bot commented Aug 22, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

vritant24 and others added 11 commits August 21, 2026 15:40
Forward the conversation identifier through extension-contributed model options so Responses endpoints can generate prompt_cache_key.\n\nFixes #332031\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix launch.ps1 to discover Node.js from fnm

Add fnm directory fallback to Get-UsableNode so PowerShell launcher can find
Node.js installed via fnm when it's not on PATH. Tries PATH first (original
behavior), then checks AppData\Local\fnm_multishells for fnm-managed versions.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* launch skill: copy the shared-data-dir so Windows stays signed in

On Windows the GitHub session is stored at StorageScope.APPLICATION_SHARED
rather than APPLICATION - see useSharedStorage and CROSS_APP_SHARED_SECRET_KEYS
in src/vs/platform/secrets/common/secrets.ts. That puts the encrypted session
blob in <shared-data-dir>/sharedStorage/state.vscdb while the DPAPI-wrapped key
stays in <user-data-dir>/Local State.

The launcher copied the profile but handed Code OSS a brand-new empty
--shared-data-dir, so every Windows launch silently started signed out. Signing
in again did not help, because the new session was written to a shared dir that
the next launch discarded. macOS and Linux are unaffected: isWindows is false
there, so the same token lands inside the copied profile.

Seed the run's shared-data-dir from ~/<product.sharedDataFolderName>
(overridable with CODE_OSS_DEV_AUTHED_SHARED_DATA_DIR), and teach the auth
preflight to probe the shared database as well as globalStorage so its warning
is accurate. Also correct SKILL.md, which documented the macOS-only model and
recommended a remedy that cannot fix this on Windows.

Verified end to end: the launched Agents window authenticates against the real
service and completes a chat request without prompting for sign-in.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* launch skill: address review feedback on shared-data seeding

- Mirror the VSCODE_PORTABLE branch of IEnvironmentService.appSharedDataHome
  when resolving the source shared-data-dir, so a session created in portable
  mode is found instead of silently falling through to the product folder.
- Stop claiming a missing shared-data-dir means the launch will prompt for
  sign-in. ApplicationSharedStorageMain registers application storage as a read
  fallback, so profiles predating the APPLICATION_SHARED migration authenticate
  from globalStorage with no shared dir at all. Report the missing directory as
  a fact and let the combined preflight decide.
- Rewrite the SKILL.md callout that read as contradicting the remedy printed
  directly beneath it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Agent Merge: recover from a checks fragment the host refuses

Agent Merge could hang indefinitely on a pull request whose checks
fragment was refused by GitHub, showing the user nothing at all.

When an organization enforces SAML SSO and the signed-in token is not
authorized for it, the checks GraphQL query is refused with HTTP 200 and
a FORBIDDEN error in the body. `CheckRun.checkSuite` is non-nullable, so
the refusal on the GitHub Actions data behind the workflow-name
subselection null-propagates and fails the whole fragment rather than
that one field. Checks then never load, the gate is permanently
indeterminate, and nothing surfaces:

- checks never loaded reads as pending, so the fragment held the fast
  poll cadence and re-requested a permanently refused query roughly once
  a minute, forever;
- indeterminate was the only gate outcome with neither an action nor a
  budget, so the session stayed resident with nothing to show;
- only `authentication` raised an auth requirement, so an `authorization`
  refusal never prompted the user to re-authorize.

Recover the fragment and make the failure legible:

- gate the workflow-name subselection and drop it for a repository whose
  host refuses it, keeping the checks themselves. Only the rollup request
  is retried, and an expected-check-suites refusal degrades to absent and
  incomplete, so neither is mistaken for the other;
- raise an auth requirement for `authorization` too, naming the
  organization and calling out SSO when GitHub reports it;
- give indeterminate a budget over continuously observed time, so a
  pull request that can never be read stops instead of idling while a
  turn or a sleeping host cannot exhaust it;
- name the fragment and its error in the indeterminate reason instead of
  one string shared by five fragments;
- back off persistent authorization failures, and stop an errored checks
  fragment from holding the fast cadence.

Partial check data is still never accepted, so a refused fragment
continues to fail closed rather than reporting checks it could not read.

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

* Request a credential when the snapshot records a refused fragment

Only the first refresh of a subscription reports a failure by throwing, so
raising the auth requirement from the evaluation catch missed the case it
was meant to cover: every later refusal is recorded on the snapshot and
read as an ordinary indeterminate gate, leaving the session waiting on a
credential the user was never asked for.

Detect a refused gate fragment on the snapshot and request a credential
there, once per distinct failure so a persistent refusal does not nag and
a failure after recovery can prompt again. Share one path with the throw
site, and keep the fragment list with the gate that defines it.

Also shorten the comments added with this change to the limits in the
coding guidelines.

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

---------

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

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

chat: preserve conversation ID for BYOK Responses
* Agent Host: add hung turn lifecycle diagnostics

(Written by Copilot)

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

* Agent Host: address telemetry review feedback

(Written by Copilot)

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Agent Host: make debug log export best-effort

Skip unavailable supplementary log sources and remove the debug-log byte limit while retaining manifest and entry-count validation.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ion is in flight (#332080)

* agentHost: don't report a session as missing while its catalog migration is in flight

* feedback update
* Simplify AgentService composition

Narrow internal service dependencies, move runtime collaborators out of AgentService, and replace two-phase initialization with a constructor-complete composition. (Written by Copilot)

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

* Define Agent Host service ownership

Give the complete Agent Host service graph one disposable runtime owner and document workbench-style placement rules for bootstrap instances, shared orchestration services, and runtime activation. (Written by Copilot)

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

* Document Agent Host service construction

Add the target service-placement model and a tested sealable process-local service collection without enabling the seal in production yet. (Written by Copilot)

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

* Create Agent Host service foundation

Build callback, state, configuration, authentication, endpoint, proxy, and request foundations before telemetry and share the synchronous path with AgentService tests. (Written by Copilot)

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

* Register Agent Host bootstrap services

Migrate bootstrap-owned core and host services to local descriptors, eagerly resolve them under strict DI, and preserve typed test overrides. (Written by Copilot)

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

* Seal the Agent Host service graph

Migrate composition-owned and Copilot-dependent services atomically to local descriptors, resolve the complete graph eagerly, and reject late registrations. (Written by Copilot)

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

* Inject AgentService runtime dependencies

Make network diagnostics and edit attribution immutable AgentService dependencies and order test-graph teardown after composition-owned listeners. (Written by Copilot)

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

* Activate Agent Host contributions separately

Move changeset and completion registrations into an order-preserving post-graph activation phase with explicit disposable ownership. (Written by Copilot)

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

* Finalize the Agent Host service runtime

Resolve runtime services through DI, reduce the runtime facade, harden proxy and disposal invariants, and mark the service construction guide current. (Written by Copilot)

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

* Clarify Agent Host child service scopes

Define one primary runtime graph while allowing explicitly owned child instantiation services and scoped service collections when isolation requires them. (Written by Copilot)

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

* Document Agent Host service model debt

Separate stable service-graph contracts from accepted callback, worktree, foundation, concrete-type, and test-seam warts with explicit exit conditions. (Written by Copilot)

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

* Focus Agent Host bootstrap documentation

Rename the service guide, add maintenance rules, explain eager resolution as migration-risk control, and distinguish one primary graph from valid scoped child graphs. (Written by Copilot)

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

* Type customization worktree binding

Expose worktree binding as a narrow customization-enablement capability and remove the composition root's concrete implementation assertion. (Written by Copilot)

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

* Remove AgentService state manager escape hatch

Route tests through the composition-owned state manager and fix bootstrap cleanup ordering found during review. Clarify descriptor rules for trailing defaulted parameters.

(Written by Copilot)

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

* Dispose partial Agent Host contributions

Ensure activation failures clean up registrations created earlier in the contribution phase and cover the failure path with a focused test.

(Written by Copilot)

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

* Tighten sealed service resolution

Allow a sealed descriptor to be replaced only by an instance of its registered constructor, and reject unrelated implementations before descriptor resolution.

(Written by Copilot)

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Aug 22, 2026
@pull pull Bot added the ⤵️ pull label Aug 22, 2026
@pull
pull Bot merged commit 9657ef2 into code:main Aug 22, 2026
9 of 23 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants