Skip to content

[pull] main from microsoft:main#1153

Merged
pull[bot] merged 64 commits intocode:mainfrom
microsoft:main
Apr 17, 2026
Merged

[pull] main from microsoft:main#1153
pull[bot] merged 64 commits intocode:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 17, 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 : )

connor4312 and others added 30 commits April 16, 2026 09:43
…0774)

* workbench: fix workspace folder path handling in settings reader

- Fixes handling of workspace folders that have null or undefined URI paths
  in the settings folder observer. Adds fallback path handling using
  URI.with() method for folders without explicit paths.

Fixes #310367

(Commit message generated by Copilot)

* Apply suggestion from @Copilot

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
…y-breakpoint-address-lookup

fix(debug): identify instruction breakpoints by resolved address to allow removal when instructionReference changes (#289678)
* remove setting SubagentToolCustomAgents, enabled by default

* update

* fix tests
* chat customizations: add ChatResourceEnablement

* update

* filter by sessionTypes

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

* inline ChatResourceEnablement

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

* update

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

* update

* revert version change

---------

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

* nes: cache: add a test to show how rebasing fails

* feat: add reverse-agreement rebase for NES cache behind experiment flag

When the user types more text than the model predicted at the same
position (e.g., model: '{', user: '{\n\t'), the rebase engine now
recognizes that the model's edit is consumed by the user's typing and
offers the remaining unconsumed model edits as rebased suggestions.

The new behavior is gated behind the 'reverseAgreement' experiment
flag in NesRebaseConfigs (config key:
chat.advanced.inlineEdits.reverseAgreement, default: false).

Adds 10 unit tests covering positive, negative, and edge cases.
…ider override, iterate candidates

Bug fixes only (no telemetry changes):
1. Filter available_models through knownEndpoints before sending to router
2. Remove same-provider override from router path - trust router ranking
3. Iterate all candidate_models via _findFirstAvailableModel
4. Warn-level logs for sync mismatches
Emits a new telemetry event after all client-side model overrides are applied.
Properties: candidateModel, actualModel, overrideReason (none/clientOverride),
conversationId. Tests cover: match, vision fallback override, router failure.
* Build system for agent sessions

* Discovery fixes

* better npe fix.

---------

Co-authored-by: Peng Lyu <penn.lv@gmail.com>
Previously isNESForAnotherDoc was only set inside addNotebookTelemetry,
so non-notebook cross-file NES always reported false.

- Set the flag on the main edit path for all cases (notebook and non-notebook)
- Set the flag on the jump-to-position path when targetDocumentId differs
- Set the flag and status 'noEdit:crossFileTargetNotFound' when cross-file
  target document is not found in the workspace
- Remove redundant setIsNESForOtherEditor call from addNotebookTelemetry
…hecks (#310800)

* fix: prevent update server from bogus 'unknown' commit in overwrite checks

When update metadata is missing (e.g. interrupted install recovery via
_applySpecificUpdate), the fallback IUpdate uses version: 'unknown'.
This value flows into checkForOverwriteUpdates, which polls every 5
minutes and passes it as the commit to buildUpdateFeedUrl, producing
requests to /api/update/{platform}/{quality}/unknown.

Skip the overwrite check when pendingUpdateCommit is missing or
'unknown' to break the cycle.

* fix: construct commit for install recovery
…ns app (#310812)

I realized after implementing this that we avoid showing diffs for in-progress
sessions

https://github.com/microsoft/vscode/blob/3267a57dc5ace468c668880fca8bb5cb73467e63/src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts#L262-L264

But if that ever was to change this'd work nicely. And I think it should
change :)
remove 'included' property from input latency telemetry configuration
- Use single for-loop to partition available_models into routableModels and
  droppedModels (bhavyaus review)
- Fix test: when ALL available_models are unknown, _selectDefaultModel throws
  since none match knownEndpoints — test now expects throw instead of gpt-4o
…emetry

Add automode.routerModelSelection telemetry with actualModel
…ndidate-models-fallback

# Conflicts:
#	extensions/copilot/src/platform/endpoint/node/test/automodeService.spec.ts
* mobile friendly agent sessions view

* no need for auto hide.

* 💄
…e-models-fallback

Fix router model selection: filter available_models, remove same-provider override, iterate candidates
We only want to set the zindex if we're inside a modal
Fix z-index for webviews with modals
…310830)

* feat: add GitHub Copilot upgrader skill and CLI integration documentation

* Updates

* Update extensions/copilot/src/extension/chatSessions/copilotcli/AGENTS.md

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
rebornix and others added 27 commits April 16, 2026 14:41
…d customizations UI (#310824)

* agents: restore built-in skills and merge into provider-based customizations UI

Built-in skills bundled under `vs/sessions/skills/` stopped appearing in
the Agents window's AI customization UI after PR #310000 deleted
AgenticPromptsService. The CLI extension's itemProvider was also
re-discovering the bundled copies from `out/vs/sessions/skills/` and
tagging them as user-storage, which placed them in the wrong group.

Fix in two parts:

1. Re-introduce a minimal AgenticPromptsService (sessions layer) that
   discovers SKILL.md files under FileAccess.asFileUri('vs/sessions/skills'),
   parses each via the public parseNew(), validates name === folderName,
   and exposes them via findAgentSkills(), listPromptFiles(), and
   listPromptFilesForStorage(skill, BUILTIN_STORAGE). Registered as
   IPromptsService for the Agents window.

2. In ProviderCustomizationItemSource.fetchItems(skill), merge the
   authoritative built-in entries with the harness's itemProvider output:
   - dedup provider items by URI against built-ins (drops the
     out/-tree duplicates)
   - append built-ins with groupKey: BUILTIN_STORAGE so the UI renders
     them under the Built-in group
   - apply the existing 'UI Integration' badge via
     IAICustomizationWorkspaceService.getSkillUIIntegrations()

Safe for regular workbench: base PromptsService throws on BUILTIN_STORAGE
and the merge step catches and returns items unchanged.

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

* agents: preserve BUILTIN_STORAGE on built-in skills so edit/save-as-copy flow activates

The management editor's 'edit built-in and save as user/workspace copy'
flow is gated on item.storage === BUILTIN_STORAGE. The normalizer was
unconditionally rewriting that to PromptsStorage.extension when
groupKey === BUILTIN_STORAGE (historical: built-ins came from the
extension contribution pipeline).

For provider-supplied built-ins, preserve BUILTIN_STORAGE on the
normalized item so the editor becomes editable and the save handler
prompts for a workspace/user target on save.

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

* agents: hide built-in skill when a workspace/user override with the same name exists

Move the built-in skill merge to run on normalized list items so we can
filter out built-ins whose name is already represented by a
PromptsStorage.local or PromptsStorage.user entry. The built-in row
disappears as soon as the user saves a workspace/user copy via the
 save ' flow.as

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

* agents: address Copilot review feedback

- Respect getDisabledPromptFiles when merging built-in skills into the UI
  so a user-disabled built-in shows disabled (not enabled).
- Restrict the 'existing names' override set in findAgentSkills to
  user/workspace skills only, so an extension-contributed skill with the
  same name no longer suppresses the built-in.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…es (#310377)

Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.3.2...3.4.0)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add Developer: Sync Account Policy command

Adds a manual command to force-resync account policy data, bypassing
the 1-hour staleness cache used by the background poller. Plumbs
forceRefresh through getTokenEntitlements and getMcpRegistryProvider
so a forced sync truly hits the network for all three sub-fetches.

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

* Address review: await dialog calls and use detail param for error

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ershell (#310839)

* Fix to put fix in treeSitterCommandParser

* be better with comments
* Log agent host catch failures

(Written by Copilot)

* Use observable models for agent host providers (Written by Copilot)

* Fix root agents changed test narrowing (Written by Copilot)

---------

Co-authored-by: Copilot <copilot@github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.12 to 4.12.14.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.12...v4.12.14)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.12 to 4.12.14.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.12...v4.12.14)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* add agentName to telemetry

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

* comment update

---------

Co-authored-by: Copilot <copilot@github.com>
Partially revert 96a69e3

This re-introduces a issue with sessions not being cleaned up but fixes the more important regression
…0889)

