Commit Graph

147830 Commits

Author SHA1 Message Date
Ladislau Szomoru
7bd2f8d4d6 Session - add actions to filter changes (#300000)
* Initial implementation

* Get changes from last turn working

* Update src/vs/workbench/api/common/extHostGitExtensionService.ts

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

* Apply suggestion from @Copilot

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

* Apply suggestion from @Copilot

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

* Fixup the PR

* Another PR fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-07 15:03:02 -08:00
Rob Lourens
010781f467 Wait for chat cancellation to complete before proceeding (#300001)
* Wait for chat cancellation to complete before proceeding
This is an inherent race condition in the architecture, working on changing it, in the meantime, work around this...

* Fix test
2026-03-07 21:44:53 +01:00
Rob Lourens
5734afd12b Fix build (#299987)
sessionId -> chatSessionId
2026-03-07 19:55:25 +01:00
Benjamin Pasero
f698061d0d Allow to resize modal editor (fix #293915) (#299969)
* Allow to resize modal editor (fix #293915)

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

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

* Update src/vs/workbench/browser/parts/editor/modalEditorPart.ts

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

* .

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-07 17:52:37 +01:00
Benjamin Pasero
8dd5e19942 sessions - fix chat input padding when space is narrow (#299927)
* style - add padding to chat item containers

* style - add box-sizing to chat input container

* Address feedback on chat input padding for narrow spaces (#299930)

* Initial plan

* style - add box-sizing: border-box to item containers to align with input

Co-authored-by: bpasero <900690+bpasero@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>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bpasero <900690+bpasero@users.noreply.github.com>
2026-03-07 17:51:58 +01:00
Ladislau Szomoru
c0ebf3e550 Sessions - rename changes and git folders (#299936) 2026-03-07 09:38:09 +00:00
Robo
848654f005 fix: devtools entrypoint for connecting to extension host (#299905) 2026-03-07 07:50:34 +01:00
Rob Lourens
dee49a9190 Force show scrollbar (#299902)
* Force show scrollbar

* fix
2026-03-07 11:36:00 +09:00
Rob Lourens
8c3784f0ec Port chat input overflow fix to main (#299901)
The part of #299863 that wasn't in main
2026-03-06 18:16:53 -08:00
Robo
3154150df5 chore: bump electron@39.8.0 (#299669)
* chore: bump electron@39.8.0

* chore: bump distro
2026-03-07 01:26:01 +00:00
Rob Lourens
966c59037a Add sessionId to telemetry (#299895)
* Add sessionId to telemetry

* CCR comments
2026-03-07 01:06:24 +00:00
Matt Bierner
95ccad0406 Merge pull request #299659 from microsoft/copilot/fix-hover-effect-for-file-links
Fix file:// link hover tooltip showing raw URL-encoded URI
2026-03-06 16:39:13 -08:00
Elie Richa
2a7cdf83e8 Make variable resolvers based on environment including launch config env (#299752) 2026-03-07 00:37:29 +00:00
Connor Peet
175e346f3f fix: remove chat-pending-dragging class on re-render to fix opacity issue (#299886)
* fix: remove chat-pending-dragging class on re-render to fix opacity issue

Fixes #297473

The 'chat-pending-dragging' class (which sets opacity: 0.4) was not being
removed when elements were re-rendered. This caused messages to randomly
appear with lower opacity if they had been dragged before the list was
updated.

The fix adds 'chat-pending-dragging' to the classList.remove() call that
clears pending-related classes during re-render.

* fix: move class cleanup before pending divider rendering

Addresses review feedback: the chat-pending-dragging class was only
being removed on the normal render path. If a recycled template was
rendered as a pending divider, it would return early before the cleanup
code ran, leaving the class and opacity stuck at 0.4.

This moves the class cleanup to run before the isPendingDividerVM check,
ensuring it's always applied regardless of element type.
2026-03-06 15:38:18 -08:00
Connor Peet
19b032d2ff chat: toggle queue/steer keybindings based on context (#299885)
* chat: toggle queue/steer keybindings based on context

- Splits EditingRequestType.QueueOrSteer into Queue and Steer to track
  which type of pending message is being edited
- Keybindings now respect the chat.requestQueuing.defaultAction setting:
  when steer is default, Enter=Steer and Alt+Enter=Queue; when queue is
  default, the bindings swap
- When editing a queued or steer message, Enter always submits with the
  same type, regardless of the config setting. This ensures pressing Enter
  to save an edit keeps the message in its original queue category
- Updates chatWidget to set the specific editing type based on the
  pending message's kind
- Simplifies keybinding logic with effectiveDefault conditions that
  account for both config and editing context

Fixes #297454

(Commit message generated by Copilot)

* pr comments
2026-03-06 15:24:05 -08:00
Connor Peet
57479c0e8a mcp: fix concurrent request response collection race (#299628)
* mcp: fix concurrent request response collection race

- JsonRpcProtocol.handleMessage now returns JsonRpcMessage[] containing
  responses generated by incoming requests, rather than delegating
  response collection to callers via side-channel state
- McpGatewaySession simplified by removing _pendingResponses and
  _isCollectingPostResponses fields, which were susceptible to racing
  under concurrent HTTP POSTs. Now directly uses handleMessage's
  return value for the response body
- _send callback still invoked for all messages (backward compatible
  with McpServerRequestHandler and SSE notification broadcast)
- Updated tests to assert on handleMessage return values

Fixes #297780

(Commit message generated by Copilot)

* mcp: address review comments on jsonRpcProtocol changes

- Adds JSDoc to handleMessage clarifying what is returned (only responses
  for incoming requests), ordering guarantees for batch inputs, and that
  responses are still emitted via _send callback to avoid double-sending
- Tightens _handleRequest return type from Promise<JsonRpcMessage> to
  Promise<JsonRpcResponse>, enforcing that only valid responses are
  returned. Introduces JsonRpcResponse type alias for better type safety
- Expands error handling tests to assert that returned replies match
  what is emitted via _send for both JsonRpcError and generic error paths

Fixes #297780

(Commit message generated by Copilot)
2026-03-06 14:52:44 -08:00
Dmitriy Vasyura
9fc3d42d22 Pass internalOrg to buildUpdateFeedUrl when checking latest version (#299883) 2026-03-06 22:52:29 +00:00
Connor Peet
3c7c310208 Cherry pick cd11faec7b (#299875) 2026-03-06 14:50:43 -08:00
Megan Rogge
8fb2a54f45 dispose of all terminals for session on dispose or archive (#299816) 2026-03-06 14:37:10 -08:00
Logan Ramos
f3680f6a81 Support rendering reserved output separately (#299867)
* Support rendering reserved output separately

* Fix some of the progress bar logic

* Better handling for reserve
2026-03-06 13:38:40 -08:00
Josh Spicer
ca433bc500 sessions: 'update from VS Code' (#299359)
* refactor(AccountWidget): simplify update button logic and styling

* feat(AccountWidget): enhance update button logic for embedded app scenarios

* fix(AccountWidget): add missing line for clarity in onClick method

* embedded app update hint

* fix(AccountWidget): remove background image from update button when disabled

* Update src/vs/sessions/contrib/accountMenu/browser/media/accountWidget.css

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

* Update src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts

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

* fix(AccountWidget): refine styles for disabled update button

* Update src/vs/sessions/contrib/accountMenu/browser/account.contribution.ts

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

* feat(AccountWidget): embedded app update flow with dialog, close, and open VS Code

- Show outlined 'Update Available' button when updates are disabled due to embedded app
- On click, confirm dialog explains Sessions will close and VS Code will open
- Opens VS Code via productService.urlProtocol with windowId=_blank (new empty window)
- Closes Sessions window after launching VS Code
- Uses secondary outlined button style (border, no fill) for hint state
- Inject IOpenerService, IDialogService, INativeHostService
- Remove simulation TODOs, use real updateService.state

* refactor(update): detect updates in embedded app via canInstall flag

- Add optional canInstall field to AvailableForDownload state
- Darwin: embedded app runs normal init + scheduled checks via HTTP
  (no Electron autoUpdater events), sets AvailableForDownload(update, false)
- Win32: embedded app skips platform setup, checks via HTTP,
  sets AvailableForDownload(update, false) when update found
- Sessions UI: check canInstall === false for hint button + dialog
- Remove DisablementReason.EmbeddedApp (no longer needed)
- Non-embedded --sessions mode uses standard update flow unchanged

* fix: update AccountWidget fixture with new constructor args

* fix: use IHostService instead of INativeHostService for browser layer compliance

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-06 13:23:22 -08:00
Connor Peet
0747aea692 chat: fix stale pending divider headers from persisting (#299868)
When templates are reused for different tree items, the DOM content from
pending dividers was not being cleaned up. This caused old 'Steering' or
'Queued' divider headers to persist visually even after they were no longer
in the list.

The fix checks if the previous element in a template was a pending divider,
and if so, clears the templateData.value node when the template is reused
for a new element.

- Adds a check in clearRenderedParts() to clear templateData.value when
  the previous element was a pending divider
- Ensures stale divider headers don't remain visible after pending requests
  are processed and removed from the queue

Fixes https://github.com/microsoft/vscode/issues/299853

(Commit message generated by Copilot)
2026-03-06 13:16:49 -08:00
Kyle Cutler
e842b429d2 Fix browser positioning issues (#299842) 2026-03-06 13:15:59 -08:00
Megan Rogge
b35cc3053c alert when an image is attached via paste (#299862)
fix #299859
2026-03-06 13:12:01 -08:00
Megan Rogge
22933cea7b add closeOnResult for editor's find widget (#299865)
fixes #264818
2026-03-06 13:11:34 -08:00
Ladislau Szomoru
c30864b3d0 Sessions - initial implementation for git changes (#299855)
* Sessions - initial implementation of repository changes

* Deduplicate resources and fix badge
2026-03-06 12:08:17 -08:00
Josh Spicer
abe7ae5449 fix: include sessions built-in prompts in esbuild resource patterns (#299848)
The new esbuild-based CI pipeline (core-ci) uses curated resource
patterns in build/next/index.ts to copy non-JS assets into the bundle
output. When built-in .prompt.md files were added for the sessions
window, they were included in the legacy pipeline's
vscodeResourceIncludes (build/gulpfile.vscode.ts) but not in the
desktopResourcePatterns used by the esbuild pipeline.

This caused the prompt files to be missing from release builds
(out-vscode-min), even though they worked correctly when running
from sources (where copyAllNonTsFiles copies everything).

Add 'vs/sessions/prompts/*.prompt.md' to desktopResourcePatterns
to match the existing entry in vscodeResourceIncludes.
2026-03-06 12:02:44 -08:00
Matt Bierner
2f67478444 Merge pull request #299646 from microsoft/copilot/add-release-notes-icon
fix: Use `vscode` codicon as theme icon for Release Notes tab
2026-03-06 11:21:54 -08:00
Megan Rogge
b607547dea tweak wording of chat tip for clarity (#299832)
fixes #299565
2026-03-06 11:21:06 -08:00
copilot-swe-agent[bot]
88a4ff6324 Fix tests to use URI.file() for platform-independent paths
Co-authored-by: mjbvz <12821956+mjbvz@users.noreply.github.com>
2026-03-06 18:47:40 +00:00
Matt Bierner
051f73577a Merge pull request #299825 from mjbvz/dev/mjbvz/weekly-tern
Always require `tooltips` for markdown command links
2026-03-06 10:43:05 -08:00
Matt Bierner
527f8aa38c Merge pull request #299397 from mjbvz/dev/mjbvz/polite-chipmunk
Fix terminal-suggest extension icon
2026-03-06 10:40:22 -08:00
Matt Bierner
705054b178 Merge pull request #299613 from microsoft/copilot/fix-tooltip-deprecated-typescript-setting
fix: correct setting name in deprecation message for typescript.format.enable
2026-03-06 10:39:59 -08:00
Megan Rogge
140fced273 ensure deleting attachment works on windows (#299824)
fixes #299733
2026-03-06 10:05:41 -08:00
Henning Dieterichs
1b0e9461de groups component explorer updates 2026-03-06 19:05:28 +01:00
copilot-swe-agent[bot]
41c9352546 fix: pass Codicon.vscode directly instead of registering a new icon
Co-authored-by: mjbvz <12821956+mjbvz@users.noreply.github.com>
2026-03-06 18:02:12 +00:00
dileepyavan
43db920e00 [MCP_Sandboxing]: Notifying network domains that need access (#299701)
* changes to ensure all the network requests are passed through proxy

* changes to ensure all the network requests are passed through proxy
2026-03-06 17:58:10 +00:00
Matt Bierner
844d9b263b Always require tooltips for markdown command links
Fixes #299657

Also gives the displayed text argument a clearer name
2026-03-06 09:52:09 -08:00
Henning Dieterichs
77375f1dc7 Ensures ColorId.DefaultBackground is set when no colors are registered. 2026-03-06 18:40:00 +01:00
Henning Dieterichs
be9986cffd Fixes problem with code coverage on windows 2026-03-06 18:25:39 +01:00
Christof Marti
3b4da4f334 Revert "chore - Refactor inline chat classes to use private class fields (#29…"
This reverts commit 81f2b5cd2f.
2026-03-06 17:25:16 +00:00
Sergei Druzhkov
8734c3f392 debug: fix variable updating after set response (#299473) 2026-03-06 09:16:30 -08:00
Copilot
6bb50a9e22 fix: accept Azure DevOps Git URLs without .git suffix in plugin marketplace (#299576)
* Initial plan

* fix: accept Azure DevOps Git URLs without .git suffix in plugin marketplace

- Remove the `.git` suffix requirement from `normalizeGitRepoPath`; the function
  now accepts any URL path that has at least two segments.
- Update `parseUriMarketplaceReference` to handle paths with and without `.git`:
  - `cacheSegments` are built without the suffix in both cases.
  - `canonicalId` is always normalized to include `.git` so that the same repo
    specified with and without the suffix deduplicates correctly.
- Add a JSDoc comment on `normalizeGitRepoPath` explaining the new semantics.
- Update the test that expected HTTPS/SSH URLs without `.git` to be rejected;
  these are now accepted. SCP-style (`git@host:path`) still requires `.git`.
- Add tests for Azure DevOps-style URLs and cross-suffix deduplication.

Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>

* refactor: use gitSuffix constant instead of magic number -4

Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: connor4312 <2230985+connor4312@users.noreply.github.com>
2026-03-06 09:16:16 -08:00
Sandeep Somavarapu
2b32258b0e merge to main (#299794)
* sessions - fix chat input shrinking at narrow widths (#299498)

style - set width to 100% for `interactive-input-part`

* modal - force focus into first modal editor always

* fix: update precondition for FixDiagnosticsAction and hide input widget on command execution (#299499)

fixes https://github.com/microsoft/vscode/issues/299251

* refactor: remove workspace context service dependency from FolderPicker

* Add logging for agent feedback actions

* modal - some fixes to actions and layout

* modal - surface some editor actions in a new toolbar (#299582)

* modal - surface some editor actions in a new toolbar

* ccr

* keybindings - remove "Edit as JSON" as its now available from the title menu

* settings - remove "Edit as JSON" as its now available from the title menu

* update hover fixes

* terminal fixes

* terminal improvements

* Sessions: fix auth scopes of gh FSP

* sessions customizations: make it easier to scan mcp/plugin marketplac… (#299636)

sessions customizations: make it easier to scan mcp/plugin marketplace list

* sessions: add built-in prompt files with override support (#299629)

* sessions: add built-in prompt files with override support

Ship bundled .prompt.md files with the Sessions app that appear as
slash commands out of the box. Built-in prompts use a BUILTIN_STORAGE
constant (cast as PromptsStorage) defined in the aiCustomization layer,
avoiding changes to the core PromptsStorage enum and prompt service types.

- AgenticPromptsService discovers prompts from vs/sessions/prompts/
  at runtime via FileAccess and injects them into the listing pipeline
- Override logic: user/workspace prompts with matching names take
  precedence over built-in ones
- Built-in prompts open as read-only in the management editor
- Sessions tree view, workspace service, and counts handle BUILTIN_STORAGE
- Add /create-pr as the first built-in prompt
- Bundle prompt files via gulpfile resource includes

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

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

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

* sessions: use AICustomizationPromptsStorage type for builtin storage

Adopt the new AICustomizationPromptsStorage union type in the sessions
tree view method signature. Use string-keyed Records and targeted casts
at the PromptsStorage boundary to stay type-safe.

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

* sessions: remove PromptsStorage casts, widen IStorageSourceFilter

Use AICustomizationPromptsStorage in sessions-local interfaces
(IAICustomizationGroupItem, IAICustomizationFileItem) and widen
IStorageSourceFilter.sources to readonly string[] so BUILTIN_STORAGE
flows through without casts. The only remaining cast is at the
IPromptPath creation boundary in AgenticPromptsService.

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

* sessions: move BUILTIN_STORAGE to sessions common layer

Move AICustomizationPromptsStorage type and BUILTIN_STORAGE constant
from the workbench browser UI module to sessions/contrib/chat/common
so that AgenticPromptsService (a service) does not depend on UI code.

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

---------

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

* sessions: fix ESLint dangerous type assertion in builtin prompts (#299663)

Replace the `as IPromptPath` cast in discoverBuiltinPrompts with a
createBuiltinPromptPath factory function that contains the type
narrowing in one place, satisfying the code-no-dangerous-type-assertions
ESLint rule.

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

* Enhance Agent Sessions Control and Renderer with observable active session resource

* fix terminal

* Enable model management in NewChatWidget

* review feedback

* different competion settings for copilot markdown and plaintext

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Johannes Rieken <johannes.rieken@gmail.com>
Co-authored-by: BeniBenj <besimmonds@microsoft.com>
Co-authored-by: Osvaldo Ortega <osortega@microsoft.com>
Co-authored-by: Josh Spicer <23246594+joshspicer@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-06 09:09:01 -08:00
Megan Rogge
3623d50299 Render command title vs ID for chat tip hover (#299811)
fixes #299579
2026-03-06 09:04:21 -08:00
Lee Murray
8e0baf5de1 Refactor workspace trust editor styles for improved layout (#299798)
* refactor workspace trust editor styles for improved layout and responsiveness

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

* set max-width for workspace trust editor to improve layout

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
2026-03-06 08:59:42 -08:00
Connor Peet
2dbd83bd9f chat: register file system provider via workbench contribution (#299528)
* chat: register file system provider via workbench contribution

- Moves the registerProvider call from ChatResponseResourceFileSystemProvider constructor
  to a new ChatResponseResourceWorkbenchContribution class that gets instantiated by
  the workbench. This ensures the vscode-chat-response-resource:// file system provider
  is registered even though the service has no other dependencies that would trigger
  eager instantiation.
- Changes the singleton registration from Eager to Delayed since the workbench
  contribution now depends on it, triggering instantiation.
- Fixes file system provider not being found errors (ENOPRO) when MCPs or extensions
  try to access chat response resources.

Fixes #299504

(Commit message generated by Copilot)

* bump
2026-03-06 17:26:53 +01:00
Benjamin Christopher Simmonds
3d66185c28 Merge pull request #299730 from microsoft/benibenj/federal-penguin
Fix Claude pickers in overflow menu
2026-03-06 17:07:30 +01:00
BeniBenj
4b1876f38c fix tests 2026-03-06 16:52:29 +01:00
Kyle Cutler
dc94486ab9 Browser: context menus (#299013)
* Browser: context menus

* feedback

* feedback

* auxiliary fix
2026-03-06 07:29:58 -08:00