Commit Graph

150155 Commits

Author SHA1 Message Date
Ben Villalobos
cf22cdfc96 Allow version bump PRs with package-lock.json changes (#308100)
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 (#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>
2026-04-07 00:04:20 +00:00
Rob Lourens
2bfd243feb agentHost: Simplify SSH relay reconnect with dispose-and-recreate pattern (#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).
2026-04-06 17:03:39 -07:00
Osvaldo Ortega
66c2fef3d2 Sessions: telemetry fix (#308093) 2026-04-06 16:37:35 -07:00
Josh Spicer
dc5a5460f4 ChatSessionCustomizationProvider testing fixes (#308071)
* 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 #7377)
- Restyle back-to-installed link as a button with muted foreground
  color and rounded hover background instead of link styling
  (fixes #7384)
- Add outline-offset: -1px to button group buttons to prevent focus
  outline clipping by parent container (fixes #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
2026-04-06 16:03:04 -07:00
Ben Villalobos
d843b57fb4 Allow vs-code-engineering bot to update version field in package.json (#308090) 2026-04-06 22:57:34 +00:00
Osvaldo Ortega
d15541a5ef Sessions: center approval row (#307676)
* Sessions: center approval row

* Remove old align
2026-04-06 15:36:56 -07:00
Elijah King
27f3ec77a9 Merge pull request #307717 from microsoft/copilot/update-ghe-button-label
Change GHE enterprise sign-in button label from "GHE.com" to "GHE"
2026-04-06 15:31:33 -07:00
Megan Rogge
992a6847a2 make terminal timeout mandatory (#308081)
fixes #308037
2026-04-06 15:11:32 -07:00
Justin Chen
b15c8fd37e fix stuck/stopping thinking parts (#307929)
* fix stuck/stopping thinking parts

* address comments
2026-04-06 14:57:20 -07:00
Megan Rogge
f1c30e9dc2 Fix listener leak from multiple background OutputMonitors on same terminal (#308069) 2026-04-06 21:12:26 +00:00
Megan Rogge
6ad7758ef9 use backticks for sent terminal commands (#308075) 2026-04-06 21:11:19 +00:00
vs-code-engineering[bot]
6c8b1e5763 [cherry-pick] fix padding in solo tool calls (#308077)
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
2026-04-06 21:03:05 +00:00
Vijay Upadya
493ca793c1 Agent Debug: Use fileLogging.enabled as sole authoritative setting for agent debug logging (#308061)
* Consolidate flag for debug panel

* feedback changes
2026-04-06 13:40:38 -07:00
Courtney Webster
6db44eaf7e Merge pull request #308038 from microsoft/cli-terminal-ghosttext
Add setting to experiment with Copilot CLI nudge in terminal hint text
2026-04-06 14:52:46 -05:00
Ladislau Szomoru
2fc4c8fd37 Sessions - fix Changes view for cloud sessions (#308058) 2026-04-06 12:37:16 -07:00
Matt Bierner
4a99413ce4 Merge pull request #307758 from mjbvz/dev/mjbvz/safe-crab
Try using anchor positioning for webview
2026-04-06 12:01:21 -07:00
Rob Lourens
07f2e22302 Work around for missing stop button (#307938)
* Work around for missing stop button
For #283328

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

* Simplify to chatSessionHasActiveRequest

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-06 12:00:05 -07:00
cwebster-99
2430248598 Address code review comments 2026-04-06 12:44:51 -05:00
Megan Rogge
4e5ed5dba9 move bg button registration (#308000)
fix #304828
2026-04-06 17:21:32 +00:00
cwebster-99
c858f3527c Experiment with terminal hint for Copilot CLI 2026-04-06 12:12:39 -05:00
Robo
3609a92bb0 feat: register agents to launchservices to allow launch from vscode (#308021)
* feat: register agents to launchservices to allow launch from vscode

* chore: skip stable
2026-04-06 16:47:18 +00:00
Connor Peet
75f21d0a8d agentHost: support connections over tunnels (#307948)
* wip

* clean up unused bits and make auth work correctly

* comments and fixes
2026-04-06 16:14:01 +00:00
Rob Lourens
de4fc2b8a0 Update milestone in notebook (#308016)
Update milestone
2026-04-06 16:11:02 +00:00
Yogeshwaran C
363cc80652 Merge pull request #307996 from yogeshwaran-c/feat/testing-scrollbar-indicators-failing-tests
Add scrollbar indicators for failing tests
2026-04-06 16:08:13 +00:00
Ladislau Szomoru
cf91b8fd29 Sessions - fix sorting of the files (#307915) 2026-04-06 09:04:51 -07:00
Josh Spicer
6c8fcf1806 fix: exempt agent instructions from workspace subpath filter (#307937)
* fix: exempt agent instructions from workspace subpath filter

AGENTS.md, CLAUDE.md, and copilot-instructions.md live at the workspace
root by design. The CLI harness restricts items to workspaceSubpaths
(.github, .copilot, .agents, .claude) which filtered out these root-level
agent instruction files. Now items with groupKey 'agent-instructions' are
exempt from the subpath filter, matching the existing exemption for
instructionFileFilter patterns.

* sessions: include AGENTS.md in instructions listing

The sessions AI customization tree view and overview were only calling
listPromptFiles(PromptsType.instructions) to discover instruction files.
However, AGENTS.md (along with CLAUDE.md and copilot-instructions.md)
is classified as an agent type by getPromptFileType(), so it was never
returned by that call.

Fix by also calling listAgentInstructions() and merging the results
(deduplicating by URI), matching the pattern already used by the
workbench customization editor.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-06 02:44:23 +00:00
Josh Spicer
ec038bfa43 fix: customization provider API rendering bugs and sessions window isolation (#307745)
* fix: add sequence counter to loadItems to prevent race conditions

Multiple concurrent loadItems() calls can overlap when autoruns fire
simultaneously. Without serialization, a slow earlier call can resolve
after the correct one and overwrite allItems with stale/empty results.
The sequence counter ensures only the latest call's result is applied.

* fix: add missing onDidChangeInstructions subscription

The list widget subscribed to onDidChangeCustomAgents,
onDidChangeSlashCommands, and onDidChangeSkills but not
onDidChangeInstructions. This meant instruction file discovery
completing after the initial load never triggered a widget refresh.

* fix: re-establish provider onDidChange when harness registers

The autorun that subscribes to itemProvider.onDidChange only read
activeHarness. If the harness ID was persisted from a previous session,
activeHarness never changed when the CLI harness registered, so the
subscription was never set up. Now also reads availableHarnesses to
re-fire when harnesses are added/removed.

* fix: add instruction groups to filterItemsForProvider

filterItemsForProvider only had storage-based groups (local, user,
extension, builtin). Provider-supplied instruction items have semantic
groupKey values like 'context-instructions' and 'on-demand-instructions'
which didn't match any group, causing all instruction items to be
silently dropped (allItems: 0). Add instruction-semantic groups when
the current section is Instructions, matching filterItemsForCore.

* fix: ignore customization provider API in sessions window

The sessions window manages its own harnesses via
SessionsCustomizationHarnessService and the remoteAgentHost
contribution. Extension-contributed harnesses via the provider API
should not be registered in the sessions window.
2026-04-05 18:49:16 -07:00
Justin Chen
46f8d7e9e0 show progress in subagent when uncollapsed (#307928)
* show progress in subagent when uncollapsed

* fix hygiene
2026-04-05 17:10:31 -07:00
Ladislau Szomoru
36c2be7cac Sessions - extract more logic from the view pane (#307911) 2026-04-05 14:17:12 -07:00
Rob Lourens
21cd6ee756 agentHost: Remember and reuse CLI processes for ssh (#307770)
* agentHost: Remember and reuse CLI processes for ssh

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

* fix tests

* comments

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-05 14:16:47 -07:00
Justin Chen
3ef1267f38 make sure warnings in subagent have right padding (#307912) 2026-04-05 19:46:46 +00:00
Justin Chen
d7b1858955 batched confirmations above the input v1 (#307689)
* batched confirmations above the input v1

* fixes and comment addressing

* fix input permanence when editing and hygiene

* fix some comments
2026-04-05 19:22:31 +00:00
Justin Chen
476aed847f thinking content perf improvements (#307878)
* thinking content perf

* cleanup comments

* address comments
2026-04-05 18:56:49 +00:00
Ladislau Szomoru
b8c85f09c7 Session - more code organization (#307903)
* Sessions - extract view model and renderer

* Extract button bar

* Pull request feedback
2026-04-05 10:04:37 -07:00
Ladislau Szomoru
1da74cc029 Sessions - add a resize observer to the title to match the width of the chat part (#307877) 2026-04-05 01:14:29 -07:00
Ladislau Szomoru
8d41591236 Sessions - cleanup context keys (#307843) 2026-04-04 18:12:50 -07:00
Robo
7d74ce04e5 fix: agents launch from cli on windows (#307846) 2026-04-04 20:59:05 +00:00
Ladislau Szomoru
8d7bd011ff Sessions - changes view cleanup (#307836)
* Initial refactoring

* More cleanup

* Even more cleanup

* Pull request feedback
2026-04-04 18:59:38 +00:00
Matt Bierner
d196b51467 Add guard for anchor positioning 2026-04-04 11:40:38 -07:00
Nick Trogh
12392b3cc5 Fix: close window after generating default keybindings (#307834) 2026-04-04 20:31:24 +02:00
Robo
b77fb98c08 fix: safestorage keychain for renamed agents app (#307831) 2026-04-04 10:29:15 -07:00
dileepyavan
ddd33432b4 Clarify sandbox-first guidance for terminal tool unsandboxing (#307783)
* Clarify sandbox-first guidance for terminal tool

* Refine terminal sandbox schema wording
2026-04-04 02:45:21 -07:00
dileepyavan
b33353e5a1 Ignore file-like domain suffixes in terminal sandbox (#307780)
* Ignore file-like domain suffixes in terminal sandbox

* Handle file-like suffixes for URL and SSH domains
2026-04-04 02:45:17 -07:00
Hawk Ticehurst
a240f2ab95 sessions: use generic sign out confirmation copy (#307727)
* sessions: use generic sign out confirmation copy (#307465)

Allow the shared account sign-out action to accept dialog copy overrides so the Agents app can show a generic confirmation instead of listing extension usage.

Adds a focused test for the override path while preserving the default workbench confirmation behavior.

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

* sessions: scope sign out confirmation to Agents app (#307465)

Keep the Agents-specific sign-out confirmation flow inside the sessions account menu instead of extending the shared authentication sign-out action.

This restores the core workbench auth dialog behavior and limits the copy change to the sessions app surface.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-04 00:14:49 -04:00
dileepyavan
28880a6e48 Prefer terminal presentation overrides in chat text (#307777) 2026-04-03 20:40:45 -07:00
Rob Lourens
a24c4fad60 agentHost: Ensure all tests use an in-memory db to reduce flakiness (#307736)
Co-authored-by: Copilot <copilot@github.com>
2026-04-03 19:13:53 -07:00
Matt Bierner
63e0794312 Try using anchor positioning.
Fixes https://github.com/microsoft/vscode/issues/307489

Not supported yet in all browsers so we still need the existing code too but I think should fix this caese
2026-04-03 17:24:27 -07:00
Rob Lourens
099304243a Revert chatEditingSession change (#307740)
From #304603 since it leads to not rendering parallel edits from Copilot CLI correctly

Co-authored-by: Copilot <copilot@github.com>
2026-04-03 22:59:55 +00:00
Rob Lourens
9cf142023a agentHost: Enable local agent host in sessions app (#307732)
* agentHost: Enable local agent host in sessions app

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

* comments

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-03 15:42:57 -07:00
Rob Lourens
b564ded0d6 agentHost: Validate strings in bash commands (#307699)
Co-authored-by: Copilot <copilot@github.com>
2026-04-03 22:14:07 +00:00