Simplify compaction fallback: use Simple mode on budget exceeded, skip Full

When the main prompt render exceeds the token budget and falls back to
foreground summarization (renderWithSummarization), skip Full mode and
go straight to Simple mode via forceSimpleSummary. This saves a wasted
LLM request since Full would likely also fail under the same budget
pressure, and Simple is guaranteed to fit via hard tool-result truncation.

- Add forceSimpleSummary prop to AgentPromptProps and SummarizedAgentHistoryProps
- Honor forceSimpleSummary in getSummaryWithFallback (unless config forces Full)
- Remove summarizationSource prop and source telemetry field (no longer needed)
- Clean up stale GDPR annotations for removed source field
- /compact and background standard-mode paths keep existing Full → Simple chain
…rExcludeRegexes

Restrict autoImportSpecifierExcludeRegexes to trusted workspaces
* Plumb agent host model configuration through sessions

(Written by Copilot)

* Remove deprecated stuff

* tweak

* sync protocol

* Resolve merge fallout for model config branch

Restore the shared agent host diff helper to match main and adapt protocol file-edit diffs locally in the agent host session providers. (Written by Copilot)

* Fix agent host session diff typings

Restore the session diff compatibility export and allow the agent host session list to display both live protocol file edits and compact metadata diffs. (Written by Copilot)

* Update session diffs for protocol file edit shape

Return aggregated session diffs using the current IFileEdit protocol shape and update the focused tests accordingly. (Written by Copilot)

---------

Co-authored-by: Copilot <copilot@github.com>
* Fix agent host worktree terminal cwd

(Written by Copilot)

* Fix worktree terminal cwd test on Windows

(Written by Copilot)
The AGENT_HOST_SCHEME guard in getActiveSessionFolderData only covered the
repository fallback branch. When a remote agent host session provides a
workingDirectory (worktree), it was added as a workspace folder
unconditionally. This caused PromptFilesLocator to probe all customization
sub-paths (.claude/agents, .claude/rules, .agents, etc.) over RPC,
producing noisy warnings for directories that don't exist.

Hoist the guard above both branches so any agent-host URI is excluded.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nt (#310908)

Callers can now opt into Anthropic features (context editing, tool
search, etc.) by setting modelCapabilities on the request itself,
as introduced in #308387. The base endpoint no longer needs to inject
beta headers — the Claude agent controls its own headers.

Reverts the merge logic from microsoft/vscode-copilot-chat#4945.
@pull pull Bot locked and limited conversation to collaborators Apr 17, 2026
@pull pull Bot added the ⤵️ pull label Apr 17, 2026
@pull pull Bot merged commit 6cd94dd into code:main Apr 17, 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.