Skip to content

[mirror] microsoft/vscode#309672 agentHost: support for client-provided tools#1712

Open
austindyoung wants to merge 7735 commits intomainfrom
driftfence/mirror/pr-309672/latest
Open

[mirror] microsoft/vscode#309672 agentHost: support for client-provided tools#1712
austindyoung wants to merge 7735 commits intomainfrom
driftfence/mirror/pr-309672/latest

Conversation

@austindyoung
Copy link
Copy Markdown
Owner

Automated mirror PR for DriftFence counterfactual telemetry.

Source PR: microsoft#309672
Source URL: microsoft#309672
Mirror branch: driftfence/mirror/pr-309672/latest

This PR is maintained by automation for telemetry and review links.

hediet and others added 30 commits April 9, 2026 18:03
…icrosoft#308642)

Make execution subagent model exp based. Also change default tool call limit
…rosoft#308778)

refactor(xtab): extract _performFetch from _streamEditsImpl

Separate the HTTP fetch lifecycle (FetchStreamSource setup, makeChatRequest2,
initial error handling, line stream construction with cursor-tag removal and
latency logging) into a dedicated _performFetch method.

This makes the fetch infrastructure self-contained and returns a clean
AsyncIterable<string> line stream + getFetchFailure callback for downstream
format handlers, matching the pattern already used by
XtabCustomDiffPatchResponseHandler.

_streamEditsImpl is now a coordinator: it calls _performFetch, then dispatches
to format handlers, then post-processes edit-window results.

Part of microsoft#308744
…icrosoft#308812)

* Agents - hide toolbar in the Changes view for the untitled session

* Pull request feedback
Adopts new AHP additions to support this stuff. askQuestions work and
state is updated in the session list.
We need proper command detection to make this work flawlessly, but this
does the initial hookup replacing the copilot SDK's terminal tools with
our tools which are backed by real PTY's.
update model hover so tooltip displays without requiring status icon
…ek-visible-document-check

fix: check message location visibility for failureInVisibleDocument peek
…arkdown-default-view-startup

fix: resolve default view for markdown files on first startup
lszomoru and others added 30 commits April 13, 2026 08:52
…crosoft#309408)

Previously rejected NES entries now show a 👎 icon instead of no
specific icon. Uses direct outcome assignment to avoid false warnings
on the succeeded→previouslyRejected transition. Also registers
the rebasedEdit (when present) with the rejection collector.
style: adjust padding for chatbar to improve layout consistency

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
…crosoft#309442)

* style: update padding, margin, and border for sidebar elements in AI Customization Management

* Update src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css

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

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Bump version to 1.117.0

* npm i

* wait to do engine version bump

* Revert "wait to do engine version bump"

This reverts commit 9db1c0f.

* Add Copilot extension tests to Linux/Windows Electron integration test runs

* Remove failing step that we moved to the main build

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…t-model-picker-overflow

inlineChat: fix model picker overflow when selecting Auto
The Electron main process intermittently crashes during startup on the
`[pango] FcInit` thread with a NULL pointer dereference in expat's XML
string processing, triggered by fontconfig parsing `<include>` directives
in fonts.conf via `XML_ExternalEntityParserCreate`.

Set FONTCONFIG_FILE to a minimal config based on upstream
fontconfig 2.15.0 fonts.conf.in with `<include>` directives removed and
generic family aliases inlined. This avoids the external entity parser
codepath entirely. A version check will fail the build once the runner
ships expat >= 2.7.5, prompting removal of the workaround.
* Git - expose whether a repository is using GVFS

* Make improvements for GVFS

* Update extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorktreeServiceImpl.ts

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

* Update extensions/copilot/src/extension/chatSessions/vscode-node/chatSessionWorkspaceFolderServiceImpl.ts

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

