Skip to content

[pull] main from microsoft:main#1384

Merged
pull[bot] merged 45 commits into
KingDEV95:mainfrom
microsoft:main
May 5, 2026
Merged

[pull] main from microsoft:main#1384
pull[bot] merged 45 commits into
KingDEV95:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 5, 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 : )

mjbvz and others added 30 commits May 1, 2026 15:08
Co-authored-by: Copilot <copilot@github.com>
…ose fix

Picks up xterm.js commit 08ae141 (xtermjs/xterm.js#5826) which adds dispose / hasRenderer guards in OverviewRulerRenderer and cancels its pending requestAnimationFrame on dispose. This addresses the long-standing 'Cannot read properties of undefined (reading ''dimensions'')' crash tracked in #303546.
* Add experimental alt prompt for Claude Opus 4.7 behind chat.claude47OpusPrompt.enabled setting

* Address council review feedback for Opus 4.7 prompt
Had a temporary fork to support the in-progress relay client connections
…rities.rewrite (fixes #314124)

The cloud platform delegate in RemoteAuthorities.rewrite() can throw during
startup before the connection is established. This error is already handled
(the original URI is returned as fallback), but it was being reported via
onUnexpectedError which emits to telemetry listeners.

Switch to onUnexpectedExternalError which still logs the error but does not
emit to telemetry, matching the intent that this is an expected race condition
from external code.

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

chore(deps): bump @xterm/* to beta.213 to pick up overview ruler dispose fix
…ice (#314194)

* feat(agent-host): gate inbound filesystem RPCs with a permission service

Reverse `resource{Read,List,Write,Delete,Move}` from remote agent hosts
were routed straight to `IFileService` with no authorization. Add a
permission service that gates each reverse RPC, returns typed
`PermissionDenied` with `data.request`, handles negotiation via the new
`resourceRequest` reverse RPC, and surfaces a Deny / Allow / Always Allow
prompt above the chat input.

URIs are canonicalized through `IFileService.realpath` before comparison
so `..` and symlinks can't escape grants. Implicit read grants are
auto-registered for customization URIs the client sends to the host, so
plugin sync remains friction-free. Always-Allow grants persist into a
new user setting, `chat.agentHost.localFilePermissions`.

* comments and tests
* Fixes component fixture errors

* refactor: replace empty mock with MockChatModeService in chat fixture services
* add ChatSkill.disableModelInvocation

* update
Pre-scan the full message history before applying the previous_response_id slice, so tool_search_call ids and loaded tool names are remembered even when the assistant message that emitted the tool_search call carries the stateful marker (and is therefore dropped from the post-marker slice). Without this, the subsequent tool result was serialized as a plain function_call_output instead of tool_search_output, leaving deferred MCP tool definitions unloaded on the server and the model unable to invoke them.

Fixes #313899
* Reduce token usage of "add element to chat"

Co-authored-by: Copilot <copilot@github.com>

* feedback

---------

Co-authored-by: Copilot <copilot@github.com>
* chronicle skill

* chronicle skill updates

Co-authored-by: Copilot <copilot@github.com>

* Feedback updates

Co-authored-by: Copilot <copilot@github.com>

* tests update

* Fix tsc err

Co-authored-by: Copilot <copilot@github.com>

* few updates

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
…te-error-314124-c7580a277ba21472

fix: use onUnexpectedExternalError for delegate errors in RemoteAuthorities.rewrite (fixes #314124)
* Add title bar Open in Agents entry and profile

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

* fix creating agents window profile

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI and others added 15 commits May 4, 2026 22:46
Populate promptContext.tools in AgentIntent.handleSummarizeCommand so
historical assistant turns with tool calls survive into the
summarization prompt. Without this, <ChatToolCalls> drops them and the
compaction request contains no assistant role blocks.

Fixes #313633
#314262)

Adopt the AHP protocol's WebSocket-style version negotiation: clients now
send `protocolVersions: string[]` (SemVer) and the server picks one,
returning `UnsupportedProtocolVersion` (-32005) with a typed
`UnsupportedProtocolVersionErrorData { supportedVersions }` payload when
nothing matches. Removes the legacy numeric `PROTOCOL_VERSION` /
`MIN_PROTOCOL_VERSION` / `capabilitiesForVersion` API in favor of the
generated registry under `state/protocol/version/`.

Surface the new error to users in the agents workspace picker:

- `RemoteAgentHostConnectionStatus` is now a discriminated union with a
  new `incompatible` variant that carries the host's rejection message,
  the versions we offered, and the versions the host advertised.
- The picker entry for an incompatible host renders with `Codicon.warning`,
  an "Incompatible" label, and a hover that includes the host's message.
- Clicking the entry opens the management quickpick with a title
  ("Options for <label> (<address>)") and a sticky `Severity.Warning`
  validation banner explaining the version mismatch and pointing at how
  to recover. Other failure states are unchanged.
- Auto-reconnect is suppressed only on -32005; network-level failures
  keep their existing exponential backoff. Manual Reconnect clears the
  state and retries. WebSocket, SSH, and tunnel paths share one helper
  (`RemoteAgentHostConnectionStatus.fromConnectError`) so they all
  surface incompatibility identically.

Tests updated to the new wire shape; new server-side test covers the
-32005 rejection path, new client-side tests cover the offered SemVer
array and the typed error data, new tests cover the picker label,
hover, and validation banner.
Allow `installPluginFromSource` to install repositories that ship a single plugin manifest at the
root (e.g. `.claude-plugin/plugin.json`) instead of requiring a `marketplace.json` index. When the
marketplace scan returns no plugins, we now fall back to detecting a plugin manifest at the repo
root, treating the cloned repo itself as one plugin.

- Adds `readSinglePluginManifest` to `IPluginMarketplaceService`, mirroring the existing
  `MARKETPLACE_DEFINITIONS` table with `.plugin/plugin.json`, `.claude-plugin/plugin.json`, and
  root `plugin.json` candidates (order matches `detectPluginFormat`).
- Wires the fallback into `_doInstallFromSource`: on a hit we install via the existing git-source
  path so the temp clone is reused. Single-plugin repos are not added to
  `chat.plugins.marketplaces` config since they are not marketplaces.
- Honors `options.plugin` name matching for parity with the marketplace path.
- Updates `_hydratePluginMetadata` to fall back to the same single-plugin lookup so installed
  entries survive a window reload.
- Adds install-service tests covering the success, name-mismatch, and no-manifest-found paths.

(Commit message generated by Copilot)
* Mobile home screen tweaks

* Full

* Update

* Updates

* Updates
…set (#314275)

Anthropic's web_search tool rejects requests that set both allowed_domains
and blocked_domains. Previously the BYOK provider silently used allowed
domains when both VS Code settings were populated, hiding the
misconfiguration. Now we surface a clear, localized error in chat instead.

Fixes #275418
Map known agent provider IDs to their branded codicons in session type
entries built from rootState agents:

- providers containing 'copilot' → Codicon.copilot
- providers containing 'claude'  → Codicon.claude
- 'openai' or providers containing 'codex' → Codicon.openai
- unrecognised providers          → provider's host icon (vm / remote)

The provider-level icon (vm for local, remote for remote) is unchanged
since it represents the host, not any specific agent. Only the per-
session-type icons benefit from agent-specific branding.

Also adds iconForAgentProvider() helper to session.ts and covers the
new icon assignment with tests in both local and remote provider suites.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The rename action's when-clause regex only matched '/^agenthost-/',
which excluded the local agent host (provider id 'local-agent-host').
Use the shared ANY_AGENT_HOST_PROVIDER_RE helper so rename is offered
for both local and remote agent host sessions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Do no fail component explorer check if fixture had errors
@pull pull Bot locked and limited conversation to collaborators May 5, 2026
@pull pull Bot added the ⤵️ pull label May 5, 2026
@pull pull Bot merged commit 65ce1b9 into KingDEV95:main May 5, 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.