Commit Graph
158847 Commits
Author SHA1 Message Date
Connor PeetandCopilot cb9600e793 Only show WSL remote picker option on Windows (#320543)
Fixes #320541

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-09 03:49:35 +00:00
Rob LourensandCopilot 7facb8e3c5 Make Agent Host git-blob URIs label friendly (#317450)
* Make git blob URIs label friendly

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

* Avoid duplicate git blob path metadata

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

* Avoid dash placeholder in agent host URIs

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

* Revert "Avoid dash placeholder in agent host URIs"

This reverts commit de6579dab9.

* Derive Changes editor description from formatted label

Avoid leaking the agent-host wrapper placeholder for root-level wrapped
git-blob URIs (e.g. vscode-agent-host://local/git-blob/-/hello_count.txt?...)
by formatting the full URI with the existing AGENT_HOST_LABEL_FORMATTER
and deriving the description from the formatted label instead of
calling dirname() on the raw wrapped URI.

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

* Keep real path in agent host URIs; make git-blob paths absolute

Agent host URIs now carry the original scheme/authority/query in a JSON
query and keep the real path verbatim in the URI path. git-blob content
URIs use the absolute working-tree path so the diff 'before' side lines
up with the working-tree 'after' side.

(Written by Copilot)

* Encode agent host URI metadata as a url-safe base64 _ah query param

The original scheme/authority/query were carried as raw JSON in the
query, which collided with other query params (e.g. vscodeLinkType) and
got corrupted by URLSearchParams round-trips. Encode the metadata as a
single url-safe base64 _ah parameter so the query stays a well-formed
parameter list and unrelated params can coexist. Update stale test
expectations to the new label-friendly format.

(Written by Copilot)

* Remove dead scopedPathPrefix machinery from SimpleFileDialog

With label-friendly agent host URIs the URI path is already the real
file path, so the scoped path prefix is always empty. Remove the
computeScopedPathPrefix method, the scopedPathPrefix field, and all the
strip/re-add logic that existed to cope with the old /file/- prefix
format. Delete the test file that only exercised that mechanism; the
URI round-trip is covered by agentHostFileSystemProvider.test.ts.

(Written by Copilot)

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 19:45:18 -07:00
Don JayamanneandCopilot Autofix powered by AI cdb2a311ac Disable VS Code completions as agent-host backed sessions, provide their own completions via AHP (#320515)
* Disable VS Code completions as  agent-host backed sessions, provide their own completions via AHP

* Potential fix for pull request finding

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

* Refactor completion provider to remove redundant line in slash command handler

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 18:43:02 -07:00
vs-code-engineering[bot]andvs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com> 91e5eeb82f [cherry-pick] Render keybindings for OpenInVSCode and OpenWorkspaceInAgents widgets (#320514)
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
2026-06-09 01:17:36 +00:00
Harald Kirschner 2f638681e9 Fix Chronicle cloud search timeouts with 7-day default window (#318620)
- Change default cloud turns query window from 90 days to 7 days
- Add two-step pattern as recommended approach (collect IDs first, then enrich)
- Add progressive widening strategy (7d → 30d → 90d) on empty results
- Fix timeout recovery guidance to narrow scope instead of retry

Fixes #318619
2026-06-09 00:55:06 +00:00
Paul dad1bb1e7e Fix exit code 0 hook rendering for pretooluse (#320520) 2026-06-09 00:19:37 +00:00
Hawk Ticehurst 43e3ef5219 Fix suggest widget color contrast issue (#320477) 2026-06-08 20:03:29 -04:00
Connor PeetandCopilot a1ffdd33f1 Fix WSL remote agent host lifecycle (#320498)
* Fix WSL remote agent host lifecycle

Move WSL agent host providers to in-memory cached distro state, reconnect running distros through a dedicated contribution, and allow recent WSL workspaces to connect on demand with progress.

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

* Fix WSL reconnect provider indentation

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

* Fix workspace picker notification service wiring

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

* Fix web workspace picker import order

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

* fix

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 23:59:31 +00:00
Bhavya U b8fbd6cfd4 Pick up current and future Claude models for tool search and prompt routing (#320513)
modelSupportsToolSearch becomes a denylist: Claude 4.5+ is supported automatically (so new and future families work without a code change), while Haiku and pre-4.5 generations are denied explicitly. The Anthropic prompt resolver routes Sonnet/Haiku explicitly and defaults every other current/future model to the latest general-purpose Opus prompt.
2026-06-08 23:54:40 +00:00
Paul f28b044839 Update /create-hook (#320508) 2026-06-08 23:50:38 +00:00
dileepyavan 674776d235 Revert "build: share product pipeline configuration (#320187)" (#320510)
This reverts commit 79cbedef2d.
2026-06-08 23:34:46 +00:00
Bhavya U fb811e1819 Cache Explorer: agent filter, per-chunk breakdown, stable rail selection (#320469)
* Cache Explorer: agent filter, per-chunk breakdown, stable rail selection

- Agent filter dropdown in the rail (defaults to panel/editAgent)
- Collapsible per-chunk breakdown table for the prompt signature
- Clicking/arrowing rail turns updates selection in place instead of
  rebuilding the rail, fixing focus loss and scroll jump; adds Up/Down nav

* Cache Explorer: preserve rail selection for turns without an id

Agent-filter selection was stored as the turn's optional id, so turns
without an id skipped the restore path and could still jump to an
unrelated turn. Store the turn object instead and match in two passes:
precise id/reference identity first, then a composite fallback for
id-less turns so an earlier look-alike can't win over the exact turn.

* Cache Explorer: address review a11y/perf comments

- Rail rows use role=button, so swap aria-selected -> aria-current (kept in sync in selectTurn and on initial render).
- Agent filter trigger: aria-haspopup=menu instead of generic true.
- Mark decorative chevrons (filter + chunk-breakdown toggle) and the chunk role swatch aria-hidden.
- Chunk breakdown gets table semantics: role table/row/columnheader/cell on header, data, and totals rows.
- moveSelection: drop the per-keypress sort; railRowsByIndex Map iteration already yields rows in visual order.
2026-06-08 23:23:18 +00:00
dileepyavanandCopilot Autofix powered by AI 79cbedef2d build: share product pipeline configuration (#320187)
* build: share product pipeline configuration

* Potential fix for pull request finding

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

* build: rename TSA product pipeline

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 15:22:35 -07:00
Vritant Bhardwaj eec0ddabdc Merge pull request #320494 from microsoft/revert-320481-revert-320446-fortunate-basilisk
Disable background todo agent for experimental models
2026-06-08 15:10:51 -07:00
Aaron Munger 1f7946c7cb TTFT and total time events for agent host sessions (#320194)
* TTFT events

* tests

* address comments
2026-06-08 15:09:45 -07:00
Paul c47685b809 Fix hooks parse error in debug logs (#320492) 2026-06-08 21:57:14 +00:00
Sandeep SomavarapuandCopilot faad755f65 sessions: hide Mark as Done action on new session view (#320491)
The ArchiveSessionAction (titled "Mark as Done") was rendered on the
session header toolbar (Menus.SessionBarToolbar) whenever the session
was not archived. Since SessionIsArchivedContext defaults to false, the
action also showed on the new-session view where no session exists yet.

Gate the SessionBarToolbar menu entry with SessionIsCreatedContext so
the action only appears once the session has actually been created.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 21:56:43 +00:00
Benjamin Christopher SimmondsandCopilot 828fe16fa2 sessions: remove sidebar toggles from titlebar context (#320474)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 21:51:14 +00:00
Vritant Bhardwaj e829374bb2 Merge branch 'main' into revert-320481-revert-320446-fortunate-basilisk 2026-06-08 14:50:36 -07:00
Vritant BhardwajandCopilot Autofix powered by AI 8f53f1c18a Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 14:50:22 -07:00
28b554c6d9 sessions: clarify session navigation command naming (#320488)
* sessions: clarify session navigation command naming

Disambiguate the four session navigation commands and surface them
together in the Go menu:

- Add "Go Back One Session" / "Go Forward One Session" tooltips to the
  history Back/Forward titlebar actions while keeping the concise
  "Go Back"/"Go Forward" menu titles.
- Rename the list-position commands to "Navigate to Previous/Next
  Session in List" and add them to the Go menu under a separate group.

Fixes microsoft/vscode#320466

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

* Potential fix for pull request finding

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

* Potential fix for pull request finding

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 21:48:50 +00:00
vritant24 46d16aa7b5 fix tests 2026-06-08 14:43:25 -07:00
Sandeep SomavarapuandCopilot 97eab22fc9 sessions: stop using IAgentSessionsService outside the Copilot provider (#320483)
Commit c385fd3 introduced IAgentSessionsService.model.observeSession(...)
calls into the provider-agnostic sessions workbench (sessionsList renderer
and the visible-sessions grid) for lazy loading. IAgentSessionsService is a
Copilot-provider internal and must only be consumed by the Copilot chat
sessions provider.

Revert those observeSession triggers and the IAgentSessionsService
dependency from sessionsList.ts and visibleSessions.ts, and update the
affected tests to assert on provider-agnostic signals (open-promise
resolution / visibleSessions) instead of observation. Remove the now
vestigial IAgentSessionsService stub from the agent feedback test.

To prevent recurrence, add an ESLint no-restricted-imports ban on
**/agentSessions/agentSessionsService scoped to src/vs/sessions/** (the
Copilot provider folder is exempted), and document the rule in SESSIONS.md
and the sessions skill.

Follow-up for re-implementing lazy loading correctly: #320480

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 14:38:56 -07:00
Vritant Bhardwaj 1870d92e49 Revert "Revert "Disable background todo agent for experimental models"" 2026-06-08 14:38:16 -07:00
Bhavya U 1e79f161ce Add claude-opus-4.8 to tool search model list (#320473) 2026-06-08 14:31:13 -07:00
Bhavya U be3152e621 Regression: Fix execution subagent model setting being ignored (#320231) (#320479)
* Fix execution subagent model setting being ignored (#320231)

getChatEndpoint(string) regressed in the copilot-utility rename (ef061ccb0f): the string branch only resolved the two utility families and threw 'Unrecognized chat endpoint family' for anything else. The execution and search subagents pass their *.model override (e.g. gemini-3-flash) straight to getChatEndpoint(), so the throw was caught and they silently fell back to the parent model.

Restore arbitrary CAPI family resolution via a new _resolveFamily() that routes utility families to their dedicated resolvers and any other family through getChatModelFromCapiFamily(). Adds a regression test.

* Widen getChatEndpoint to accept CAPI family strings; drop casts

Addresses PR review: the public IEndpointProvider.getChatEndpoint only typed its family parameter as ChatEndpointFamily (the two utility aliases), so valid CAPI families like gemini-3-flash required unsafe casts and the contract was misleading. Introduce ChatModelFamily (utility aliases | any CAPI family string, preserving literal autocomplete) and use it for the public API, removing the casts in the execution/search subagents and the regression test.

* Guard search subagent against non-tool-calling configured models

Council review found the search subagent resolved its configured chat.searchSubagent.model and used it directly, without the supportsToolCalls guard the execution subagent already has. Since this PR makes arbitrary CAPI families resolve (instead of throwing and falling back), a resolvable-but-non-tool-calling search model would run the search subagent with its tools stripped by interceptBody. Mirror the execution subagent: fall back to the parent endpoint when the resolved model can't call tools.
2026-06-08 14:22:19 -07:00
Vritant Bhardwaj ddba262fb7 Merge pull request #320481 from microsoft/revert-320446-fortunate-basilisk
Revert "Disable background todo agent for experimental models"
2026-06-08 13:43:28 -07:00
Vritant Bhardwaj 616ac7479c Revert "Disable background todo agent for experimental models" 2026-06-08 13:08:18 -07:00
Hawk TicehurstandMichael Lively 331849349a Update customizations modal titles (#320043)
* Update customizations modal titles

* Address PR feedback

* Change static label from Home to Overview

---------

Co-authored-by: Michael Lively <12552271+Yoyokrazy@users.noreply.github.com>
2026-06-08 15:00:22 -04:00
Sandeep SomavarapuandCopilot ce474f6ce1 sessions: sync spec docs with implementation (#320445)
* sessions: sync spec docs with implementation

Audit and update the Agents window (`src/vs/sessions`) specification
documents to match the current implementation, and add the missing
agent host provider spec.

Changes:
- LAYOUT.md: correct grid root orientation (vertical: titlebar on top,
  then sidebar + right section), aux bar default 340px, and the
  model↔view split (`visibleSessions`, reconcile autorun, focus,
  `setActive`, `restoreVisibleSessions` now on `ISessionsViewService`).
- LAYERS.md: document `electron-browser/` as a core directory with its
  stricter bootstrap rule; clarify services-layer import rules.
- SESSIONS.md: correct the `ISessionsPartService` surface (7 members);
  add the agent host provider to the provider-doc list and folder tree.
- SESSIONS_LIST.md: fix context-key names (`sessionIsArchived`,
  `sessionIsRead`, `chatSessionProviderId`) and add
  `sessionsViewPane.workspaceGroupCapped`.
- MOBILE.md: fix mobile picker file paths; document previously
  undocumented mobile files.
- AI_CUSTOMIZATIONS.md: add newer management-editor files.
- README.md: add agentHost (and localChatSessions) to the provider-doc
  table.
- New: contrib/providers/agentHost/AGENT_HOST_SESSIONS_PROVIDER.md —
  documents the shared base + local agent host provider (identity,
  registration, IDs/URI schemes, draft/graduate send flow, dynamic
  session config, pickers, settings, local-vs-remote differences).

Documentation only.

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

* sessions: document agent host chat content path vs item controller

Clarify that the Agents window does not register an
`IChatSessionItemController` for agent host sessions. The chat widget
loads content and sends purely through `IChatService` + the registered
`IChatSessionContentProvider` (`AgentHostSessionHandler`); the item
controller only feeds the classic chat sidebar list.

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

* sessions: address code review feedback on spec docs

- LAYOUT.md: fix the layout schematic's column separators to show the
  Sessions/Editor/Auxiliary splits; replace the non-existent
  `.session-view-centered-content` selector with the real CSS classes
  (`.chat-composite-bar.session-header-bar`/`.session-chat-tabs-bar` at
  990px and `.interactive-item-container` at 950px).
- LAYERS.md: correct the sessions-core import rule — core may import from
  the services layer (it cannot import from contrib).
- AGENT_HOST_SESSIONS_PROVIDER.md: clarify `IAgentHostSessionsProvider`
  lives in sessions core (`src/vs/sessions/common/agentHostSessionsProvider.ts`)
  and fix the `isAgentHostProvider(provider)` /
  `isAgentHostProviderId(providerId)` signatures.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-08 20:14:31 +02:00
Don Jayamanne 209044e4f4 Change logging level from Info to Debug for chat model state changes (#320439) 2026-06-08 18:07:06 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 064c46b5ce Bump vitest from 3.2.4 to 3.2.6 in /extensions/copilot/chat-lib (#320449)
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.2.4 to 3.2.6.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.6/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 3.2.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-08 10:51:58 -07:00
Lee Murray cd2e894cac Merge pull request #320386 from microsoft/mrleemurray/mild-tomato-limpet
Refactor chat widget styles to use CSS variables
2026-06-08 18:50:28 +01:00
Sandeep Somavarapu bd4d3b7510 fix styling of session header and chat content (#320438)
* fix styling of session header and chat content

* address ccr feedback
2026-06-08 17:49:18 +00:00
Vritant Bhardwaj 4d11aa6aec Merge pull request #320276 from microsoft/vritant24-bgTodoRearch
Rearchitect background todo agent
2026-06-08 10:49:14 -07:00
Vritant Bhardwaj a21839dd71 Merge pull request #320446 from microsoft/fortunate-basilisk
Disable background todo agent for experimental models
2026-06-08 10:47:32 -07:00
Martin AeschlimannandCopilot Autofix powered by AI 74be51b68f Copilot AH: Only update customizations on actual change (#320420)
* Copilot AH: Only update customizations on actual change

* Potential fix for pull request finding

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

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 10:20:50 -07:00
Vritant Bhardwaj 41dea62db9 Merge branch 'main' into vritant24-bgTodoRearch 2026-06-08 10:17:00 -07:00
Vritant Bhardwaj e97a766bd3 Merge branch 'main' into fortunate-basilisk 2026-06-08 10:13:31 -07:00
vritant24 224eaed50f fix tests 2026-06-08 10:13:04 -07:00
Alex Ross 5d49491aca Lots of logging for chat smoke tests and enable in PR builds (#320108)
* Lots of logging for chat smoke tests

* PR test workflows: build extensions/copilot before smoke tests

* PR test workflows: drop duplicate copilot compile from linux/win32 (was already built before integration tests)

* smoke tests: remove musl Claude binary on Linux glibc runner

The musl variant is probed first by @anthropic-ai/claude-agent-sdk and
fails to exec on glibc (ENOENT from missing ELF interpreter), which
caused the Test Claude session tests to time out.
2026-06-08 10:11:27 -07:00
vritant24 1e209befa1 use differnt api 2026-06-08 10:10:55 -07:00
vritant24 2713f46ba9 Disable background todo agent for experimental models temporarily 2026-06-08 09:59:19 -07:00
vritant24 175d8476ff use disposables 2026-06-08 09:49:47 -07:00
vritant24 45069beb19 fix indent 2026-06-08 09:28:18 -07:00
vritant24 5129efc97f fix tests 2026-06-08 09:28:18 -07:00
a82beb7e18 Add compact icon styling and className option for action lists (#320395)
* Add className option for scoped styling in IActionListOptions and update action icons to compact variants

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

* Add submenu indicator styling for compact icon lists

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

* Potential fix for pull request finding

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

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-08 15:59:04 +00:00
a39358515a Improve styling and interaction for customization toolbar and CI status widget (#320419)
* Enhance customization toolbar chevron visibility and header interaction

* Improve CI Status Widget header styles and update collapsed state handling

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

* Update customization toolbar to use medium corner radius for improved styling

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

* Update icon color in customization toolbar to use standard foreground color

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

* Refactor CI Status Widget styles and update focus border comment for clarity

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

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
2026-06-08 17:50:20 +02:00
dileepyavan ffe46771e8 Enable persistent CoT for hidden models (#320333) 2026-06-08 15:45:04 +00:00
Justin Chen 65ee38a7b2 use risk assesment in general confirmations (#320204)
* use risk assesment in general confirmations

* Fix disposable leaks: check isEnabled() before resolving tool in risk badge

The risk-badge factory's isEnabled() guard ran after the call sites'
languageModelToolsService.getTool() lookup. With the feature disabled,
getTool() was still invoked; under the shared component-fixture mock
(which omits getTool), this threw inside the confirmation subpart
constructor, leaving partially-constructed parts unregistered and
reported as leaked disposables.

Move the getTool() lookup into createToolRiskBadge() after the
isEnabled() check, so it is only reached when the feature is on. The
factory now takes languageModelToolsService + toolId, removing the
duplicated lookup and null-check from the terminal, generic, and
elicitation confirmation surfaces.
2026-06-08 17:28:13 +02:00