Skip to content

[mirror] microsoft/vscode#308794 Add "vp" (Vite+) to npm.scriptRunner enum#1415

Open
austindyoung wants to merge 7427 commits intomainfrom
driftfence/mirror/pr-308794/latest
Open

[mirror] microsoft/vscode#308794 Add "vp" (Vite+) to npm.scriptRunner enum#1415
austindyoung wants to merge 7427 commits intomainfrom
driftfence/mirror/pr-308794/latest

Conversation

@austindyoung
Copy link
Copy Markdown
Owner

Automated mirror PR for DriftFence counterfactual telemetry.

Source PR: microsoft#308794
Source URL: microsoft#308794
Mirror branch: driftfence/mirror/pr-308794/latest

This PR is maintained by automation for telemetry and review links.

benvillalobos and others added 30 commits April 6, 2026 22:57
* Delete individual hooks instead of entire hooks file

When deleting a hook from the Chat Customizations UI, parse the hook
item ID to identify the specific entry within the JSON file. Remove
only that entry and write the file back, instead of deleting the
entire hooks file. If no hooks remain after removal, the file is
deleted.

Also passes the item ID through the action context so the delete
handler can distinguish individual hook entries from whole files.

Fixes microsoft/vscode-internalbacklog#7381

* Throw CancellationError when plugin trust dialog is declined

When the user cancels the trust dialog during plugin installation,
throw a CancellationError instead of silently returning. This allows
the install button's catch handler to properly reset to 'Install'
state instead of incorrectly showing 'Installed'.

Fixes microsoft/vscode-internalbacklog#7378

* Check installed state when rendering marketplace plugin items

When rendering marketplace plugin items in the plugin list, check
whether the plugin is already installed by comparing install URIs
with the agent plugin service's plugin list. Show 'Installed' with
the button disabled instead of offering a redundant install option.

Fixes microsoft/vscode-internalbacklog#7379

* Replace floppy disk icon with newFile icon for create plugin button

The save/floppy disk icon is misleading for a create action. Use the
newFile codicon instead, which better communicates the intent and is
consistent with other create actions in the UI.

Fixes microsoft/vscode-internalbacklog#7373

* Fix plugin page CSS: padding, back button, and focus outlines

