Commit Graph

158561 Commits

Author SHA1 Message Date
Matt Bierner db9e1bfaec Merge pull request #319958 from microsoft/dev/mjbvz/automatic-cuckoo
Fix css var name
2026-06-04 10:31:31 -07:00
Matt Bierner 1b6b153ed7 Also bump fallback 2026-06-04 10:00:56 -07:00
Matt Bierner 797c6d8903 Fix css var name 2026-06-04 09:59:53 -07:00
Matt Bierner 19cce3051a Merge pull request #319947 from microsoft/dev/mjbvz/regional-catshark
Bump built-in dompurify
2026-06-04 09:40:46 -07:00
Don Jayamanne eb9cd861bc Improve skill completion filtering and avoid duplicates in Copilot agent (#319854)
* Improve skill completion filtering and avoid duplicates in Copilot agent

* Potential fix for pull request finding

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

* Remove unnecessary return statement in AgentHostSkillCompletionProvider

* Filter out plugins with non-file scheme directories in CopilotAgent to prevent duplicates

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-04 16:30:57 +00:00
Ulugbek Abdullaev be4435867e Fix Ctrl+Tab/Ctrl+Shift+Tab session navigation in Agents window (#319937)
The `sessions.goBack`/`sessions.goForward` actions registered Ctrl+Shift+Tab
and Ctrl+Tab as secondary keybindings at `WorkbenchContrib`  the sameweight
chords and weight as the editor quick-open actions. With equal weight the editor
actions won the conflict in the Agents window, so the chords never triggered
session navigation.

Bump the weight to `WorkbenchContrib + 1` so the session bindings win. The
the Agents window, leaving the main workbench Ctrl+Tab behavior untouched.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-04 09:24:26 -07:00
Lee Murray 4d9b77435c Update font size and weight variables for agents UI components (#319935)
fix: update font size and weight variables for agents UI components

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
2026-06-04 09:24:13 -07:00
Benjamin Christopher Simmonds ea8e43b23f Respect user preference for modal editors in RequiresModal capability (#319931)
fix: respect user preference for modal editors in RequiresModal capability
2026-06-04 18:05:23 +02:00
Matt Bierner 597fb22a0f Bump built-in dompurify 2026-06-04 09:02:00 -07:00
Lee Murray d1aa9987d5 Merge pull request #299753 from gjsjohnmurray/fix-299650
Reinstate symbol icon colors in quickpicks (fix #299650)
2026-06-04 17:01:39 +01:00
Logan Ramos dca7ab906e Telemetry improvements - Better internal check (#319936)
* Remove old chat quota

* Extend the internal telemetry property to also be copilot token driven

* 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-04 17:56:00 +02:00
Lee Murray 99f9087e76 Merge pull request #319892 from microsoft/mrleemurray/favourable-blush-mockingbird
Agents window: Adjust CI status widget styles for improved visibility and responsiveness
2026-06-04 15:52:56 +01:00
Ladislau Szomoru f5cefba139 AgentHost - use git-blob only for the file content (#319901)
* AgentHost - use `git-blob` only for the file content

* Fix unit tests

* refactor: simplify return structure in parseGitDiffRawNumstat function
2026-06-04 16:02:25 +02:00
Robo fcd72a8328 fix: trim unix socket path from createRandomIPCHandle (#319895) 2026-06-04 15:12:18 +02:00
Ulugbek Abdullaev ca2497ae3d Align NES recording bookmark with prompt-build snapshot (#319879)
* Align NES recording bookmark with prompt-build snapshot

The recording bookmark used as requestTime in alternative-action telemetry
was created at provider entry time, but document/selection state used to
build the prompt is snapshotted later in _executeNewNextEditRequest. This
caused replay tools to miss selection-change events that were actually
reflected in the prompt.

* Plumb refreshed bookmark into telemetry builder

Addresses Copilot review: LlmNESTelemetryBuilder snapshots the bookmark
in its constructor and reads _requestBookmark.timeMs later, so updating
only logContext.recordingBookmark left telemetry requestTime unchanged.
Add a setter and call it from _executeNewNextEditRequest.
2026-06-04 15:12:01 +02:00
Lee Murray 09130ce6c0 Merge branch 'main' into mrleemurray/favourable-blush-mockingbird 2026-06-04 13:50:23 +01:00
Lee Murray e0fec37c6e Adjust CI status widget layout and styles (#319894)
* fix: update CI status widget icons to compact versions and adjust CSS for improved layout

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

* fix: adjust gap in CI status widget count badge and add opacity to text

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-04 17:33:14 +05:00
Robo 86ecbbae37 fix: cors capability registration for vscode-managed-remote-resource scheme (#319893) 2026-06-04 17:32:57 +05:00
Connor Peet 5374c5d132 agentHost: support '#' as a file completion trigger in addition to '@' (#319827)
- Adds '#' as an alternative trigger character for file completions in the
  agent host message composer, mirroring the '#'-mention convention familiar
  from VS Code Chat. Users can now type either '@filename' or '#filename' to
  attach a workspace file reference.
- Extends CompletionTriggerCharacter enum with Hash = '#' so clients learn
  about both trigger characters during the initialize handshake.
- Preserves the trigger character in the completion result so insert-text
  uses the same character the user started typing.

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

(Commit message generated by Copilot)
2026-06-04 17:32:38 +05:00
Federico Brancasi 2abf948832 Merge pull request #319345 from microsoft/attachment-chat-attachment-cards
Scope Agents Window chat input history per session
2026-06-04 14:15:31 +02:00
Don Jayamanne 305b74c595 feat: Implement session Git state management and commit operations (#318734)
* feat: Implement session Git state management and commit operations

* refactor: Remove unused methods and imports from AgentService
2026-06-04 05:15:14 -07:00
John Murray d1d0542dba Merge branch 'main' into fix-299650 2026-06-04 12:47:30 +01:00
Lee Murray fa510ce9e9 Merge pull request #307353 from gjsjohnmurray/fix-297278
Improve messages about restart / reload after extension update (fix #297278)
2026-06-04 12:46:51 +01:00
Lee Murray 2061e56cbc Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-04 12:11:25 +01:00
mrleemurray 63141718c8 fix: adjust opacity for non-codicon elements in CI status widget count badge
Co-authored-by: Copilot <copilot@github.com>
2026-06-04 11:55:32 +01:00
Federico Brancasi 1b0fc49530 Simplify scoped chat input history plumbing
Pass Agents session ids through the chat view binding path instead of using a workbench contribution to scan chat widgets. Move temporary-session history preservation into the session replacement handler.
2026-06-04 12:52:57 +02:00
Federico Brancasi 1faec7cd38 Scope chat input history per session 2026-06-04 12:51:46 +02:00
mrleemurray a4017309c0 fix: update CI status widget styles and improve responsiveness
Co-authored-by: Copilot <copilot@github.com>
2026-06-04 11:49:05 +01:00
Lee Murray 9629924031 Update @vscode/codicons to version 0.0.46-15 and add new compact icons (#319885)
chore: update @vscode/codicons to version 0.0.46-15 and add new compact icons

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
2026-06-04 10:40:45 +00:00
John Murray c4a4f8643b Merge branch 'main' into fix-297278 2026-06-04 11:22:24 +01:00
Dmitriy Vasyura 78f3a9adfb Prune missing remote folder from Recently Opened (#319230) (#319257)
* fix: prune missing remote folder from Recently Opened (#319230)

Remote counterpart to the local remove-on-failed-open in WindowsMainService.resolvePath (#74465). At LifecyclePhase.Eventually, the freshly opened workbench stats the current single-folder remote folder URI via the remote file service and prunes from Recently Opened only on authoritative FILE_NOT_FOUND. Transient errors (FILE_OTHER_ERROR / Unavailable) and unregistered providers leave the entry intact.

* address review: restrict prune to vscode-remote authorities (avoid pruning vscode-vfs entries)

* address review: register contribution from workspaces.contribution.ts (keep entry points untouched)

* address review: drop hasProvider guard; rely on FILE_NOT_FOUND filter

hasProvider is sync and the remote provider registers asynchronously via onWillActivateFileSystemProvider, so the earlier short-circuit could permanently skip the prune for the session if the contribution ran before activation. Rely solely on the authoritative FILE_NOT_FOUND filter: any other error (no provider, unavailable, host unreachable) maps to FILE_OTHER_ERROR and leaves the entry intact.

* address review: ignore cancellation errors from window-close mid-stat

* address review: drop any-cast in test (typed Pick); add trailing commas
2026-06-04 12:11:58 +02:00
Simon Siefke 0df366a8a9 fix: memory leak in main thread terminal service (#286236)
* fix: memory leak in mainThreadTerminalService

* Potential fix for pull request finding

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

* fix formatting

* fix

* undo unrelated change

* address review: cleanup tuple return, unused import, heartbeat cleanup

* add ptyHostService restart listener leak test

* _disposePtyHost: avoid spawning pty host during shutdown

* Minor tweaks

* Minor tweaks

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

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
Co-authored-by: Copilot <copilot@github.com>
2026-06-04 09:09:05 +00:00
Connor Peet 6c8a54f8df agentHost: add generic /rename slash command for agent sessions (#319826)
- Lets users rename any agent-host chat session directly from the message
  input via `/rename [title]`, without depending on a specific agent SDK to
  implement renaming — the command is intercepted server-side and redirected
  to a title change, so it works uniformly across every session type.
- Surfaces a brief "Renamed: {name}" turn response so the rename is visible
  in the transcript and the user gets clear feedback.
- Propagates server-side title changes to the live chat model so the view
  title updates immediately, and exposes the persisted title on reopen so the
  stale auto-generated title no longer reappears.
- Broadens the sessions viewer rename affordance (context menu, F2, picker
  pencil) to all agent-host session types instead of only Copilot, matching
  the now-generic rename capability.

Fixes #319814

(Commit message generated by Copilot)
2026-06-04 11:02:34 +02:00
Ulugbek Abdullaev c04dae2fa4 Insert paragraph separator between Copilot CLI assistant messages (#319727)
* Insert paragraph separator between Copilot CLI assistant messages

When the CLI emits multiple assistant messages in a single turn, each
message arrives as its own `assistant.message_delta` /
`assistant.message` event with a distinct `messageId`. The handlers
forwarded each event to `stream.markdown(...)` with no separator, so
consecutive messages fused into a run-on paragraph
(e.g. "...wiring:Now add...").

Track the last emitted `messageId` and prepend `\n\n` whenever the
incoming event carries a different (defined) id. Streaming deltas
sharing the same `messageId` remain unaffected.

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

* Add regression test for undefined messageId legacy behavior

Addresses Copilot review feedback: lock in that legacy SDK emissions
without a defined messageId continue to be concatenated without an
inserted separator, rather than producing spurious blank paragraphs.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-04 18:30:22 +10:00
Martin Aeschlimann 9ef3d038c7 fix compile error in copilotAgent (#319865) 2026-06-04 08:14:36 +00:00
Ladislau Szomoru 2f157094cb AgentHost - fix compilation error (#319864) 2026-06-04 08:10:46 +00:00
Ulugbek Abdullaev dd4a1b48d2 NES: add global-budget cascade specification (#319708)
* NES: add global-budget cascade specification

Add a specification document for the opt-in global-budget cascade in the
NES/xtab prompt builder, sitting next to promptCrafting.ts (following the
existing recentFilesForPrompt.md precedent).

Covers:
- Scope: participating parts and intentionally excluded parts
  (currentFile, lintOptions)
- Defaults: order, shares, totalTokens
- Algorithm: per-step budget math and forward-only surplus flow
- Per-part floor/ceiling guarantees and pool ceiling
- Validation rules with exact error strings
- Wiring and experiment configuration keys
- Four worked examples at totalTokens = 5000
- Behavior when languageContext / neighborFiles are disabled
- Composition with the independently-clipped currentFile

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

* NES: address Copilot review comments on global-budget cascade spec

- Document that neighborFiles also mutates docsInPrompt and that the
  accumulated set affects diffHistory selection when onlyForDocsInPrompt
  is enabled.
- Note that the per-part floor guarantee assumes non-negative shares
  (negatives are clamped to 0 by max(0, floor(...))).
- Replace <sum> placeholder in the validation error row with
  ${sharesSum} to match the implementation's template literal.
- Reflect per-step flooring in the effective-cap formulas and the
  T = 5000 table for the both-off scenario: diffHistory caps are
  1666 / 3498 / 4998 (not 1666 / 3500 / 5000), since the total cascade
  pool ceiling is 4998 at T = 5000.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-04 13:08:32 +05:00
Simon Siefke 4335523853 fix: memory leak in pty host service (#287025)
* fix: memory leak in pty host service

* Potential fix for pull request finding

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

* fix

* Address PR review comments

- Rename ptyHostStore to _ptyHostStore for consistency with other private fields
- Simplify _startPtyHost: assign the store inside instead of returning a 3-tuple
- Use _optionalProxy in _disposePtyHost to avoid re-spawning during shutdown
- Reset __connection/__proxy on dispose
- Add regression test that verifies listener counts stay stable across restarts

* Minor tweaks

* Minor tweaks

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

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
Co-authored-by: Copilot <copilot@github.com>
2026-06-04 07:58:46 +00:00
Simon Siefke 0f8c167483 fix: memory leak in pane composite bar (#282589)
* fix: memory leak in pane composite bar

* refactor: deduplicate composite actions dispose

* address review: hoist actionItem local

---------

Co-authored-by: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
2026-06-04 07:54:47 +00:00
Dmitriy Vasyura ee637c029a Release terminal link cache and cancel pending link providers on terminal close (#319184)
* Release terminal link cache and cancel pending link providers on terminal close

ExtHostTerminalService kept per-terminal entries in _terminalLinkCache and _terminalLinkCancellationSource forever:  populated them but nothing ever removed them when a terminal was closed. Each terminal that ever had links queried leaked its cached links plus a CancellationTokenSource until the extension host exited.

Clear both maps in  and dispose(true) the in-flight cancellation source so dangling provider promises resolve instead of hanging.

* Update unit-test

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-06-04 09:29:10 +02:00
Sean Goedecke 4e9a386ced Fix auto mode fallback for empty model providers (#316174)
Fix auto mode with empty model providers

Treat an empty current model provider as no provider affinity so Auto Mode still falls back to the first available model with a known endpoint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-04 07:13:43 +00:00
Don Jayamanne 3842af6c0f Refactor exit plan mode request handling in CopilotAgent and tests (#319808)
* Refactor exit plan mode request handling in CopilotAgent and tests

* refactor: remove unused comments in CopilotAgent class
2026-06-04 17:09:04 +10:00
Martin Aeschlimann 320585af4f Copilot AH: set the workingDirectory to SessionConfig, otherwise customization and repo detection does not work (#319810) 2026-06-04 16:40:39 +10:00
Vritant Bhardwaj ebb335fad0 Merge pull request #319837 from microsoft/vritant24-patch-1
Disable GitHub specific subagents for extension contributed endpoint providers
2026-06-03 20:21:35 -07:00
Vritant Bhardwaj cd31823e0b Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-03 19:49:44 -07:00
Vritant Bhardwaj f161f59e71 Disable GitHub specific subagents for extension contributed endpoint providers 2026-06-03 19:43:49 -07:00
Sandeep Somavarapu ff11cfe649 polish (#319831)
* polish

* add secondary keybindings

* 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-04 01:43:35 +00:00
Benjamin Christopher Simmonds 3780c21eae Merge pull request #319818 from microsoft/benibenj/unknown-toad
Don't sneak in bugs :)
2026-06-04 03:26:08 +02:00
Matt Bierner 8147200211 Merge pull request #319813 from microsoft/dev/mjbvz/zestful-rat
Block programmatic webview click and keypress re-dispatch events in some cases
2026-06-03 18:13:38 -07:00
Sandeep Somavarapu b6c31fac9d sessions: prevent new-session draft from overriding restored sessions (#319828)
* sessions: prevent new-session draft from overriding restored sessions

After restore lays out the persisted grid, the empty new-session slot's
workspace picker could still resolve asynchronously (on the same provider
-registration event restore waits for) and create + activate an untitled
draft, stealing the active slot from the just-restored session.

Fix the race with three changes:
- Register ISessionsManagementService eagerly so the restore wiring and
  visibility model are alive before first paint.
- Guard NewChatWidget's async workspace-selection handler with
  this._store.isDisposed so a late-resolving picker cannot create a draft
  for a slot already rebound to a restored session.
- Never persist untitled drafts: drop them from the snapshot so a stale
  draft can never be restored.

Also remove the now-unneeded view-layer restore-suppression machinery
(restoring flag, begin/endSessionRestore) and update LAYOUT.md.

* fix tests
2026-06-03 18:09:21 -07:00