Commit Graph

149693 Commits

Author SHA1 Message Date
Robo
4927766313 chore: add srt sandbox dependencies to deb and rpm (#297819)
* chore: add srt sandbox dependencies to deb and rpm

* fix: move the depedency to recommends
2026-03-30 18:29:20 +09:00
Alex Ross
d96c52ea7d Bump version (#306223) 2026-03-30 08:43:58 +02:00
Kyle Cutler
ee6bfc559a Fix shortcuts double-emitting from browser on Mac (#306198) 2026-03-29 20:21:04 -07:00
Rob Lourens
24982fe889 chat: add "Copy Final Response" context menu action (#306184)
* feat: add getFinalResponse method to IResponse and implement CopyFinalResponseAction

* feat: add context key for response view model in ChatListWidget
2026-03-29 19:14:06 -07:00
Rob Lourens
94c7bf8213 Unify agentHost server-side dispatch: remove IProtocolSideEffectHandler (#306158)
* Unify agentHost server-side dispatch: remove IProtocolSideEffectHandler

Eliminate the IProtocolSideEffectHandler interface and make
ProtocolServerHandler talk to IAgentService directly. This removes
the duplicate adapter layer between the WebSocket protocol server
and the real service implementation.

Changes:
- ProtocolServerHandler now takes IAgentService + SessionStateManager +
  IProtocolServerConfig instead of IProtocolSideEffectHandler
- Deleted ~40-line inline adapter in agentHostMain.ts
- agentHostServerMain.ts now uses AgentService instead of manually
  wiring SessionStateManager + AgentSideEffects
- Removed implements IProtocolSideEffectHandler from AgentSideEffects
- Removed dead methods from AgentSideEffects that were only needed
  by the deleted interface (handleCreateSession, handleDisposeSession,
  handleListSessions, handleGetResourceMetadata, handleAuthenticate,
  getDefaultDirectory)
- Type conversions (URI<->string, IAgentSessionMetadata<->ISessionSummary)
  now happen at the protocol boundary in ProtocolServerHandler
- Fixed dispatchAction double-dispatch: WS path previously dispatched
  to stateManager AND called handleAction (which dispatched again)
- Extension methods (getResourceMetadata, authenticate, etc.) now call
  IAgentService directly instead of untyped fallbacks

(Written by Copilot)

* comments

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

* Simplify further

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-29 19:07:20 -07:00
Justin Chen
bf71412e69 change first checkpoint to something more friendly (#306178) 2026-03-29 23:18:02 +00:00
Martin Aeschlimann
d7ebb2cc7d don't block chat when collecting instructions fail (#306161) 2026-03-30 08:47:37 +11:00
Martin Aeschlimann
ba1bdcd30b send button becomes non-responsive in existing workspaces after enabling parent repository customizations (#306153)
* send button becomes non-responsive in existing workspaces after enabling parent repository customizations

* update

* update
2026-03-29 21:31:55 +00:00
Justin Chen
68cb51843c don't show autopilot handoff when policy is disabled (#306151) 2026-03-29 20:30:26 +00:00
Benjamin Pasero
2e2025216e sessions - update item height when approving (#306146) 2026-03-29 20:03:23 +00:00
Rob Lourens
0dad7e0453 Use URI for workingDirectory across agent host layer (#306117)
* Use URI for workingDirectory across agent host layer

- Change IAgentCreateSessionConfig.workingDirectory and
  IAgentSessionMetadata.workingDirectory from string to URI
- Convert file paths to URI at SDK boundary (CopilotAgent)
- Convert protocol strings to agenthost:// URIs at protocol client boundary
- Convert agenthost:// URIs back to file:// at protocol client on outgoing
- Update resolveWorkingDirectory callback to return URI
- Use extUriBiasedIgnorePathCase.isEqualOrParent for path containment
- Use generateUuid() instead of crypto.randomUUID()
- Add CopilotAgentSession tests and SessionWrapperFactory pattern
- Register all event subscription disposables properly

(Written by Copilot)

* Tweak

* Fix test
2026-03-29 21:56:06 +02:00
Benjamin Pasero
9a6bf81db5 debt - cleanup from sidebar support in modal editors (#306141)
* debt - cleanup from sidebar support in modal editors

* .

* Update src/vs/platform/editor/common/editor.ts

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

* .

* Scope sidebar tree action runner to sidebar selection

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/7e47c5a7-9a3f-4353-975d-ab48a16bdc86

Co-authored-by: bpasero <900690+bpasero@users.noreply.github.com>

* .

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bpasero <900690+bpasero@users.noreply.github.com>
2026-03-29 19:50:40 +00:00
Martin Aeschlimann
647e421782 prompt service: simplify types, remove ExtensionAgentSourceType & IResolvedPromptFile (#306128) 2026-03-29 18:53:55 +00:00
Sandeep Somavarapu
fcecb74ef9 sessions: decouple sessions layer from agent sessions dependencies (#306132)
* refactor: remove unused import and update session status check in SessionsManagementService

* refactor: remove public getGitHubContext method and change its visibility to private in SessionsManagementService

* refactor: remove getGitHubContextForSession method and its fallback logic in SessionsManagementService

* refactor: replace pullRequest with gitHubInfo in session data structures and related logic

* refactor: rename ISessionGitHubInfo to IGitHubInfo and update references across session data structures

* refactor: update GitHub info structure to encapsulate pull request details

* refactor: update session management to utilize gitHubInfo for pull request details

* refactor: simplify file URI resolution in CodeReviewService and remove unused method from SessionsManagementService

* refactor: remove unused getSessionRepositoryUri method and related logic from SessionsManagementService

* refactor: update session type constants to use string literals in sessionTypes and sessionsManagementService

* refactor: update pull request handling to utilize gitHubInfo in ChangesViewPane

* refactor: replace AgentSessionProviders with session type constants across sessions layer

Replace direct imports of AgentSessionProviders enum from the workbench
agent sessions layer with CopilotCLISessionType/CopilotCloudSessionType
constants from the sessions layer's own sessionTypes module.

Simplify workspaceFolderManagement to use session workspace data instead
of provider-specific branching. Remove fileTreeView component.

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

* refactor: remove agent sessions dependencies from changes and mode picker

- changesTitleBarWidget: use ISessionsManagementService instead of
  IAgentSessionsService for session lookup and change events
- changesView: use sessionManagementService.onDidChangeSessions signal
- modePicker: replace AgentSessionProviders with CopilotCLISessionType

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

* fix: add missing gitHubInfo to mock session in codeReviewService tests

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

* fix compilation

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 18:43:12 +00:00
Benjamin Pasero
1bff585f1a debt - fix regression with layer checker and DOM (#306119) 2026-03-29 18:13:02 +00:00
Benjamin Pasero
18675700ad sessions - sidebar support in modal editors for changes (#306122) 2026-03-29 19:58:43 +02:00
Ladislau Szomoru
ccbf5dfcfc Sessions - tweak pull request context keys (#306101)
* Sessions - tweak pull request context keys

* Update src/vs/sessions/contrib/changes/browser/changesView.ts

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

* More changes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-29 17:46:07 +02:00
Ladislau Szomoru
61f0639ce0 Sessions - use valid location for quick diff progress (#306084)
* Sessions - use valid location for quick diff progress

* Pull request feedback

* Another one
2026-03-29 09:44:50 +00:00
Martin Aeschlimann
d7ba23500a PromptsService: cache IPromptDiscoveryInfo, simplify IPromptDiscoveryInfo (#306082)
* PromptsService: cache IPromptDiscoveryInfo, siimplify IPromptDiscoveryInfo

* Update src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.ts

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

* Update src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-29 08:31:02 +00:00
Benjamin Pasero
3b664fd5a0 sessions - top shadow also for chat editors in floating windows (#306020)
* sessions - top shadow also for chat editors in floating windows

* Update src/vs/sessions/browser/media/style.css

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-29 09:24:17 +02:00
Rob Lourens
83700a8c46 chat: fix createModelReference leak in ResolveSymbolsContextAction (#306068)
Improve error handling in ResolveSymbolsContextAction by ensuring model reference disposal
2026-03-29 05:15:27 +00:00
Rob Lourens
1ae3819053 test: skip flaky test for empty array input in getFileEdits (#306062) 2026-03-28 21:15:37 -07:00
Peng Lyu
9a82b04373 carousel: fix image loading placeholder (#306061)
* carousel: fix image loading placeholder

* Resolve Comments
2026-03-29 04:14:27 +00:00
Rob Lourens
9bdf0cba5e Bump notebook milestones (#306052)
Bump notebook milestone
2026-03-29 04:06:58 +00:00
Sandeep Somavarapu
229d6c5920 sessions fixes (#306055)
* Sessions - more fixes

* fix compilation
2026-03-29 03:23:55 +00:00
Sandeep Somavarapu
77e838d5b0 sessions: refactor title bar to use sessions management service and add sessions picker command (#306053)
* refactor: streamline session management in SessionsTitleBarWidget and add Show Sessions Picker action

* feat: add Show Sessions Picker action and refactor session actions

* feat: enhance session visibility by including active session in filtered list

* fix: ensure active session is included in filtered list by matching sessionId

* fix: use sessionId instead of URI toString for picked state comparison

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

* refactor: reuse SessionItemContextMenuId for title bar context menu

Use the same menu ID and context key overlays as the sessions list
view instead of hardcoding actions, ensuring consistency.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 03:22:41 +00:00
Rob Lourens
23c0b41d69 Enable test/test-integration scripts to take file.test.ts arguments (#306039)
* Enable test/test-integration scripts to take file.test.ts arguments
The agent likes to use them this way, when it doesn't read the skill

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

* And this

* Fixes

* update

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-29 02:48:59 +00:00
Rob Lourens
73b0fb2937 Refactor CopilotAgent, break out CopilotAgentSession, add tests (#306046)
* Refactor CopilotAgent, break out CopilotAgentSession, add tests

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

* Cleanup a bit

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-28 19:41:37 -07:00
dileepyavan
57d9535056 Rename sandbox setting to chat.agent.sandbox (#303421) (#305846)
* Rename sandbox setting to chat.agent.sandbox (#303421)

Rename the top-level sandbox setting from `chat.tools.terminal.sandbox.enabled`
to `chat.agent.sandbox` to reflect that sandboxing is a general agent concept,
not terminal-specific.

- Update setting ID value to `chat.agent.sandbox`
- Update description to be more general
- Deprecate old `chat.tools.terminal.sandbox.enabled` setting
- Update telemetry event name

Fixes #303421

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

* updating terminal sandbox to agent sandbox

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 01:31:02 +00:00
Peng Lyu
6fadff8258 improve image carousel accessibility (#306011)
* improve image carousel accessibility

* 💄 comments
2026-03-28 17:59:02 -07:00
Martin Aeschlimann
f4ca6f1926 remove internal prompt files (#306009) 2026-03-28 23:18:26 +01:00
Benjamin Pasero
c38a4a4a4b sessions - fix permissions rendering in list (#306008) 2026-03-28 22:17:43 +01:00
Benjamin Pasero
c389bd92a0 sessions - fix dangling separator in aux windows (#306018) 2026-03-28 22:17:08 +01:00
Benjamin Pasero
1d8f0aa771 sessions - enforce icon color from theme icon (#306013) 2026-03-28 22:16:52 +01:00
dileepyavan
c9b8ed1bcf Agent sandboxing: detect missing dependencies before execution and offer installation (#305898)
* updating tests

* sandbox dependencies check for linux

* sandbox dependencies check for linux

* review comment

* Injecting sandboxhelperservice for web
2026-03-28 20:56:52 +00:00
Benjamin Pasero
9d62267654 sessions - restore highlighting of matching when searching in list (#306004) 2026-03-28 20:37:14 +00:00
Ladislau Szomoru
ba7d21e544 Sessions - fix all changes rendering (#306005) 2026-03-28 21:22:10 +01:00
Ladislau Szomoru
f4d0b1255c Sessions - disable auto-commit for background sessions (#306006) 2026-03-28 21:22:06 +01:00
Rob Lourens
fa6338b4d1 agentHost: Register sessions provider independently of having a connection (#305915)
* agentHost: Register sessions provider independently of having a connection

* fix
2026-03-28 18:41:04 +01:00
Benjamin Pasero
1c7585a791 files - speed up glob matching for file events in extension host (#305962)
* files - speed up glob matching for file events in extension host

* partially restore old behaviour
2026-03-28 08:36:18 -07:00
Josh Spicer
8ce4cb75af sessions: add sync-upstream built-in skill (#305771)
* feat: add update-branch skill for rebasing session branches

* fix: update description for update-branch skill to clarify usage

* feat: add sync-upstream skill for rebasing session branches
2026-03-28 07:02:02 +00:00
dependabot[bot]
5df47326b1 Bump picomatch from 4.0.3 to 4.0.4 in /remote (#305821)
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-28 06:41:30 +00:00
Martin Aeschlimann
ea959a9027 PromptsService: remove unnecessary change events (#305662)
* remove unnecessary change events

* Update src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts

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

* Update src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-28 06:39:07 +00:00
Yogeshwaran C
bf4a0eb258 fix: prevent terminal panel from overwriting terminalEditorActive context key (#304802)
The terminalEditorActive context key was being incorrectly set to false
when a terminal in the panel received focus, even though the active
editor was still a terminal editor. This happened because
TerminalService listened to onDidChangeActiveInstance and set the key
based on the active terminal instance's location rather than whether the
active editor is a terminal editor.

Remove the duplicate terminalEditorActive management from
TerminalService since TerminalEditorService already correctly manages
this context key via onDidActiveEditorChange, which checks whether the
active editor is a TerminalEditorInput.

Closes #182979
2026-03-28 06:35:46 +00:00
Rob Lourens
1974322e5c AgentHost: Add remote label to workspace (#305822)
* AgentHost: Add remote label to workspace

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

* Fix tests

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-28 06:30:17 +00:00
Connor Peet
9c25b318e7 Merge pull request #305861 from microsoft/connor4312/edit-metadata
agentHost: actually really track (and restore) file edits
2026-03-27 23:20:53 -07:00
Anthony Kim
c65896cf3d Correct Shell integration migration logic (#305897) 2026-03-28 07:03:38 +01:00
Connor Peet
20c06fd05f Merge remote-tracking branch 'origin/main' into connor4312/edit-metadata 2026-03-27 20:02:21 -07:00
Sandeep Somavarapu
f313ec2516 sessions: Show new sessions in the list immediately before commit (#305880)
* refactor: update session cache to use IChatData and simplify session handling

* feat: add setTitle and setStatus methods to CopilotCLISession and RemoteNewSession

* feat: implement chat ID replacement and handling for session updates

* refactor: remove chat ID replacement logic and related methods from session management

* refactor: streamline session handling by removing resource swap logic and enhancing session cache management

* feat: implement session commit event and related interfaces for chat sessions

* refactor: enhance session management by implementing cache wait logic for committed sessions

* refactor: improve chat session handling by adding immediate group model updates for new chats

* refactor: simplify chat handling by removing immediate group model updates for temporary chats

* refactor: enhance Copilot session handling by adding resource management and improving session cache updates

* refactor: streamline resource handling in CopilotCLISession and RemoteNewSession classes

* refactor: add support for session replacement events in session management

* refactor: add internal documentation for session replacement events in sessions provider

* refactor: improve session replacement handling by using async/await for better readability

* refactor: simplify session replacement handling by removing unnecessary asynchronous wrapper and improving cache management

* refactor: enhance session management by updating active session on provider session replacement

* refactor: update session replacement event properties for clarity

* refactor: add updateWorkspace method to CopilotCLISession and RemoteNewSession for improved workspace management

* refactor: inline replace session event type and fix session cache update

- Remove IChatReplaceSessionEvent interface, inline the type as
  { from: IChatData; to: IChatData } in provider and service interfaces
- Restore setActiveSession call in sendRequest after provider returns
- Fix _refreshSessionCache to properly narrow existing cache entries
  by instanceof (AgentSessionAdapter vs temp sessions) for update calls
- Restore _currentNewSession guard in removal loop to prevent firing
  removed event for the in-flight temp session

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

* refactor: restore setActiveSession call after sendRequest completes

After awaiting sendRequest (which resolves with the committed session), explicitly call setActiveSession so the committed session is always set as active. The onDidReplaceSession handler also sets it, but having it here as well ensures correctness when the handler fires before the group model is updated.

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

* refactor: sync temp session data from agent session and guard active session replacement

Update CopilotCLISession.update() to propagate workspace, title, status, updatedAt, changes, and description from the agent session. Add mutable description and changes observables. Restore instanceof guard in removal loop to prevent premature cleanup of temp sessions. Only replace active session in onDidReplaceSession when the replaced session was actually active.

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

* fix: dispose temp session and fire removal event on commit/error

Dispose the CopilotCLISession/RemoteNewSession temp session and emit
an onDidChangeSessions removal delta when the temp is replaced by the
committed adapter or when an error occurs. This prevents disposable
leaks and lets consumers (e.g. SessionsManagementService) clean up
group-model/cache state for the removed chat.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-28 01:25:43 +00:00
Justin Chen
be936f1f8a make sure thinking is serialized dynamically (#305865)
make sure thinking is serialized dynamically'
2026-03-28 00:40:37 +00:00