- Add padding-bottom to marketplace plugin footer for proper Install
  button alignment (fixes microsoft#7377)
- Restyle back-to-installed link as a button with muted foreground
  color and rounded hover background instead of link styling
  (fixes microsoft#7384)
- Add outline-offset: -1px to button group buttons to prevent focus
  outline clipping by parent container (fixes microsoft#7385)

Fixes microsoft/vscode-internalbacklog#7377
Fixes microsoft/vscode-internalbacklog#7384
Fixes microsoft/vscode-internalbacklog#7385

* Show workspace folder name in provider path for multi-root workspaces

When rendering items from external customization providers (e.g.
Copilot CLI), use the label service to produce workspace-relative
paths for file: URIs instead of bare filenames. This shows the
folder name (e.g. 'tankgame • AGENTS.md') in multi-root workspaces,
matching the core (Local) path behavior.

Fixes microsoft/vscode-internalbacklog#7330
* Filter legacy .chatmode.md files from CopilotCLI agents

Skip .chatmode.md files in getAgentsImpl() since they are a deprecated
format and should not appear in the Copilot CLI agent list. Also handle
.chatmode.md extension stripping in getAgentFileNameFromFilePath() for
defense-in-depth.

Fixes microsoft/vscode-internalbacklog#7376

* Use Copilot logo for CopilotCLI customization provider

Change the icon from 'worktree' to 'copilot' for the Copilot CLI
customization provider to align with the Agents app branding.

Fixes microsoft/vscode-internalbacklog#7372
* Update a few more codebase/workspace strings

We should always mention that these are semantic indexes

* Fix merge

* Fix merge again :(

* fix string

* Reverse words
…tern (microsoft#308106)

Refactor SSHConnection to use the same dispose-and-recreate pattern as
TunnelConnection instead of the more complex isActiveRelay/replaceRelay
approach.

Key changes:
- Remove isActiveRelay() and replaceRelay() from SSHConnection
- Make _relay readonly (immutable connection objects)
- Add detachSshClient() for ownership transfer during reconnect
- Add removeListener to SSHClient interface for proper cleanup
- Simplify relay close handlers to just call conn.dispose()
- Add try/catch in reconnect to clean up SSH client on failure

Add 18 new unit tests covering relay message routing, multi-host
isolation, SSH close lifecycle, CLI install flow, reconnect failure
cleanup, and listener cleanup across reconnects (33 total, up from 15).
Extends the bot exception in no-engineering-system-changes to handle
version bump PRs that include package-lock.json alongside package.json.

The previous change (microsoft#308090) only allowed single-file package.json
changes. Version bumps also run npm install which updates the lock file.

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

* Sessions: Add #file context completions to new-chat input

Adds # completions to the sessions NewChatViewPane input editor,
scoped to the workspace selected in the dropdown picker.

- New VariableCompletionHandler registers a completion provider on the
  sessions-chat URI scheme (same pattern as SlashCommandHandler)
- Typing # shows files from the selected workspace via ISearchService
  (local/remote) or IFileService tree walk (virtual filesystems)
- Recent workspace-scoped files from editor history are always shown
- Accepted completions insert #file:<name> text with slash-command-style
  decorations (colored background/foreground, rounded corners)
- Files are also added as attachment pills via NewChatContextAttachments
- Added public addAttachments() method to NewChatContextAttachments

* Review comment

* Address review: fix JSDoc to say #file: for files and folders

* Support folder
…tion visibility, and dropdown UX (microsoft#308096)

* Show provider items with custom groupKey in Chat Customizations

Items from external customization providers that use a custom
groupKey (not matching predefined groups like Workspace, User, etc.)
were silently dropped. Dynamically create a group for unknown
groupKeys so the items appear under a collapsible header using
the groupKey as the label.

Fixes microsoft/vscode-internalbacklog#7402

* Refresh list after deleting a customization item

After deleting a file through the Chat Customizations UI, explicitly
refresh the list widget. This ensures the deleted item is removed
immediately even if the provider's onDidChange doesn't fire (e.g.
when the provider doesn't watch the filesystem for changes).

Fixes microsoft/vscode-internalbacklog#7401

* Reset section counts on harness switch to prevent stale flash

When switching between customization harnesses (e.g. Local → Copilot
CLI), reset all section counts to zero immediately before starting
the async count refresh. This prevents stale counts from the
previous harness briefly appearing in the sidebar.

Fixes microsoft/vscode-internalbacklog#7400

* Add tooltip to harness dropdown button in Chat Customizations

Show the active provider's label as a managed hover tooltip on
the harness dropdown button, so long provider names that are
truncated by CSS ellipsis can still be read.

Fixes microsoft/vscode-internalbacklog#7396

* Prevent harness dropdown from jumping when providers register late

Keep the dropdown container in the DOM when the harness selector
setting is enabled, even if only one harness is available. The
visibility is controlled by CSS display:none in updateHarnessDropdown
based on harness count. This prevents the dropdown from being
destroyed and recreated at the wrong position when a provider
registers asynchronously after the editor has already laid out.

Fixes microsoft/vscode-internalbacklog#7398

* Fix focus outline clipping on plugin page buttons

Add margin to focused buttons in the button group to prevent the
focus outline from being clipped by the parent widget's
overflow:hidden. The outline-offset: -1px alone was not sufficient
because the outline still extended to the container edge.

Fixes microsoft/vscode-internalbacklog#7385

* Classify plugin-sourced items correctly in provider path

Items from installed plugins (under agent-plugins directory) were
classified as 'user' storage because _inferStorageAndGroup only
checked workspace folders and file: scheme. Now checks against
IAgentPluginService.plugins URIs to detect plugin-sourced items
and classify them as PromptsStorage.plugin. Also adds Plugin
group to the provider grouping layout so these items appear
under a proper 'Plugins' header instead of 'User'.

Fixes microsoft/vscode-internalbacklog#7330

* Add horizontal padding to search-and-button container for outline room

Restore 2px horizontal padding on .list-search-and-button-container
so the focus outline on the rightmost button has room to render
without being clipped by the parent widget's overflow:hidden.

Fixes microsoft/vscode-internalbacklog#7385
* agentHost: Hook up isRead/isDone

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

* comments

* Fix build

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

* Fix test

---------

Co-authored-by: Copilot <copilot@github.com>
…osoft#308113)

Remove startup revive of chat sessions with pending edits

Remove reviveSessionsWithEdits() and the whenSessionsRevived property from
IChatService. This code eagerly loaded sessions at startup if they had
pending edits, which is no longer needed.

Also removes the modelsKeptAliveOnlyForEdits telemetry metric that was
specific to this revive path. The hasPendingEdits field is kept on the
serialized data and storage index for potential future use.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t#308116)

Enable chat.customizations.providerApi.enabled by default

Set the default value of 'chat.customizations.providerApi.enabled' to
true and remove the experimental tag, graduating this setting to stable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…icrosoft#308115)

* Detect extension-sourced items in provider path for correct grouping

Items from VS Code extensions (under extensions/ directory) were
classified as 'user' storage because _inferStorageAndGroup only
checked workspace folders, plugins, and file: scheme. Now detects
extension install directories by finding 'extensions' in the path
segments and extracting the extension ID from the folder name.
Items from the default chat extension are classified as Built-in;
items from other extensions as Extensions.

This aligns the provider path grouping with how the core (Local)
path handles extension-contributed skills, agents, and other items.

Fixes microsoft/vscode-internalbacklog#7330

* Make built-in and extension items read-only in provider path

Set storage alongside groupKey in _inferStorageAndGroup so that
built-in items (non-file schemes, chat extension) always have
PromptsStorage.extension as their storage. This ensures the
delete action's when-clause correctly hides the trash icon for
read-only items without needing a groupKey fallback hack.

Fixes microsoft/vscode-internalbacklog#7330
* initial commit fix request id for subagent and add parentToolCallId

* change logging to info

* fix headerRequestId missing

* fix

* fix...

* remove debug logging

* change back runSubagent changes

---------

Co-authored-by: Yevhen Mohylevskyy <yevhenmohylevskyy@Yevhens-MacBook-Pro-2.local>
* chat: add policy for chat.plugins.enabled

Add a managed policy 'ChatPluginsEnabled' to the chat.plugins.enabled
setting so that organizations can control whether agent plugin
integration is enabled.

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

* Update src/vs/workbench/contrib/chat/browser/chat.contribution.ts

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

* Update build/lib/policies/policyData.jsonc

Co-authored-by: Copilot <175728472+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>
…ementation-copilot-cli-tip

Add Copilot CLI chat tip
* Fix ctrl+v img file path paste in windows powershell

* better

* comment
less thikning layout thrashing - cache thinking heights
…microsoft#308010)

* fix: reset chat mode when switching to session with customAgentTarget

Fixes microsoft#307118

When switching from Local to CLI, Ask/Plan modes persisted because:
1. ModePickerActionItem captured customAgentTarget once at construction,
   so the dropdown kept showing Local's modes even after switching to CLI.
2. chatInputPart validated the model on session switch but not the mode.

Now the mode picker dynamically evaluates the target on each dropdown
open, and a new checkModeInSessionPool() resets invalid modes to Agent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use explicit session type in checkModeInSessionPool

Pass newSessionType directly from the onDidChangeActiveSessionProvider
handler instead of deriving it from the session resource, which may
not yet reflect the newly selected provider.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: dynamically evaluate customAgentTarget in mode picker dropdown

Make the mode picker evaluate the custom agent target each time the
dropdown is opened instead of capturing it once at construction time.
This ensures the correct modes are shown after switching session types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…crosoft#308126)

* Fix Agent Debug Panel flow chart for new JSONL-based debug events

* feedback updates
…crosoft#307978)

fix: preserve code block toolbar visibility during chat streaming (microsoft#255290)

Add JavaScript-based hover tracking to CodeBlockPart so the toolbar
remains clickable through DOM detach/reattach cycles during streaming.
…nstall script" (microsoft#308160)

Revert "fix build by removing non-current-platform prebuilds in postinstall s…"

This reverts commit e433503.
* Revert "agentHost: Hook up isRead/isDone (microsoft#308107)"

This reverts commit a3d69b7.

* Revert "agentHost: support connections over tunnels (microsoft#307948)"

This reverts commit 75f21d0.
roblourens and others added 30 commits April 8, 2026 14:26
* Chat memory leak fixes

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

* Comments

* Dispose allRefs on chat markdown part

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

---------

Co-authored-by: Copilot <copilot@github.com>
* Simplify model handling in Claude

It's gotten so complicated and now that we use the built-in model picker, we can simplify this code a lot.

* refactor(claude): remove unused mock class and simplify model retrieval

* Move selecting the endpoint into the IClaudeCodeModels
Refactors repeated session-data and diff-compute test doubles into a shared
agentHost test helper module.

- Adds reusable TestSessionDatabase and TestDiffComputeService helpers for
  tests that need in-memory file-edit metadata or deterministic diff counts.
- Adds session-data-service factories for tests that need either an injected
  database reference or an intentionally unopened/null session database.
- Updates agentHost node tests to use the common helpers instead of local
  mock database, data-service, encoder, and zero-diff implementations.

(Commit message generated by Copilot)
* Use official APIs for listing subagent messages

* feedback
* Better UI syncing during browser open

* feedback
…icrosoft#308625)

* sessions: swap order of checkmark and plus buttons in section toolbar

Move the 'Mark All as Done' checkmark button to the left (order: 0)
and the 'New Session' plus button to the right (order: 1) in the
session section toolbar.

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

* sessions: swap order of pin and mark-as-done on session card hover

Move pin/unpin to the left (order: 1) and mark-as-done/restore to
the right (order: 2) in the per-session-item hover toolbar.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…Search/externalIngestIndex.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
`ChatSessionChangedFile2` can become `ChatSessionChangedFile`
* Add context key got GitHub remote

* Sdopt the new context key

* Fix issue with detecting the repository path
microsoft#308621)

Adds worktree deletion on archive and recreation on unarchive for both
the legacy provider API and the new controller API.

- Expose onDidChangeChatSessionItemState on the return value of
  registerChatSessionItemProvider via Object.assign
- Wire up archive/unarchive handling at the V1 registration site in
  chatSessions.ts using the exposed event
- Refresh session items after worktree recreation so changes and stats
  are recomputed in the UI

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

Fire chat input state commands with correct arguments
Fix `.selected` not being updated when changing options
…nacle

Add telemetry event for search timeouts
…aver

Remove now unused `ChatSessionChangedFile` interface
…ft#308629)

* sessions: fix archive and retention of stopped temp sessions

When a copilot-cli session is stopped before the first turn commits, the
session remained in a temp/untitled state. Archiving such a session
previously fell through to cleanup logic that deleted and disposed it
instead of archiving in-place.

- Add setArchived() to CopilotCLISession and RemoteNewSession so temp
  sessions can be archived/unarchived without deletion
- Handle CancellationError in _sendFirstChat by marking the session as
  Completed so it stays visible in the session list
- Add tests for deleting and archiving uncommitted temp sessions

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

* test: assert doesNotReject instead of swallowing sendPromise errors

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Update hidden Model B agent prompt for evals

* Refine hidden Model B prompt tag structure
* feat(copilot): update session option group handling

* Fix tests

* Fixes
…rosoft#308648)

* Add `oauth` section to mcp.json to allow overriding of client id

More properties (like client secret) can come later... but this is the foundation, which is a lot of plumbing...

ref microsoft#257415

* feedback
…crosoft#308657)

* Use the modelProvider instead looking for claude for Claude agent

A little cleaner.

* feedback
…ata storage and deprecate old forkSession method (microsoft#308652)

feat: implement session forking using Copilot API with metadata storage and deprecate old forkSession method
…ries (microsoft#308649)

* chatSessions: optimize workspace changes handling for shared repositories

* Updates

* updates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.