* Fix test compilation

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…tion (microsoft#309474)

xtab: replace getFetchFailure polling with stream-level error propagation (microsoft#308745)

Add FetchStreamError class and reject() method to FetchStreamSource so fetch
failures propagate through the async iterable stream. Consumers now
catch errors naturally via for-await instead of polling a mutable
closure at ~7 call sites.

- Added FetchStreamError (carries NoNextEditReason) in xtab/common,
  keeping platform/chat free of inlineEdits dependencies
- Added FetchStreamSource.reject() delegating to AsyncIterableSource
- Updated _performFetch to call reject()/resolve() instead of setting
  chatResponseFailure
- Removed getFetchFailure parameter from all response format handlers
- Added FetchStreamError catch in _streamEditsImpl and
  xtabCustomDiffPatchResponseHandler

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…-first-session-263434-fix

Do not open debug view on first session start when openDebug is openOnDebugBreak
…osoft#309292)

ObjectMutationLog.write() eagerly committed internal state (_previous,
_entryCount) before the caller persisted data to disk. If the initial
file write failed, the log instance believed it had already written the
Initial entry, so subsequent writes produced only incremental Set/Push
entries. This created .jsonl files missing the required Initial entry,
crashing on reload with 'Cannot read properties of undefined'.

Introduce a two-phase write/confirm pattern:
- write() stores updates in pending fields behind a _hasPendingWrite flag
- confirmWrite() commits pending state after successful disk persistence
- createInitialFromSerialized() and read() clear pending state on reset
- read() now throws a clear error if mutations appear before Initial entry
)

* NES: enable trigger on active editor change by default

- Set triggerOnEditorChangeAfterSeconds default to 10 (was undefined)
- Set triggerOnEditorChangeStrategy default to AfterAcceptance (was Always)
- Replace unconditional same-line cooldown bypass with smart reset:
  cooldown is enforced within a file session but clears when switching
  away and returning, so NES re-triggers on the same line after a
  round-trip to another file
- Update tests to match new defaults and behavior

* fix indentation
…ts-context-menu-actions

testing: align right-click menu with hover bar on compressed result rows
…session-config

Add Agent Host session configuration flow
…ssion (microsoft#309479)

* Agents - Changes view pickers should work with multiple chats in a session

* Pull request feedback
* Add auto-approve session config for agent host

Add an autoApprove session config property to the Copilot agent host with
three options: Default Approvals, Bypass Approvals, and Autopilot (Preview).

- Add autoApprove property to resolveSessionConfig() in copilotAgent.ts
  with sessionMutable: true so it can be changed during running sessions
- Auto-approve all tool calls in agentSideEffects when bypass/autopilot
  is active, overriding per-file and per-command approval rules
- Add client-side filtering (autopilot gated by chat.autopilot.enabled,
  enterprise policy disables bypass/autopilot options)
- Show confirmation dialogs matching the extension host permission picker
- Render the picker in MenuId.ChatInputSecondary for running sessions
  (same location as the normal agent permission picker)
- Wire SessionConfigChanged dispatch for mid-session config changes in
  both local and remote agent host session providers
- Add running session config cache with proper lifecycle cleanup
- Handle restored sessions by creating minimal config entries
- Add 4 unit tests for session-level auto-approve behavior

(Written by Copilot)

* Move auto-approve picker to NewSessionControl (left side)

Render the autoApprove picker in the same location as the normal EH
permission picker (Menus.NewSessionControl, left side) instead of
alongside target/branch on the right side.

- Skip autoApprove property in main session config picker
- Add AgentHostNewSessionApprovePicker registered on NewSessionControl
- Existing running session picker on ChatInputSecondary unchanged

(Written by Copilot)

* Use named type for mutableProperties annotation

Address Copilot review: use IResolveSessionConfigResult indexed type
instead of typeof expression for clearer type annotation.

(Written by Copilot)
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
* agentHost: Restore selected model across sessions (Written by Copilot)

* agentHost: Address model restore review feedback (Written by Copilot)
Does a half-way cleanup of state related to the active client and
supports client-provided tools -- initially the runTests tool, task
tools, and problems tools.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.