[pull] main from microsoft:main#1299
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )