Commit Graph

1043 Commits

Author SHA1 Message Date
Henning Dieterichs
c9335c2873 node_modules is stale -> ignore node-version changes 2026-03-20 22:04:20 +01:00
Johannes Rieken
21a0998f49 Update milestone version to 1.113.0 in GitHub issues configuration (#303538) 2026-03-20 09:32:26 -07:00
Benjamin Pasero
41075b8b7f feat - update task labels for OSS compatibility (#302819) 2026-03-18 15:10:04 +01:00
Benjamin Pasero
f7b1318461 chore - remove deprecated setting chat.viewSessions.enabled (#302806) 2026-03-18 06:20:49 -07:00
Connor Peet
2a03980067 Merge remote-tracking branch 'origin/main' into connor4312/agent-host-types2 2026-03-17 20:15:51 -07:00
Connor Peet
2418b24d9f agentHost: migrate to use protocol types
- Migrates to use AHP types that are synced via `npx tsx scripts/sync-agent-host-protocol.ts`
- One big churn was migrating out of URIs as rich objects in the protocol.
  We can't really shove our own `$mid`-type objects in there. I also explored doing a
  generated translation layer but I had trouble getting one I was happy with.
- This tightens up some type safety in general and fixes some areas where vscode had
  silently/sloppily diverged from the protocol types.
2026-03-17 20:10:45 -07:00
BeniBenj
eaa6b0a8a0 windows task should not use /d 2026-03-17 23:29:13 +01:00
BeniBenj
27bcf17319 minor sessions task changes 2026-03-17 11:45:14 +01:00
Rob Lourens
98f15b55ea Implement agentHost process (#296627)
* agent host init

* Agent host: Copilot SDK integration with chat UI

* Agent host: direct MessagePort, logging, SDK wrapper, env fix

* Refactoring and cleanup

* Copilot-authored message: Agent-host tool rendering, protocol, and session fixes

Tool invocation rendering:
- Emit tool_start/tool_complete as ChatToolInvocation (not progressMessage)
- Shell tools (bash/powershell) render as terminal command blocks with
  IChatTerminalToolInvocationData, output, and exit codes
- Non-shell tools render via invocationMessage/pastTenseMessage (markdown)
- Filter out report_intent (hidden internal tool)

Agent-agnostic protocol:
- IPC events carry display-ready fields (displayName, invocationMessage,
  pastTenseMessage, toolInput, toolOutput, toolKind, language)
- All Copilot CLI-specific logic in copilotToolDisplay.ts with typed
  interfaces for known tools (CopilotToolName enum, parameter types)
- Renderer never references specific SDK tool names

Session fixes:
- Resumed sessions show tool invocations in history (getSessionMessages
  now returns tool events alongside messages)
- Fixed 'already has a pending request' on resumed sessions by
  conditionally providing interruptActiveResponseCallback
- Fixed event filtering for resumed sessions (sessionId override in
  _trackSession)

Documentation:
- Split parity.md into design.md (decisions) and backlog.md (tasks)
- Updated architecture.md, sessions.md with cross-references
- Added maintenance notes to all docs

* Copilot-authored message: Model picker, session class, DI and test cleanup

* Cleanups

* stuff

* add diagram

* Add claude agent

* Clean up

* Copy some build script changes from #295817

* Simplify

* Update docs

* Register agent-host via chatSessions contribution API, reduce peripheral diff

* Cleanup

* Don't ship stuff in stable

* Dynamic agent discovery via listAgents() IPC

Replace hardcoded per-provider contributions with a single
AgentHostContribution that discovers available agents from the
agent host process at startup. Each IAgent backend now exposes
an IAgentDescriptor with display metadata and auth requirements.

- Add IAgentDescriptor interface and listAgents() to IPC contract
- CopilotAgent/ClaudeAgent return descriptors via getDescriptor()
- Single AgentHostContribution discovers + registers dynamically
- Remove agentHostConstants.ts (no more hardcoded session types)
- AgentHostSessionListController/LMProvider take params instead
- Rename AgentSessionProviders.AgentHost -> AgentHostCopilot
- Update architecture.md, sessions.md, backlog.md

(Written by Copilot)

* Fix review findings: proxy, disposal, filtering, tests

- Add listAgents() forwarding to AgentHostServiceClient
- Guard async discovery against disposal race
- Add provider field to IAgentModelInfo for per-provider filtering
- Filter models and sessions by provider in LM provider and list
  controller
- Update tests for new dynamic API and agent-host-copilot scheme

(Written by Copilot)

* Use DI for AgentHostLanguageModelProvider

(Written by Copilot)

* Strip @img/sharp native binaries from builds

sharp is a transitive dependency of the Claude Agent SDK used for
image processing. Its native .node binaries cause dpkg-shlibdeps
errors during Debian packaging due to $ORIGIN RPATH references.
Strip all @img/sharp-* platform packages since the agent host
doesn't need image processing at runtime.

(Written by Copilot)

* Strip Claude SDK vendored ripgrep binaries

The Claude Agent SDK bundles ripgrep binaries for all platforms
under vendor/ripgrep/. Wrong-architecture binaries cause macOS
Mach-O verification to fail. Strip them entirely via .moduleignore
(VS Code has its own ripgrep) and add to verify-macho skip list.

(Written by Copilot)

* Add tests for AgentSession, AgentService dispatcher, and workbench agent host components

(Written by Copilot)

* Add trace logging, IPC output channel, tool permissions, and attachment context

- Add Agent Host IPC output channel (only registered at trace log level) that
  logs all IPC method calls, results, and progress events with full JSON payloads
- Add trace-level logging in AgentService dispatcher for all method calls
- Add trace-level logging in session handler for all progress events and session
  resolution
- Wire up onPermissionRequest handler on CopilotClient.createSession and
  resumeSession to auto-approve tool permission requests
- Add IAgentAttachment type to IPC contract and thread attachments from chat
  variables (file, directory, selection) through sendMessage to the Copilot SDK

(Written by Copilot)

* Add tests for attachment context conversion and threading

(Written by Copilot)

* Add gap analysis docs for Copilot and Claude SDK implementations

(Written by Copilot)

* Sanitize env vars for Copilot CLI subprocess

Strip VSCODE_*, ELECTRON_* (except ELECTRON_RUN_AS_NODE), NODE_OPTIONS, and
other debug-related env vars that can interfere with the Node.js process the
SDK spawns. Matches the env sanitization from the extension implementation.
Also set useStdio and autoStart for proper CLI communication.

(Written by Copilot)

* Add error, usage, and title_changed event types to IPC contract

Add IAgentErrorEvent, IAgentUsageEvent, and IAgentTitleChangedEvent to the
progress event union. Wire up session.error and assistant.usage events from
the Copilot SDK to fire as IPC events instead of only logging. Handle error
events in the renderer session handler by rendering the error message. Usage
and title_changed events are logged at trace level.

(Written by Copilot)

* Add abortSession IPC method for proper cancellation

Add abortSession(session) to the IPC contract, implemented across AgentService,
CopilotAgent (calls session.abort()), ClaudeAgent (no-op, uses AbortController),
and the renderer proxy. Wire up cancellation in the session handler to call
abortSession before finishing, so the SDK actually stops processing.

(Written by Copilot)

* Address reviewer feedback: error finishes request, Claude abort, tests

- Error events now call finish() so the request doesn't hang if the SDK
  doesn't send idle after an error
- ClaudeAgent.abortSession calls ClaudeSession.abort() which signals the
  AbortController and creates a new one for future turns
- Add test: cancellation calls abortSession on the agent host service
- Add test: error event renders message and finishes the request
- Remove stale TODO in interruptActiveResponseCallback
- Use timeout() helper instead of raw setTimeout in test
- Update gap docs to reflect completed work

(Written by Copilot)

* Add permission request IPC round-trip (Written by Copilot)

* Remove Claude agent from agent-host process

Strip the Claude Agent SDK integration from the agent-host utility process
to focus on the Copilot SDK path.

- Delete src/vs/platform/agent/node/claude/ (claudeAgent, claudeSession, claudeToolDisplay)
- Remove @anthropic-ai/claude-agent-sdk from package.json
- Remove AgentHostClaude enum member and all switch cases
- Remove Claude command registration in electron-browser chat.contribution
- Clean up build scripts (.moduleignore, verify-macho, gulpfile.vscode)
- Narrow AgentProvider type to just 'copilot'
- Update tests and documentation

(Written by Copilot)

* Wire up permission confirmation UI with ChatToolInvocation (Written by Copilot)

* Fix reviewer feedback: safe permission serialization, deny on abort/dispose (Written by Copilot)

* Forward reasoning events as thinking blocks (Written by Copilot)

* Pass workspace folder as workingDirectory to Copilot SDK (Written by Copilot)

* Store and pass workingDirectory on session resume, update gap docs (Written by Copilot)

* Fix permission rendering, session-scoped permissions, and test gaps (Written by Copilot)

* Auto-approve read permissions inside workspace folder (Written by Copilot)

* Move read auto-approve into CopilotAgent where permission policy belongs (Written by Copilot)

* Update gap docs (Written by Copilot)

* Use log language for IPC output channel, add trace prefix (Written by Copilot)

* Add tool rendering gaps to docs (Written by Copilot)

* Stringify URIs in IPC output channel for readability (Written by Copilot)

* Fix IPC output channel: use log languageId with non-log channel for proper append + syntax highlighting (Written by Copilot)

* Fix build errors: add URI import, fix test mock types (Written by Copilot)

* Don't localize agent host provider strings (Written by Copilot)

* Remove claude-agent-sdk from eslint allowed imports (Written by Copilot)

* fix test

* initial thoughts

* Rename folder to agentHost

* Fix paths

* Fixes

* Fixes for copilot

* Fix moduleignore

* first working protocol version

align more closely with protocol

json rpc and some gaps

* cleanup

* Fix copilot pty.node packaging

* Fix test

* prebuild packaging

* Agenthost server fixes

* Update monaco.d.ts

* Update docs

* Fixes

* Build fix

* Fix build issues

* reduce duplication in side effecting code

* fix model switching not working

* reduce mock duplication

* Build fixes

* Copy vscode's node.pty

* And ripgrep

* And thsi

* Ripgrep goes to non-SDK

* Skip copy for stable build

* Remove outdated script

* Build fixes for asar

* fix

* Add some logging

* Fix for windows

* Fix

* Logs

* build: add glob diagnostic for copyCopilotNativeDeps

* build: check both node_modules/ and .asar.unpacked/ for source binaries

* Fix

* Remove excalidraw

---------

Co-authored-by: Connor Peet <connor@peet.io>
Co-authored-by: Connor Peet <copeet@microsoft.com>
2026-03-16 15:33:31 -07:00
Benjamin Pasero
c160c03676 build - update command to use watch instead of compile (#301511)
* build - update command to use watch instead of compile

* 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-03-13 15:22:44 +00:00
Ladislau Szomoru
1b4918ede5 Engineering - update notebooks (#301446) 2026-03-13 13:44:14 +01:00
Henning Dieterichs
5d56633a57 updates component explorer 2026-03-11 22:30:41 +01:00
BeniBenj
9831d8f09c add support for running tasks on worktree creation 2026-03-11 18:13:56 +01:00
Paul
21d682f185 Allow local customizations (#300298) 2026-03-10 01:00:21 +00:00
Henning Dieterichs
be9986cffd Fixes problem with code coverage on windows 2026-03-06 18:25:39 +01:00
Logan Ramos
9a4492fde6 Cleanup some team members from end game notebook (#299507) 2026-03-05 16:59:46 +01:00
Henning Dieterichs
a1ef9c86f2 fixes change detection in vscode-extras 2026-03-04 20:40:28 +01:00
Ladislau Szomoru
252340a237 Engineering - update notebooks (#299232)
Co-authored-by: Johannes Rieken <johannes.rieken@gmail.com>
2026-03-04 18:34:24 +00:00
Henning Dieterichs
4ab6fddf3e Revert "Adds support for stronglyRecommended extensions. Implements #299039"
This reverts commit 240196b595.
2026-03-04 19:27:59 +01:00
Henning Dieterichs
240196b595 Adds support for stronglyRecommended extensions. Implements #299039 2026-03-04 11:12:16 +01:00
Benjamin Pasero
06c96dcab4 sessions - AI customizations for selfhost (#299053)
* sessions - AI customizations for selfhost

* more

* Update .github/hooks/hooks.json

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

* Update .github/skills/sessions/SKILL.md

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-04 05:56:19 +01:00
Benjamin Pasero
8c6874835d sessions - updates to selfhost setup (#298943)
* sessions - updates to selfhost setup

* document more hooks
2026-03-03 04:39:31 -08:00
Henning Dieterichs
bafa1dff7b removes dependency 2026-03-02 21:10:40 +01:00
Connor Peet
5b46a7924f chat: make sendChatRequest extensionIdentifier parameter optional (#298767)
* chat: make sendChatRequest extensionIdentifier parameter optional

Makes the 'from' parameter optional (ExtensionIdentifier | undefined) in the
sendChatRequest method chain across ILanguageModelsService, RPC protocol, and
implementations. This allows internal VS Code calls to pass undefined instead
of instantiating invalid ExtensionIdentifier('core') identifiers.

- Updates ILanguageModelsService.sendChatRequest signature
- Updates ILanguageModelChatProvider.sendChatRequest signature
- Updates ExtHostLanguageModelsShape protocol
- Updates ExtHostLanguageModels \ implementation
- Removes new ExtensionIdentifier('core') from 5 internal callers
- Passes undefined as requestInitiator when from is absent
- Bumps vscode.proposed.chatProvider API version to 5
- Updates test mocks to accept optional from parameter

Refs https://github.com/microsoft/vscode/issues/290436

(Commit message generated by Copilot)

* keep api as old version for now

* Update src/vs/workbench/contrib/mcp/common/mcpSamplingService.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-02 14:45:16 -05:00
Henning Dieterichs
f85c0b3c83 improves npm caching (#298608) 2026-03-01 18:35:08 -08:00
Ladislau Szomoru
b81269c822 Engineering - fix compilation error (#298585) 2026-03-01 18:59:28 +01:00
Henning Dieterichs
5b7dafcb12 Add vscode-extras extension with npm up-to-date feature and related configurations (#298295) 2026-02-27 17:16:26 +00:00
Henning Dieterichs
0a01b4f5ae Fixes vite warnings & improves pipeline 2026-02-26 21:03:52 +01:00
Henning Dieterichs
96baba2cc4 feat: update component explorer dependencies and add new test fixtures
- Updated @vscode/component-explorer to version 0.1.1-16 and @vscode/component-explorer-cli to version 0.1.1-12 in package.json and package-lock.json.
- Added new test fixtures for chat question carousel, code action list, find widget, inline completions extras, rename widget, and suggest widget.
- Implemented rendering logic for new fixtures to enhance testing capabilities for various components.
2026-02-26 15:30:23 +01:00
Benjamin Pasero
4ae85be683 separate user data dir (#297621)
* eng - add launch config for sessions

* separate user data dir
2026-02-25 08:03:30 +00:00
Johannes Rieken
b26a9e9d90 migrate js/ts settings (#297312)
re https://github.com/microsoft/vscode/issues/297056
2026-02-24 11:23:18 +00:00
Benjamin Christopher Simmonds
2c3fdeba44 add task for sessions (#297298)
* feat: add task to run development sessions

* feat: enable inSessions for task arguments
2026-02-24 03:08:30 -08:00
Benjamin Christopher Simmonds
205cee1526 Merge pull request #297303 from microsoft/benibenj/happy-muskox
Remove outdated setting
2026-02-24 12:07:55 +01:00
BeniBenj
5d03bdec4c remove outdated setting 2026-02-24 11:41:59 +01:00
Benjamin Christopher Simmonds
79acdb7cfa Move open in vscode and open in terminal into titlebar without dropdown (#297283)
* refactor: update menu registration for session actions and remove split button item

* Update customization: tasks.json
2026-02-24 10:11:57 +00:00
Ben Villalobos
5f6caceb01 Update endgame notebook milestone to February 2026 (#297093) 2026-02-23 22:51:53 +01:00
Henning Dieterichs
5c4204e60d updates component explorer 2026-02-23 22:44:44 +01:00
Benjamin Pasero
7bcd7fe84d chat - opt team into inlineChat.affordance: editor (#296931) 2026-02-23 10:12:15 +01:00
BeniBenj
8ad39162c4 run script sessions
cleanup
2026-02-22 21:24:36 +01:00
Benjamin Pasero
efa6580636 chat - add product.overrides.json to git.worktreeIncludeFiles (#296485) 2026-02-20 12:05:19 +01:00
BeniBenj
b1f7bdb7a9 sessions window polish 2026-02-19 18:22:14 +01:00
Benjamin Christopher Simmonds
5f8d2e4005 Merge pull request #296304 from microsoft/benibenj/biological-reindeer
Fix session handling and allow additional characters
2026-02-19 17:12:02 +01:00
BeniBenj
00fe159183 sessions papercut fixes 2026-02-19 16:46:12 +01:00
Johannes Rieken
c00448c8ee fix(tasks): update beginsPattern for transpilation background task (#296295)
https://github.com/microsoft/vscode/issues/295523
2026-02-19 16:22:31 +01:00
Matt Bierner
63530ac8fc Fix build task matcher
This is a pattern so we need to escape special regepx chars like `.`
2026-02-18 16:51:52 -08:00
João Moreno
e3f174c7c4 Add Azure Pipeline skill (#295985)
* add Azure Pipeline skill

* move script to typescript

* 💄

---------

Co-authored-by: João Moreno <22350+joaomoreno@users.noreply.github.com>
2026-02-18 11:22:22 -08:00
Benjamin Pasero
4a2f9d4ad6 chore - comment out session exclusion in settings (#295971) 2026-02-18 10:10:12 +00:00
Alex Ross
d692656d9d Fix tsgo ext build problem matching (#295603)
* Fix tsgo ext build problem matching

* Update .vscode/tasks.json

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

* Fix double timestamp

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-17 14:50:48 -08:00
Benjamin Pasero
7af891aae5 sessions - allow search results for vs/sessions (#295805) 2026-02-17 17:37:02 +00:00
Benjamin Pasero
d797e9f914 sessions - tweak workspace settings for vs/sessions (#295775)
* sessions - tweak workspace settings for `vs/sessions`

* ccr
2026-02-17 15:13:44 +00:00