[pull] main from microsoft:main - #1652
Merged
Merged
Conversation
Compare URI values semantically when evaluating MCP server definitions so lazy URI caches do not stop live servers. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 02df8817-61e4-4a9f-8b74-f30a434897b0
* Make repeated unit test startup cheaper Check the cached Electron version and executable directly in the unit test launchers, while retaining an explicit forced prelaunch path for packaging changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore Windows test dependency bootstrap Keep the fresh-checkout npm install behavior before applying the faster Electron cache check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Align Windows test dependency bootstrap Use npm install when node_modules is missing, matching the long-standing Unix unit-test launcher behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Keep unit test launchers dependency-neutral Restore the historical expectation that dependencies are installed before running tests, and use the shared npm Electron entry point on Windows and Unix. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
automations: feat: remove delete action from run history rows Temporarily hide the Delete affordance from Automation run-history rows (both inline toolbar and context menu) while the AHP run-deletion protocol is not yet available. Archive/Unarchive, Stop, and read/unread actions remain unchanged. Ordinary Sessions surfaces are unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 962fd6a6-f98e-4fe8-a288-bb3d8c257df3
Follow model refreshes queued during authentication before validating a restored model selection, and start discovery when no refresh is active.
Read paginated histories through thread/turns/list while retaining the legacy thread/read fallback. Fixes #331379.
….0.82-0 (#333198) * chore: bump @github/copilot-sdk to 1.0.13-preview.2 and @github/copilot to 1.0.82-0 * Migrate agentHost to new Copilot SDK permission-mode API SDK 1.0.13-preview.2 renamed PermissionAllowAllMode->PermissionMode ('on/auto/off'->'allow-all/assisted/manual'), PermissionAutoApproval-> PermissionAssistedApproval, permissions.setAllowAll->setMode, and promptRequest.autoApproval->assistedApproval, and added the extension-env-access permission kind. Migrate the agentHost integration and its unit tests to the new contract per the product build TS errors. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * build: drop stale libm GLIBC_2.27 rpm dep after SDK/CLI bump Bumped @github/copilot native payload no longer requires libm.so.6(GLIBC_2.27) on x86_64/aarch64; the reference rpm dep lists diverged from generated deps, failing 'Prepare rpm package' per product build 467750. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: elide runtime-authored change-notice preamble in capi-replay projection CLI 1.0.81-10 now prepends a `<tools_changed_notice>` block to the user message when tools change between turns (e.g. `exit_plan_mode` is dropped after plan approval). The Agent Host E2E capture for planning-mode auto-approve predates this behavior, so capi-replay's request #5 no longer matched a live run against the newer CLI even though the host composed an identical turn. These change-notice blocks (`<tools_changed_notice>`, `<mode_changed_notice>`, `<working_directory_changed>`, `<additional_directories_changed>`) are composed by the `@github/copilot` runtime from session state, not host-authored prompt structure, so they belong in the projection's symmetric elision set alongside the model id and tool_result payload. Elision runs before path elision so the intact `</…>` closing tag is matched rather than being rewritten into a path placeholder first. Fixtures are not edited; the model-changes fixture that records a `<tools_changed_notice>` model-switch block strips symmetrically on both sides and still matches. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: handle Copilot MCP sampling requests Register sampling event interest, reject pending requests through the SDK UI RPC, and release the registration with the session lifecycle. This restores the canonical MCP cancellation behavior with runtime 1.0.81-12. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: update Copilot runtime expectations Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Aaron Munger <aamunger@microsoft.com>
* sessions: fix new session context attachments Show and correctly size issue, pull request, and folder icons in new-session attachment pills. Persist context-only drafts and scope GitHub context browsing to the selected repository. Fixes #333516\nFixes #333523\nFixes #333564\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: address new session attachment feedback Preserve GitHub context icon colors, prevent sent prompts from being re-persisted while attachments clear, and initialize the send button after restoring a retained input model. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: fix send button after reload Defer agent-host model change notifications until the language model catalog has settled, so restored drafts can resolve their pending model and become sendable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: preserve new session drafts on reload Save draft input during the storage lifecycle and allow Auto-capable providers to send while a remembered explicit model is still hydrating. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix deferred model event disposal Initialize lazy event subscriptions before disposal and update the reviewed new-session screenshot baselines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* automations: docs: specify ownership and migration Document multi-host routing, persistence, authority transitions, legacy migration, archive invariants, and concurrency guarantees in a dedicated Sessions specification. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 379fd98b-a939-4729-bae5-63708fb1e2b6 * automations: docs: complete authority state transitions Document configuration, capability, connection-clear, and rebind paths represented by ReconnectableAgentHostAutomationStore. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 379fd98b-a939-4729-bae5-63708fb1e2b6 --------- Copilot-Session: 379fd98b-a939-4729-bae5-63708fb1e2b6
* chat: do not notify when a session replays its history Opening a session that had already finished showed a "Session finished." OS notification. Loading a session adds each historical request to the model and then completes it, which is the same path that live work uses. The notifier saw that as a response that had just finished. - Notifies only when the last response of the session carries a completion time that is later than the moment this window started to watch the session. A replayed response keeps the completion time it originally had, or has none at all when that time was never recorded. - Replaces the earlier check for the presence of a request, which was true for a session that only replayed its history. - Adds a test for a replayed session, with and without a recorded completion time. Fixes #333250 (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chat: stamp the completion time of a streamed turn that finishes while watched Addresses the Copilot review comment on PR #333582. A streamed remote or agent host turn shared the completion path with history replay, so it finished without a completion time. The notifier treats a response with no completion time as replayed history, which would have stopped it from telling the user that a session it was watching had finished. - Completes a response that finishes while the session is watched with the current time. A response that only replays history keeps the time it originally finished, or none when that time was never recorded. - Treats a session that is already complete when it loads as replayed history, and a session that has been seen working as one that finishes while watched. - Adds a test for a streamed turn that finishes after the session loads. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chat: derive live completion from the completion state transition Replaces the flag that recorded whether a streamed session had been seen working. The flag was set from the completion state but named for streamed progress, it lived in the branch that tracks cancellation, and it needed a manual reset. - Compares the completion state against the previous observation instead. A session that is already complete when first observed finalizes replayed history, and a session that completes after it was seen running finished while watched. - Leaves the cancellation backstop branch unchanged. - Adds a test for a streamed session that loads already complete, which no test covered before. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chat: remove the real timers from the chat window notifier tests The tests waited on the real notification delays, which made the suite slow and sensitive to the speed of the machine. - Makes the idle delay and the background window delay overridable, as the sessions window notifier already does. - Sets both delays to zero in the tests and drains the timers instead of waiting for them. The suite now takes 10ms rather than 3s. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* nes: test: cover Windows paths with spaces Add Windows-only assertions for custom patch prediction and response resolution so the Copilot Windows CI job can validate issue #325491 with native URI behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c3a3ef53-5b3f-4816-a695-a90acc9caa11 * nes: fix: normalize Windows workspace path casing Compare local Windows file and notebook paths case-insensitively when stripping the workspace root. URI serialization lowercases the document drive letter while the workspace URI can retain uppercase casing, which leaked an absolute path into NES predictions. Fixes #325491 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c3a3ef53-5b3f-4816-a695-a90acc9caa11 * nes: fix: narrow Windows path normalization Normalize only the drive-letter segment so case-sensitive virtual notebook paths remain distinct. Extend Windows coverage for file-backed and virtual notebook cells, and make the response test observe active-document progressive reveal. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c3a3ef53-5b3f-4816-a695-a90acc9caa11 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c3a3ef53-5b3f-4816-a695-a90acc9caa11
* chat: persist remote connection sharing Restores the user's remote connection sharing choice after the Agent Window starts. - Stores the enabled sharing choice in application-scoped user storage. - Restores tunnel hosting after startup when the saved choice is enabled. - Clears the saved choice before stopping the tunnel, including when stop fails. - Adds coverage for restoration and failed tunnel shutdown. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chat: refine remote connection sharing Corrects restoration and restart behavior for saved remote connection sharing. - Uses existing authentication only when sharing is restored at startup. - Keeps the sharing preference when tunnel configuration restarts hosting. - Stores the machine-local network exposure choice with the machine target. - Adds focused tests for silent restoration and failed restart behavior. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Route MCP App requests through owning Agent Host Resolve Agent Host MCP App subrequests and notifications through the connection authority carried by the render data, including reconnects. Fixes #333474 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Test MCP App notification connection rebinding Verify notifications from a replaced Agent Host connection are detached and only the current owning connection is forwarded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: use setting for dictation cleanup experiment Configure dictation.experimental.llmCleanupModel as the ExP-backed setting and remove the duplicate assignment-service plumbing. Preserve the auto override by resolving it through the experiment-provided configuration default. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8d31eaa8-0167-4e21-9b96-54e229afb71e * configuration: replace auto experiment defaults on refetch Track experiment-provided defaults per setting so refetches can replace or remove stale values without disturbing unrelated experiment overrides. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8d31eaa8-0167-4e21-9b96-54e229afb71e * chat: use conventional dictation experiment name Let the configuration experiment use config.dictation.experimental.llmCleanupModel instead of retaining the legacy dictationLlmCleanupModel treatment name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8d31eaa8-0167-4e21-9b96-54e229afb71e * test: check configuration contribution disposables Add the required disposable leak guard to the new configuration experiment test suite. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8d31eaa8-0167-4e21-9b96-54e229afb71e --------- Copilot-Session: 8d31eaa8-0167-4e21-9b96-54e229afb71e
dispose extension pseudoterminals when terminals close
…uality mcp: Avoid stopping servers for equivalent URI definitions
chat: restore static editing session telemetry event names Keep the 5% stable session sampling while passing literal event names to publicLog2 so telemetry extraction can discover both store and restore events. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the Issue/PR plus with the same dropdown affordance used by the harness and workspace pickers.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: Disable unavailable session type picker Keep the sole session type visible for context while preventing interaction when no alternative can be selected. Re-enable the picker reactively when another type becomes available.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: Skip disabled harness in onboarding Gate the V2 harness spotlight on the picker interaction context so a visible but disabled sole session type is not presented as an actionable tour step.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Revert "agentHost: re-enable retryable errors" Disable Copilot resumable error markers again while keeping the retry protocol and implementation available for later re-enablement. Reverts #333260. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…3620) Agent Host changes for agents/fix-customization-modal-card-colors
Agent Host changes for agents/skills-page-local-section-clarification
* Agent Host changes for lramos15/agents/auto-tiers-routing-profiles-optimization * agentHost: fix hygiene and pin the Auto routing profile per session Align remote/package.json with the root @github/copilot pin so the check-package-json hygiene task passes, and restore the formatting of two accidentally joined lines. Keep a materialized session's Auto routing profile fixed: the runtime owns it from creation, so a mid-session change is now reverted in the recorded selection instead of being persisted and shown as if it applied. The launch profile is read from the session's launch plan via a new launchAutoTier getter. Also restore a reasoning-effort value in an extension test that a tier rename had wrongly rewritten. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d0e056c-277d-40c3-ba90-eb5fe6653948 * agentHost: tighten Auto routing profile comments Trim every comment added for the Auto routing profile work to at most two lines, and reduce the automodeService JSDoc edit to the renamed word so the surrounding wording stays as its author wrote it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d0e056c-277d-40c3-ba90-eb5fe6653948 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9d0e056c-277d-40c3-ba90-eb5fe6653948
* agent host: update to AHP 0.9.0 Updates VS Code to the AHP 0.9.0 protocol and Rust crates. - Renames the automation catalog state and adopts the entries collection. - Treats normalized automation channel URIs as equivalent on both ends. - Updates generated protocol types and handwritten automation consumers. - Updates the Rust AHP dependencies and new request fields. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent host: preserve AHP compatibility Keeps the AHP 0.9 update compatible with supported hosts and stored data. - Excludes AHP 0.8 from client negotiation because its automation wire shape differs. - Migrates version 1 automation catalogs from automations to entries. - Writes migrated automation storage with version 2. - Adds regression coverage for protocol negotiation and storage migration. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent host: keep automation storage at version 1 Preserves the existing durable automation format while adopting the AHP 0.9 runtime model. - Keeps stored catalogs in the version 1 automations collection. - Maps stored automations to protocol entries when the service loads. - Maps protocol entries back to automations before persistence. - Updates storage fixtures to verify the stable format. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
…eView-toolbar fix: memory leak in accessible view toolbar
…33632) Agent Host changes for agents/update-main-and-dark-theme-links
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 628b1c91-5489-4cfc-baf3-ca556c6e50bc
* chat: keep single-plugin sources installed after a reload A plugin installed with "Install from Source" from a repository that has only a plugin manifest, and no marketplace index, disappeared from the customizations view after a window reload. The plugin stayed on disk and stayed recorded in installed.json, but the full descriptor was never recovered, thus the installed-plugins observable discarded the entry. - Moves the single-plugin manifest fallback into the hydration step, where the recorded install directory of the entry is known. The fallback applied only to non-shorthand references before, thus it could not run for the GitHub shorthand references that "Install from Source" makes. - Reads the manifest from the recorded install directory instead of a repository path derived again from the marketplace reference. This also corrects a path mismatch for `owner/repo#ref` sources, whose clone is in `github.com/owner/repo` while the derived path added a `ref_<ref>` segment. - Makes _readPluginsForInstalledEntry do only the marketplace lookup. - Adds a regression test for a single-plugin GitHub repository that survives a restart. Fixes #333543 (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chat: limit the single-plugin fallback to the no-marketplace case Found in review. - Applies the manifest fallback only when the marketplace supplies no plugins. A marketplace that resolves but no longer lists an entry, such as after a rename, must not fall back, because a marketplace plugin directory usually holds a manifest too and reading it rebuilt the entry as a direct source rooted at the marketplace repository, which sent later updates to the wrong repository and path. - Makes the restart test use a `#ref` reference, so the recorded clone directory and the directory derived from the reference differ. The test now proves that hydration reads the recorded install directory. - Adds a test that a marketplace plugin the marketplace no longer lists stays unhydrated. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bumps [ip-address](https://github.com/beaugunderson/ip-address) and [socks](https://github.com/JoshGlazebrook/socks). These dependencies needed to be updated together. Updates `ip-address` from 9.0.5 to 10.7.0 - [Release notes](https://github.com/beaugunderson/ip-address/releases) - [Commits](beaugunderson/ip-address@v9.0.5...v10.7.0) Updates `socks` from 2.8.4 to 2.8.9 - [Release notes](https://github.com/JoshGlazebrook/socks/releases) - [Commits](JoshGlazebrook/socks@2.8.4...2.8.9) --- updated-dependencies: - dependency-name: ip-address dependency-version: 10.5.0 dependency-type: indirect - dependency-name: socks dependency-version: 2.8.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@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 : )