Skip to content

[pull] main from microsoft:main#1299

Merged
pull[bot] merged 31 commits into
code:mainfrom
microsoft:main
May 26, 2026
Merged

[pull] main from microsoft:main#1299
pull[bot] merged 31 commits into
code:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 26, 2026

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 : )

aaronpowell and others added 30 commits May 22, 2026 11:28
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Replaces the prior push-from-handler / pull-from-provider registry with
a service that owns per-sessionType active-client state.

- registerForAgent(sessionType) constructs the customization sync
  provider and plugin bundler, wires customization resolution to prompt
  service events, and returns the sync provider so the contribution can
  pass the same instance to its harness.
- getActiveClient(sessionType, clientId) assembles the SessionActiveClient
  from the caller-supplied clientId, the service-owned clientTools
  observable, and the registered customizations.
- clientTools is a workbench-wide observable computed from
  ILanguageModelToolsService filtered by the chat.agentHost.clientTools
  allowlist; shared across all agent-host session types.

Drops 'customizations' from IAgentHostSessionHandlerConfig and
'_clientToolsObs' from the handler — both are now read from the service.
The sessions provider's eager createSession path reads the same snapshot.
The agent-host customization harness factory now accepts the
ICustomizationSyncProvider interface rather than the concrete class.
- agentHostActiveClientService: guard updateCustomizations against
  out-of-order/throwing resolves with a request-seq + onUnexpectedError
- remoteAgentHostProtocolClient: dedupe implicit-read grants by the
  granted (dirname) URI so multiple customizations in the same
  directory result in a single grant per connection
- agentHostClientTools.test: stub IPromptsService so the real
  AgentHostActiveClientService can be instantiated
Bumps [qs](https://github.com/ljharb/qs) from 6.14.2 to 6.15.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.14.2...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…18275)

Bumps [qs](https://github.com/ljharb/qs) from 6.14.2 to 6.15.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.14.2...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Agent host instructions and customization tweaks
…place-ref-support

Add marketplace ref support for plugin marketplaces
…sions/typescript-language-features (#318141)

build(deps): bump @nevware21/ts-utils

Bumps [@nevware21/ts-utils](https://github.com/nevware21/ts-utils) from 0.11.6 to 0.14.0.
- [Release notes](https://github.com/nevware21/ts-utils/releases)
- [Changelog](https://github.com/nevware21/ts-utils/blob/main/CHANGELOG.md)
- [Commits](nevware21/ts-utils@0.11.6...0.14.0)

---
updated-dependencies:
- dependency-name: "@nevware21/ts-utils"
  dependency-version: 0.14.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…sions/json-language-features (#318276)

build(deps): bump @nevware21/ts-utils

Bumps [@nevware21/ts-utils](https://github.com/nevware21/ts-utils) from 0.11.6 to 0.14.0.
- [Release notes](https://github.com/nevware21/ts-utils/releases)
- [Changelog](https://github.com/nevware21/ts-utils/blob/main/CHANGELOG.md)
- [Commits](nevware21/ts-utils@0.11.6...0.14.0)

---
updated-dependencies:
- dependency-name: "@nevware21/ts-utils"
  dependency-version: 0.14.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…sions/github (#318384)

build(deps): bump @nevware21/ts-utils in /extensions/github

Bumps [@nevware21/ts-utils](https://github.com/nevware21/ts-utils) from 0.11.6 to 0.14.0.
- [Release notes](https://github.com/nevware21/ts-utils/releases)
- [Changelog](https://github.com/nevware21/ts-utils/blob/main/CHANGELOG.md)
- [Commits](nevware21/ts-utils@0.11.6...0.14.0)

---
updated-dependencies:
- dependency-name: "@nevware21/ts-utils"
  dependency-version: 0.14.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…sions/git (#318386)

build(deps): bump @nevware21/ts-utils in /extensions/git

Bumps [@nevware21/ts-utils](https://github.com/nevware21/ts-utils) from 0.11.6 to 0.14.0.
- [Release notes](https://github.com/nevware21/ts-utils/releases)
- [Changelog](https://github.com/nevware21/ts-utils/blob/main/CHANGELOG.md)
- [Commits](nevware21/ts-utils@0.11.6...0.14.0)

---
updated-dependencies:
- dependency-name: "@nevware21/ts-utils"
  dependency-version: 0.14.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Disable walkthrough if ai features disabled on startup
…ime not fired) (#318340)

* fix: cross-file inline edit list never disposed

InlineCompletionsModel.transplantCompletion called item.addRef() with no
matching removeRef. seedWithCompletion (called immediately below) already
constructs a new InlineCompletionsState whose ctor calls addRef on every
item and pairs it with removeRef in its dispose, so the explicit addRef is
redundant and leaks one ref per cross-file accept.

Consequence: the InlineSuggestionList refCount on cross-file inline edits
never reached 0, so disposeInlineCompletions (and thus the extension-host
handleListEndOfLifetime callback) never fired, suppressing extensions'
end-of-life telemetry for every cross-file inline edit.

Found by capturing addRef stacks on a live leak repro; the unpaired addRef
in transplantCompletion appeared in every leaked list dump.

* assert: refCount in InlineSuggestionList must not go negative

Always-on, cheap invariant: a removeRef call that drives the refCount below
zero indicates a missing addRef. Reports via onUnexpectedError to catch the
inverse class of bug from the cross-file leak fix in the previous commit.
Improve session management functionality
…lemetry (#318429)

* Agents web: surface offline tunnels in host picker + add discovery telemetry

On a fresh web session, _silentStatusCheck only auto-cached tunnels whose
hostConnectionCount > 0. Tunnels with no active host process were silently
dropped, leaving users with a known-but-offline tunnel stuck on the
'Connect a host to get started' empty state even though the picker is
already wired to render disconnected providers grayed out.

Changes:
- Drop the hostConnectionCount > 0 gate in the auto-cache loop so newly
  discovered offline tunnels become cached providers. The status-update
  loop right below already marks them as disconnected and unpublishes
  their cached sessions; the auto-connect loop further down still gates
  on hostConnectionCount > 0 so we don't dial offline tunnels.
- Add a vscodeAgents.tunnelDiscovery/result telemetry event with trigger
  (startup/rediscover/sessionChange), totalFound, withActiveHost,
  cachedBefore, autoConnectEnabled, hostsEnabled, and success so we can
  distinguish empty-discovery from all-offline-tunnels in production.
- Enrich the [WebTunnelAgentHost] discovery log to break out total,
  accepted, withActiveHost, droppedByProtocolVersion, and
  droppedMissingIds; emit a debug log per protocol-version drop.

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

* Agents: remove 20-tunnel cache cap

With offline tunnels now auto-cached on first discovery, the 20-entry
MRU cap could silently drop tunnels for users with larger accounts. Drop
the cap entirely; power users with many tunnels are rare and can be
addressed later if needed.

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

---------

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

The provider's status was preserved as `incompatible` in the reconcile loops to prevent it from being clobbered by a subsequent `disconnected` update. But the early-return also blocked legitimate `connecting`/`connected` transitions from a post-upgrade reconnect, leaving the server marked incompatible until the window reloaded.

Only preserve the sticky incompatible state when the service has no entry for the address (the SSH/tunnel catch path, where the failure happens before the service ever sees an entry). When the service does have an entry, its status is authoritative.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators May 26, 2026
@pull pull Bot added the ⤵️ pull label May 26, 2026
@pull pull Bot merged commit 4b04bed into code:main May 26, 2026
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.

9 participants