Commit Graph

149908 Commits

Author SHA1 Message Date
Ladislau Szomoru
e97cc36916 Sessions - improve file tree rendering (#306681)
* Initial implementation

* Fix dropdown action label

* Delete old controller

* Improve root node rendering

* Set the context for the root element
2026-03-31 10:15:34 +00:00
Alex Ross
3c51a00d73 OSS tool (#306679) 2026-03-31 09:56:27 +00:00
Ladislau Szomoru
ed0f1369a8 Sessions - clean-up some of the actions rendering code (#306466)
* Sessions - clean-up some of the actions rendering code

* Pull request feedback
2026-03-31 09:34:01 +00:00
Alex Ross
8906163852 Skip flaky terminal test (#306668) 2026-03-31 20:23:15 +11:00
Lee Murray
159bc7357b Revert "theme: add notification for auto-updated default themes" (#306650)
Revert "theme: add notification for auto-updated default themes (#306341)"

This reverts commit e231798dee.
2026-03-31 11:01:52 +02:00
Benjamin Pasero
d527672704 Revert "fix: scope editor service in window title to own editor groups container" (#306634)
Revert "fix: scope editor service in window title to own editor groups contai…"

This reverts commit 4003d390fb.
2026-03-31 08:26:56 +00:00
Copilot
bb01c58f40 Mark session as read when opened in Sessions window (#306603)
* Initial plan

* fix: mark session as read when opening it in Sessions window

When a session was marked as unread via the context menu, clicking on it
again did not change it back to read. This adds setRead(session, true) in
sessionsManagementService.openSession() and openChat(), following the same
pattern used in agentSessionsOpener.ts.

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/04e61e19-5790-4bc5-8075-95457ae5adbd

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>
2026-03-31 07:08:46 +00:00
Copilot
121d7eb3cd Add chat tip to open the Sessions Window (#306611)
* Initial plan

* Add chat tip to open the Sessions Window

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/3f6cb57a-adec-4f66-81b5-8897c495f961

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>
2026-03-31 07:05:05 +00:00
Benjamin Pasero
67fdb3ee04 sessions - show changes as tree if configured as tree (#306456)
* sessions - show changes as tree if configured as tree

* skip test

* .

* .
2026-03-31 08:42:06 +02:00
Vijay Upadya
79c33d84df Add copilotTrackingId common telemetry property (#306601)
add copilotTrackingId common property
2026-03-31 08:14:34 +02:00
Rob Lourens
513b43f0b7 Renaming agent host sessions (#306204)
* Renaming agent host sessions

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

* Update

* Resolve comments

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

* Clean up

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

* Fix

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

* fix

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

* fixes

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

* Update version

* Cleanup

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-31 07:46:14 +02:00
Ladislau Szomoru
ff96816525 Sessions - fix discard changes action on a folder (#306500)
* Sessions - fix discard changes action on a folder

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

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

* Pull request feedback

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-31 05:45:21 +00:00
copilot-swe-agent[bot]
ebbc16c20b Fix null check in fixReferences to prevent crash on null property values
The fixReferences function in jsonSchema_v2.ts would crash with
"Cannot read properties of null (reading '$ref')" when a task
definition from an extension contained null property values.

typeof null === 'object' in JavaScript, so the guard on line 31
would pass for null values, causing a recursive call into null.
The array element path (line 21) already had a null check but
the object property path was missing it.

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/97290369-e210-4404-b2b7-7c8ca4a2f84b

Co-authored-by: bryanchen-d <41454397+bryanchen-d@users.noreply.github.com>
2026-03-31 04:08:54 +00:00
copilot-swe-agent[bot]
eaf6f5ee14 Initial plan 2026-03-31 04:05:41 +00:00
Don Jayamanne
b27242af3a refactor: remove progress service dependency and optimize chat session forking (#306207) 2026-03-31 03:32:10 +00:00
Rob Lourens
99a7b4b084 agentHost: Fix disappearing sessions in list (#306574) 2026-03-31 03:18:49 +00:00
Dmitriy Vasyura
3d91bf7907 Enable CLI DevTunnel sanity tests (#305807) 2026-03-31 14:13:23 +11:00
Rob Lourens
d13d7c7add Remote agent host: fix model picker on new session page (#306553)
* Revert bad merge from #306130

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

* Always resolve language models on provider registration

Previously, registerLanguageModelProvider only eagerly resolved models
when _hasStoredModelForVendor returned true. Otherwise it waited for
onDidChange. This created a hidden temporal coupling: if a provider
populated models before registration (like AgentHostLanguageModelProvider),
the onDidChange event fired with no listener attached, and the models
never appeared.

Fix: always call _resolveAllLanguageModels on registration. This is safe
(the provider guard handles unregistration races, and the per-vendor
sequencer prevents duplicate work).

Also use ActiveSessionProviderIdContext.key instead of a hardcoded string
in the remote agent host context key expression.

(Written by Copilot)

* fix

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

* fix

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

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-30 19:47:26 -07:00
Rob Lourens
9a11a08c75 Fix remote agent host session issues in Sessions app (#306560)
- Handle message events in AgentEventMapper to emit markdown response
  parts for text that arrives without preceding delta events (e.g. after
  tool calls complete)
- Fix tool call confirmation flickering by guarding PendingConfirmation
  re-entry when the invocation is already waiting for confirmation
- Fix tool call duplication in server-initiated turns and reconnection
  by not removing finalized tool calls from the tracking map
- Add isComplete guard in finish() to avoid overwriting finalized tool
  call state
- Extract processState in _trackServerTurnProgress for immediate state
  reconciliation closing gaps between turn detection and listener
  registration
- Fix session disappearing from list after first message by adding
  pending session tracking and onDidReplaceSession in the remote
  sessions provider
- Wrap all tests using timeouts with runWithFakedTimers
2026-03-30 19:47:10 -07:00
Josh Spicer
ea8cfb1015 align whitespace menu option with setting (#306483)
* align render whitespace menu option (https://github.com/microsoft/vscode/issues/305883)

* Use descriptive titles and shortTitle for render whitespace mode commands

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/d7e269a5-e4e5-4d4c-967d-2b2c9f09b835

Co-authored-by: joshspicer <23246594+joshspicer@users.noreply.github.com>

* Move submenu registration into Action2 menu property, remove duplicate MenuRegistry calls

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/68d6d9ff-b7a9-41b1-89f7-3c561b677802

Co-authored-by: joshspicer <23246594+joshspicer@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-03-30 19:25:17 -07:00
Connor Peet
de413b282f sessions: show status of remote connections, reconnect AH connects (#306538)
* sessions: show status of remote connections, reconnect AH connects

- Add automatic reconnect with exponential backoff (1s-30s) when a
  remote agent host WebSocket connection drops, preserving the session
  cache during reconnect attempts
- Add RemoteAgentHostConnectionStatus enum (Connected/Connecting/
  Disconnected) to IRemoteAgentHostConnectionInfo and expose it on
  ISessionsProvider via an observable
- Add reconnect(address) method to IRemoteAgentHostService for
  explicit reconnect with reset backoff
- Always show configured remote hosts in the workspace picker with
  connection status indicators and a gear button for management
- Gear menu offers Reconnect, Remove Remote, Copy Address, Open
  Settings, and Show Output actions via quickpick
- Remote host browse actions are grouped into the "Select..." submenu
  alongside other providers when multiple providers exist

![](https://memes.peet.io/img/26-03-a1f9e614-1775-4055-99bf-3c4b948a5903.png)

* address PR review comments

- Fix outputChannelId mutability: use getter + setOutputChannelId()
- Fix disposable leak on reconnect: dispose old entry in _connectTo()
- Remove duplicate AGENT_HOST_LABEL_FORMATTER registrations from
  contribution files; centralize in AgentHostFileSystemService
- Fix duplicate IRemoteFilesystemConnection: re-export from provider
- Localize all user-facing status/hover/quickpick strings properly
- Fix setTimeout leak: track timer in _renderDisposables
- Register authority disposal in agentHostChatContribution
- Re-setup ConnectionState when clientId changes on reconnect

* fix tests for new connection status behavior

- Update remoteAgentHostService tests: connections now include
  Connecting/Disconnected entries, use waitForConnected() helper,
  add status field to deepStrictEqual assertions
- Add IAgentHostFileSystemService stub to agentHostChatContribution
  test setup
2026-03-30 18:19:08 -07:00
Copilot
dcd017c96b Rename "Chat: New {provider}" commands to "Chat: New {provider} Session" (#305879)
* Initial plan

* fix: change 'New {0}' to 'New {0} Session' for consistent chat session naming

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/3df13daa-a46e-48b8-b5cf-b00df55a61ab

Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: TylerLeonhardt <2644648+TylerLeonhardt@users.noreply.github.com>
2026-03-31 00:13:39 +00:00
Osvaldo Ortega
7e30c34c69 Merge pull request #305877 from microsoft/copilot/secure-lobster
chat: disable cloud handoff for sessions without git repos
2026-03-30 17:11:42 -07:00
Osvaldo Ortega
8f76ebcb6b Add mock implementation for ISCMService in chat input fixture 2026-03-30 16:52:38 -07:00
Connor Peet
12f2ac1e27 agentHost: use memory db for sqlite tests to avoid locking weirdness (#306524) 2026-03-30 16:38:42 -07:00
Raymond Zhao
c1f3775929 chore: run npm audit fix (#306509) 2026-03-30 16:32:21 -07:00
Justin Chen
07407b39e5 fix markdown not getting escaped properly (#306527) 2026-03-30 23:31:59 +00:00
dependabot[bot]
33250873ec build(deps): bump picomatch from 2.3.1 to 2.3.2 in /build (#306399)
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [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/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  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-30 23:25:51 +00:00
Hawk Ticehurst
2beac02f6c sessions: polish run task quick input modal (#304652)
* Enhance quick input modal styling and functionality; add close button and improve padding

* Refactor quick input and run script action styles; adjust padding, height, and add new button styles

* Update quick input and run script action styles; adjust border radius, padding, and gap for improved UI consistency

* Refactor task action labels; remove ellipses for improved clarity

* Refactor quick input and run script action styles; adjust padding and add new titlebar styles for improved UI consistency

* Remove background color styles for quick input widget in run script action for improved UI consistency

* Refactor quick input header and run script action padding for improved layout consistency

* Add background color to quick input header and run script action widget for improved UI consistency

* Refactor run script action styles; adjust padding, gap, and background colors for improved UI consistency

* Update background color for quick input header and run script action widget; refine localization strings for clarity

* Update background color for quick input header and run script action widget for improved visual consistency

* Refactor padding in quick input titlebar for improved layout consistency

* Update background color for quick input header and run script action widget for improved visual consistency

* style: update task labels to include ellipsis for consistency

* style: remove unused styles for quick-input-html-widget

* style: add overflow hidden to quick-input-html-widget for better layout

* style: add disabled state styles for run-script-action radio buttons

* style: update disabled state styles for run-script-action radio buttons and improve hint display

* style: add cursor default and focus outline removal for disabled radio buttons

* style: adjust margins for action bars in quick input widget and enhance custom command input functionality

* style: remove left margin for quick input left action bar in run-script-action widget

* style: adjust padding and margins for quick input titlebar and action items in run-script-action widget

* style: adjust padding for quick input titlebar and remove unnecessary margin styles in run-script-action widget

* sessions: remove ellipsis from Configure Task modal title

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

* sessions: keep run-task menu open for item actions

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

* feat: add refresh functionality for dropdown menu in RunScriptActionViewItem

* Revert "feat: add refresh functionality for dropdown menu in RunScriptActionViewItem"

This reverts commit a7b7a0d935.

* Revert "sessions: keep run-task menu open for item actions"

This reverts commit 0b2e44b745.

* quickinput: revert no-op header padding shorthand

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

* feat: add backdrop for run script action modal

* feat: streamline backdrop creation for run script action modal

* fix: increase padding in run script action widget for better spacing

* style: update run script action styles and class names for consistency

* fix: update tabIndex handling for storage options in RunScriptCustomTaskWidget

* fix: simplify storage options handling by enabling/disabling based on target lock state

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 18:40:43 -04:00
Connor Peet
eca37987be agentHost: propagate steering for cli sessions (#306488)
* agentHost: propagate steering for cli sessions

Closes #305323

* comments
2026-03-30 22:38:09 +00:00
Logan Ramos
7836a50b57 Fix over requesting of MCP registry (#306467)
undefined !== '0' is true
2026-03-30 22:31:18 +00:00
Megan Rogge
61e3ba6f04 skip flakey sandbox test for now (#306417)
part of #305722
2026-03-30 21:57:09 +00:00
Rob Lourens
8880ef4f9f chat: clean up per-response maps in disposeElement to reduce memory (#306482)
Clear codeBlocksByResponseId, codeBlocksByEditorUri, fileTreesByResponseId,
and focusedFileTreesByResponseId when elements leave the viewport. These
maps are only read for the focused response which is always visible, so
retaining entries for off-screen elements is unnecessary memory usage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 21:47:09 +00:00
Rob Lourens
cc967ecb55 Optimize CodeBlockPart pool (#306130)
* Simplify codeblock rendering in chat markdown

* Simplify URIs more

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

* Simplify

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

* Fix error

* Also hold a model reference

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

* Optimize CodeBlockPart pool

* Helper

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

* Cleanup

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

* Fix

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-30 14:44:04 -07:00
Osvaldo Ortega
4e9e3ab64b Merge pull request #306476 from microsoft/copilot/hurt-peacock
sessions: do not steal focus from quick picks during welcome overlay startup
2026-03-30 14:36:18 -07:00
Megan Rogge
f61619a1b1 Detach background terminal processes so they survive VS Code shutdown (#306406) 2026-03-30 21:29:14 +00:00
Peng Lyu
a4855ab045 agentHost: support --host and print resolved server urls (#306219) 2026-03-30 14:23:52 -07:00
Sandeep Somavarapu
0930f054ee sessions: change session description to IMarkdownString and render markdown (#306468)
* sessions: change description type to IMarkdownString and render it

- Change ISessionData, IChat, and ISession description field types from
  string | undefined to IMarkdownString | undefined
- Update all provider implementations (CopilotCLISession, RemoteNewSession,
  AgentSessionAdapter, RemoteSessionAdapter) to use IMarkdownString
- In AgentSessionAdapter._extractDescription, wrap plain strings in
  MarkdownString; IMarkdownString values are passed through as-is
- In sessionsList.ts, render markdown descriptions using markdownRendererService
  with sanitizerConfig: { replaceWithPlaintext: true } — matching the existing
  agentSessionsViewer.ts pattern; fallback status labels use plain textContent
- Add MutableDisposable to track the markdown render lifecycle so it is
  properly cleared when status changes
- Update CSS to handle paragraph elements inside rendered markdown
- Update SESSIONS_PROVIDER.md documentation

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

* Update src/vs/sessions/contrib/remoteAgentHost/browser/remoteAgentHostSessionsProvider.ts

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

* sessions: clear descriptionDisposable on plain-text fallback to avoid leaks

When the status is active (InProgress/NeedsInput/Error) but description
becomes undefined, the previous markdown renderer was left alive even though
its container element had been removed from the DOM by the autorun rebuild.

Fix: call descriptionDisposable.clear() in every else-branch (plain-text
fallback) so any prior IMarkdownRendererService render is disposed before
the new plain-text content is set.

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

* sessions: fix import of IsNewChatSessionContext after move to common/contextkeys.ts

Upstream commit moved IsNewChatSessionContext from sessionsManagementService.ts
to the centralised common/contextkeys.ts. Update the import in
sessionsTitleBarWidget.ts accordingly.

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>
2026-03-30 21:16:28 +00:00
Osvaldo Ortega
9b5db8746b Do not steal focus from quick picks during startup
Guard focus calls in NewChatViewPane and SessionsWelcomeOverlay
by checking IQuickInputService.currentQuickInput before focusing.
This prevents the sessions welcome page from closing an already
open quick pick (e.g. Open Recent) and stealing focus to the
chat input box.

Fixes microsoft/vscode#294505

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 14:15:30 -07:00
Osvaldo Ortega
4ebc211cda Merge pull request #306454 from microsoft/copilot/marvellous-marmot
sessions: fix welcome page chat input collapsing on first keystroke
2026-03-30 14:04:59 -07:00
Rob Lourens
abea71e2b7 sessions: centralize context key definitions into common/contextkeys.ts (#306439)
Move RawContextKey definitions for active session state (provider ID, type,
background provider, git repository, chat session provider ID) from
sessionsManagementService.ts and copilotChatSessionsActions.ts into the
shared sessions/common/contextkeys.ts module. Replace hardcoded context
key strings with .key property access in all consumers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 22:47:10 +02:00
Osvaldo Ortega
77822e7b70 sessions: clarify welcome chat height override math
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 13:45:12 -07:00
Lee Murray
dfd3b4dcb3 Merge pull request #306381 from microsoft/mrleemurray/agent-feedback-polish
Enhance agent feedback widget styles and animations
2026-03-30 21:37:59 +01:00
Connor Peet
1dadacc629 Merge remote-tracking branch 'origin/main' into connor4312/customizations 2026-03-30 13:33:59 -07:00
Sandeep Somavarapu
39a50d8d3f sessions: fix Show All Sessions filter out of sync with view on reload (#306435)
* sessions: fix Show All Sessions filter out of sync with view on reload

The IsWorkspaceGroupCappedContext context key was never initialized from
persisted storage on reload, causing the menu checkmark to always show
as checked (default true) regardless of the stored value.

Fix by binding the context key in the constructor and syncing it with
the persisted SessionsList state in renderBody. Also fix the Reset
action which was resetting the internal state but not the context key.

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

* use sessionsControl as source of truth for reset context key

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 20:30:46 +00:00
Hawk Ticehurst
2924b6cf31 sessions: adjust titlebar container padding based on sidebar visibility (#306444) 2026-03-30 16:27:02 -04:00
Connor Peet
300ad62e2c incremental 2026-03-30 13:23:08 -07:00
Osvaldo Ortega
af3718b721 sessions: fix welcome page chat input collapsing on first keystroke
The chat input on the Agent Sessions welcome page would collapse from
~44px to ~22px after the first character typed, hiding the text.

Root cause: ChatWidget.layout() reserves MIN_LIST_HEIGHT (50px) for the
chat list even when the welcome page hides it via CSS. With a layout
height of 150px, the remaining budget for the input part was only 100px.
Once the input part's non-editor chrome (~128px for toolbars, padding,
attachments) was subtracted, _effectiveInputEditorMaxHeight dropped to 0,
collapsing the editor.

Fix: call setInputPartMaxHeightOverride(272) before layout so the input
part has enough budget independent of the artificially small layout
height. This mirrors what other compact chat surfaces (e.g. stacked chat
view) already do.

Fixes #304544

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-30 12:51:06 -07:00
Ladislau Szomoru
f8c32042ed Sessions - more actions polish in the Changes view (#306442) 2026-03-30 19:32:10 +00:00
Benjamin Pasero
b15c078a6d sessions - changes view CSS selector scoping (#306436) 2026-03-30 12:21:40 -07:00