Skip to content

sessions - when applying changes, offer action to open#298718

Merged
bpasero merged 2 commits intomainfrom
ben/copilot-worktree-2026-03-02T10-54-44
Mar 2, 2026
Merged

sessions - when applying changes, offer action to open#298718
bpasero merged 2 commits intomainfrom
ben/copilot-worktree-2026-03-02T10-54-44

Conversation

@bpasero
Copy link
Copy Markdown
Member

@bpasero bpasero commented Mar 2, 2026

No description provided.

@bpasero bpasero added this to the March 2026 milestone Mar 2, 2026
@bpasero bpasero self-assigned this Mar 2, 2026
Copilot AI review requested due to automatic review settings March 2, 2026 14:24
@bpasero bpasero enabled auto-merge (squash) March 2, 2026 14:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an “Open in VS Code” follow-up action after applying session changes to the parent repository in the Sessions window, improving the workflow from “apply” to “continue working in desktop VS Code”.

Changes:

  • Adds an “Open in VS Code” notification action after successful/partial apply-to-parent-repo operations.
  • Switches apply result notifications to notificationService.notify(...) to support actions.
  • Introduces opener/product service usage to build and open a vscode://file/... URL.

Comment on lines +151 to +168
run: () => {
const scheme = productService.quality === 'stable'
? 'vscode'
: productService.quality === 'exploration'
? 'vscode-exploration'
: 'vscode-insiders';

const params = new URLSearchParams();
params.set('windowId', '_blank');
params.set('session', activeSession.resource.toString());

openerService.open(URI.from({
scheme,
authority: Schemas.file,
path: repoRoot.path,
query: params.toString(),
}), { openExternal: true });
}
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

openFolderAction.run calls openerService.open(...) but doesn't await or return the promise. If the open fails (e.g. protocol handler missing), the rejection can go unobserved and the notification action may appear to succeed. Make run async (or return the promise) and await openerService.open(...).

Copilot uses AI. Check for mistakes.
Comment on lines +152 to +156
const scheme = productService.quality === 'stable'
? 'vscode'
: productService.quality === 'exploration'
? 'vscode-exploration'
: 'vscode-insiders';
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The protocol scheme is derived from productService.quality and defaults to 'vscode-insiders' for any other value. This can produce an incorrect protocol in non-standard builds (e.g. code-oss) and duplicates logic that IProductService.urlProtocol already provides. Prefer using productService.urlProtocol for the scheme here.

Suggested change
const scheme = productService.quality === 'stable'
? 'vscode'
: productService.quality === 'exploration'
? 'vscode-exploration'
: 'vscode-insiders';
const scheme = productService.urlProtocol;

Copilot uses AI. Check for mistakes.
@bpasero bpasero merged commit 610ebdc into main Mar 2, 2026
24 checks passed
@bpasero bpasero deleted the ben/copilot-worktree-2026-03-02T10-54-44 branch March 2, 2026 14:37
DonJayamanne pushed a commit that referenced this pull request Mar 2, 2026
* feat - add open folder action to applyToParentRepo

* feat - add query parameters to `open` action
OS-ruineves added a commit to OutSystems/vscode that referenced this pull request Apr 13, 2026
* Fix Guardian errors in sanity tests stage (microsoft#298662)

* fix(json.schemaDownload.trustedDomains): avoid always update json.sch… (microsoft#298423)

fix(json.schemaDownload.trustedDomains): avoid always update json.schemaDownload.trustedDomains

Signed-off-by: loongtao.zhang <loongtao.zhang@outlook.com>

* style(quick-input): replace fixed border-radius with variable for consistency

* style(suggest-widget): replace fixed border-radius with variable for consistency

* style(quick-input): replace fixed border-radius with variable for consistency

* feat: add support for Copilot user agents and related functionality (microsoft#298610)

* feat: add support for Copilot user agents and related functionality

* Update comments

* Updates

* Sessions - fix tree rendering in the changes view (microsoft#298663)

* style(chat-input): replace fixed border-radius with variable for consistency

* style(notifications): update border and border-radius for consistency across notification elements

* style(menu): replace fixed border-radius with CSS variable for consistency
style(find-widget): unify border-radius with CSS variable for consistency
style(inline-chat-gutter-menu): update border-radius to use CSS variable for consistency

* style(dialog): replace fixed border-radius with CSS variable for consistency

* style(dialog): remove fixed border-radius for consistency with theme variables

* style(hover): update border-radius to use theme variable for consistency

* style(keybindings): restore border-radius for defineKeybindingWidget consistency

* style(dropdown, debug-toolbar): update border-radius to use theme variable for consistency

* style(action-widget): remove border-radius for consistency with theme variables

* style(parameter-hints): update border-radius to use theme variable for consistency

* style(notebook): update border-radius to use theme variable for consistency

* style(notebook): update action-item border-radius for consistency with theme variable

* style(notebook): add border-radius to cell title toolbar for consistency with theme variable

* style(inline-chat): update border-radius to use theme variable for consistency

* style(titlebar): update border-radius to use theme variable for consistency

* style(dialog): update border-radius for modal block shadow to use theme variable

* style(debug-hover): add border-radius to debug hover widget for consistency with theme variable

* Fix macOS sidebar traffic light spacer rendering with custom titlebar (microsoft#298669)

* Add more logging to sanity test runner (microsoft#298664)

* style(chat): remove unnecessary border-radius from chat editor and notifications for consistency

* style(dropdown): remove unnecessary whitespace for cleaner code

* style(defineKeybindingWidget): remove border-radius for consistency with theme styles

* style(notifications): update border-radius for last notification item to use theme variable

* style(notifications): update box-shadow to use theme variable for consistency

* fix(terminal): update background color handling in terminal editor

* make sure action are disabled when cloud is picked

* sessions - allow to run sub-app when using cli (microsoft#298685)

* sessions - allow to run sub-app when using cli

* ccr

* sessions - resolve items again when trust changes (microsoft#298687)

* fix continuous auth dialogs in cloud session (microsoft#298689)

* make it more stable (microsoft#298691)

* Fix typos in user-facing localized strings (microsoft#297892)

- Fix "Overriden" -> "Overridden" in terminal cwd picker description
- Fix "requried" -> "required" in notebook renderer messaging description

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Sessions - resize body when collapse/expand the tree (microsoft#298698)

* update hover and background colors in quick input for dark and light themes

* update breadcrumbPicker and notificationCenterHeader background colors for improved theme consistency

* update quick input title background color for improved theme aesthetics

* remove background color mixing for suggest widget and title bar hover effect

* 💄

* chat - confirm from toast should not force reveal session (microsoft#298693)

* chat - confirm from toast should not force reveal session

* ccr

* sessions - when applying changes, offer action to open (microsoft#298718)

* feat - add open folder action to applyToParentRepo

* feat - add query parameters to `open` action

* remove test

* Enhance sync functionality with loading state and improved UI feedback (microsoft#298699)

* include debug extension host env in shell env (microsoft#241078) (microsoft#298276)

* include debug extension host env in shell env (microsoft#241078)

* Use terminalEnvironment.mergeEnvironments for platform-specific considerations

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

* Clone the shell env to avoid mutation of a shared object

---------

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

* Add chat tip for /fork conversation feature (microsoft#298084)

* Align `js/ts.suggest.completeJSDocs` with other names

Fixes microsoft#298734

Aligning this to use the id `js/ts.suggest.jsdoc.enabled` because we have another setting in the `#js/ts.suggest.jsdoc.*` scope

* fix setting repo uri for new session (microsoft#298735)

* Simplify chat input toolbar responsive behavior (microsoft#298467)

* Reduce chat input label hide threshold from 650 to 400

* Collapse chat input picker buttons to 22x22 icons at narrow widths

When the chat input is narrow (<250px), hide chevrons on mode, session
target, model, and workspace pickers. Mode and session target pickers
collapse to centered 22x22 icon-only buttons matching the add-context
button size. Update actionMinWidth to 22 and toolbar gap to 4px.

* Simplify chat input toolbar responsive behavior

* Apply initial hideChevrons state in render()

* fix setting active session for new session (microsoft#298742)

* Bump minor version to 1.111 (microsoft#298150)

* weight and maintain specific order for foundational tips (microsoft#298745)

* when in question carousel, do not allow delete to undo requests (microsoft#298752)

fixes microsoft#294109

* Fix chat terminal flicker during streaming (microsoft#298598)

* chat: add plugin details editor with reactive action updates (microsoft#298370)

* chat: add plugin details editor with reactive action updates

- Implements a new AgentPluginEditor details pane that displays plugin information, readme, and action buttons for both installed plugins and marketplace items
- Adds reactive action button updates: when a plugin is enabled/disabled, installed/uninstalled, buttons update in real-time without re-rendering the entire editor
- Makes the marketplace name a clickable link to the GitHub repository (when githubRepo is available)
- Adds proper CSS classes to action buttons (install, enable, disable, uninstall) so they render correctly in the header
- Handles state transitions: marketplace items automatically become installed items when installed, and vice versa
- Supports readme rendering from local files, remote repositories, and GitHub blob URLs (converting to raw.githubusercontent.com for proper fetching)

Fixes microsoft#297246

(Commit message generated by Copilot)

* pr comments

* test

* merge

* fix circular dep

* chore: bump distro (microsoft#298761)

lm: fix mcpServerDefinitions proposal validation for packed extensions

Updates distro hash to include a fix for mcpServerDefinitions API proposal
validation when extensions are installed as VSIX. Extensions can now
properly declare and use vscode.lm.startMcpGateway without validation errors.

- Fixes validation logic for packed extension API proposal declarations
- Enables mcpServerDefinitions to be properly recognized in extension
  package.json enabledApiProposals
- Resolves failure when calling vscode.lm.startMcpGateway on installed VSIX
  extensions

Fixes microsoft#298643

(Commit message generated by Copilot)

* Dialog Notification when MCP server start fails in sandbox mode. (microsoft#297797)

* changes for showing start up errors in a dialog

* changes for showing start up errors in a dialog

* changes for showing start up errors in a dialog

* changes for showing start up errors in a dialog

* changes

* changes

* changes

* migrating to event from taillog

* changes for runtime errors

* refactoring changes

* refactoring changes

* refactoring changes

* changes

* replace `/create-instructions` tip with `/init` one (microsoft#298764)

fix microsoft#298759

* Port github extension to use esbuild

Had to make same fixes as with microsoft#296355. We can't pull in const enums from a d.ts file like this

* hide tip widget for session if a tip is dismissed or actioned  (microsoft#298766)

fixes microsoft#297682

* chat: make sendChatRequest extensionIdentifier parameter optional (microsoft#298767)

* chat: make sendChatRequest extensionIdentifier parameter optional

Makes the 'from' parameter optional (ExtensionIdentifier | undefined) in the
sendChatRequest method chain across ILanguageModelsService, RPC protocol, and
implementations. This allows internal VS Code calls to pass undefined instead
of instantiating invalid ExtensionIdentifier('core') identifiers.

- Updates ILanguageModelsService.sendChatRequest signature
- Updates ILanguageModelChatProvider.sendChatRequest signature
- Updates ExtHostLanguageModelsShape protocol
- Updates ExtHostLanguageModels \ implementation
- Removes new ExtensionIdentifier('core') from 5 internal callers
- Passes undefined as requestInitiator when from is absent
- Bumps vscode.proposed.chatProvider API version to 5
- Updates test mocks to accept optional from parameter

Refs microsoft#290436

(Commit message generated by Copilot)

* keep api as old version for now

* Update src/vs/workbench/contrib/mcp/common/mcpSamplingService.ts

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

---------

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

* sessions - revert too annoying toasts display (microsoft#298771)

* removes dependency

* sessions - restore sessions window when all windows closed (microsoft#298793)

* Port github-authentication extension to use esbuild

* Update extensions/github-authentication/esbuild.browser.mts

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

* sessions - wording (microsoft#298799)

* fix - update notification messages to use 'session'

* fix - update toast action label to 'Open Session'

* retain input in question carousel  (microsoft#298795)

* retain input state for chat questions

* better approach

* chat: deduplicate global auto-approve warning across windows (microsoft#298787)

* chat: deduplicate global auto-approve warning across windows

Add CancellationToken support to IDialogService.prompt() and implement
cross-window deduplication for the global auto-approve confirmation dialog.

When \chat.tools.global.autoApprove\ is enabled, the opt-in warning
previously appeared in every window because each window independently
checked the APPLICATION-scoped storage flag and showed the dialog without
coordination.

Changes:
- Add <token?: CancellationToken> to IBaseDialogOptions, allowing dialogs
  to be programmatically dismissed via cancellation
- Update BrowserDialogHandler.doShow() to register token cancellation and
  dispose the dialog when the token fires
- In LanguageModelToolsService._checkGlobalAutoApprove(), use
  CancellationTokenSource + storageService.onDidChangeValue listener to
  detect when another window stores the opt-in flag and cancel the dialog
- Apply the same pattern to the /autoApprove slash command handler
- Within-window deduplication: pending promise cached in
  _pendingGlobalAutoApproveCheck prevents duplicate dialogs from multiple
  simultaneous tool invocations

After opt-in is stored by any window, other windows detect the storage
change via the token listener and cancel their dialogs. The prompt then
resolves as if approved, avoiding duplicate user interaction.

Fixes microsoft#292150

(Commit message generated by Copilot)

* pr comments

* Add Cmd+W keybinding for new chat session in session management (microsoft#298807)

* Add IsNewChatSessionContext to sessions management service import and register Cmd+W keybinding for new session

* Add secondary keybinding for opening new session with Cmd+W in non-empty state

* Enhance Cmd+W keybinding condition to require non-empty active editor group

* Fix Cmd+W keybinding condition to check for visible editors instead of empty editor group

* [Terminal Sandbox]Wrapping the command in single quotes and escaping it to prevent any shell injection issues. (microsoft#298790)

* wrapping the command in single quotes and escaping it to prevent any shell injection issues

* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts

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

---------

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

* only show tip widget if there's exactly one chat session in the foreground (microsoft#298772)

fixes microsoft#297759

* Avoid treating .copilot/agents as target of GithubCopiilot (microsoft#298706)

* Avoid treating .copilot/agents as target of GithubCopiilot

* Remove test

* chat: reduce TextModel creation during chat editing replay (microsoft#298820)

Replaces full TextModel instantiation with lightweight ITextBuffer
(PieceTree) in _applyTextEditsToContent to reduce memory overhead
and initialization cost when replaying text edits. Now maintains a
single buffer across consecutive edit operations instead of creating
and disposing a model for each edit.

Additionally caches finalized diff stats in _finalizedDiffCache to
avoid redundant model creation and diff computation when code block
pills scroll back into view. When the observable chain is rebuilt for
a pill that was previously visible, a constObservable returns the
cached IEditSessionEntryDiff instead of rebuilding the entire model
reference chain and computing the diff again.

- Replace TextModel with createTextBuffer/ITextBuffer in replay loop
- Remove unused IInstantiationService and IModelService dependencies
- Add _finalizedDiffCache for caching computed diff stats
- Return constObservable for cached finalized diffs
- Remove Date.now() temp URI generation and model creation overhead

Fixes microsoft#290274

(Commit message generated by Copilot)

* feat(chat): add support for hand-off prompts in chat sessions (microsoft#298818)

* Fix skill delete behaviour (microsoft#298814)

* Remove remaining webpack references for building extensions

All extensions now should be fully ported over to use esbuild instead of webpack

* Use Dark Dimmed tokens for syntax highlighting and diff colors

* chat: Use ref-counted model collection for tool confirmation inputs (microsoft#298829)

* chat: Use ref-counted model collection for tool confirmation inputs

Fixes duplicate model error when ToolConfirmationSubPart re-renders with
the same toolCallId. Models keyed by URI are now managed via a ref-counted
ReferenceCollection (InlineTextModelCollection) on IChatContentPartRenderContext,
so multiple SubPart instances can safely share the same model. The model is only
disposed when the last reference is released, preventing the 'Cannot add model
because it already exists!' error during list re-rendering or parallel tool calls.

- Add InlineTextModelCollection class wrapping ReferenceCollection<ITextModel>
  to handle ref-counted model lifecycle keyed by URI
- Add inlineTextModels field to IChatContentPartRenderContext
- Wire InlineTextModelCollection into chatListRenderer, passing to all context
  sites
- Update chatToolConfirmationSubPart to use context.inlineTextModels.acquire()
  instead of modelService.createModel()
- Remove unused IModelService injection from chatToolConfirmationSubPart

Fixes microsoft#294345

(Commit message generated by Copilot)

* ci failure

* Browser: better focus transfering (microsoft#298819)

* Browser: better focus transfering

* fix

* Sessions window: GH file system provider fixes

* TODO

* Update distro (microsoft#298841)

* Browser: support hard reload (microsoft#298840)

* Review comments

* sessions: mcp protocol negotiation, gateway output channel, and customization ui improvements (microsoft#298852)

* sessions: always show Logs panel in sessions window

The Logs/Output panel was previously gated behind dev mode only.
Make it always visible so MCP gateway negotiation logs and other
output channels are accessible for debugging.

* sessions: mcp protocol negotiation, gateway output channel, and customizations UI improvements

MCP Gateway Protocol Negotiation:
- Gateway now negotiates protocol version with clients instead of
  hardcoding '2025-11-25', fixing compatibility with older SDK versions
- Adds MCP_SUPPORTED_PROTOCOL_VERSIONS covering all known MCP spec versions
- Responds with client's requested version if supported, falls back to latest
- Logs client info and negotiated version for diagnostics
- 7 new unit tests covering all negotiation scenarios

MCP Gateway Output Channel:
- Dedicated 'MCP Gateway' output channel via ILoggerService (logLevel: always)
- Gateway service and sessions now use ILogger instead of ILogService
- All gateway lifecycle events visible in Output panel

Sessions Window MCP Integration:
- Re-enable MCP Servers section in sessions management editor
- Add MCP Servers to sessions sidebar toolbar with total count
- Add MCP Servers link item in sessions tree view (navigates to editor)
- Add MCP Servers to sessions overview view with count from IMcpService
- Add chat.experimentalSessionsWindowOverride setting for sessions-specific
  extension behavior (overridden to true in sessions defaults)

MCP List Widget Polish:
- Add 'Built-in' group showing extension-provided servers (e.g. GitHub MCP)
- Remove per-item server icons, aligning with other customization sections
- Hide running/stopped status indicators in sessions window
- Match item height (36px), padding, and font styling to other sections
- Hide empty description lines to tighten layout

Customizations UI Cleanup:
- Remove git status badges and SCM service dependency from list widget
- Remove per-item storage badge icons (workspace/user/extension)
- Remove 'Developer: Customizations Debug' command (replaced by output channel)
- Simplify sidebar counts to single total number (no category icon badges)
- Remove group separator borders, use spacing only
- Fix list container overflow (hidden -> auto) and add min-height: 0 for scroll
- Fix layout() fallback from 100px to 0px with requestAnimationFrame re-measure

Customizations Debug Output Channel:
- New sessions-only 'Customizations Debug' output channel
- Streams snapshot on every change: summary table + search paths + file details
- Includes MCP server listing with connection states

Hooks Count Fix:
- Toolbar hook counts now match management editor (per-hook, not per-file)
- Uses IFileService to parse hook JSON files and count individual hooks

The MCP gateway now negotiates the protocol version with connecting
clients instead of hardcoding 2025-11-25. This fixes compatibility
with clients using older @modelcontextprotocol/sdk versions that
do not support the latest protocol version.

* address PR review feedback

- Fix stale MCP count in overview: use autorun to watch mcpService.servers
- Guard rAF layout callbacks against widget disposal
- Make built-in MCP items non-interactive (no pointer cursor, no hover)
- Fix _logSnapshot dropping events: re-run if dirty during snapshot
- Add CSS for mcp-builtin-readonly items

* Add scrollbar to chat input

* Check language model session target (microsoft#298862)

* Revert "Remove remaining webpack references for building extensions"

This reverts commit 3d7cf10.

* sessions - disable implicit context entirely (microsoft#298884)

* Enhance source map handling in NLS plugin and related components

- Introduced adjustments for source maps in the NLS plugin to ensure accurate mapping after placeholder replacements.
- Implemented deferred processing for source maps to handle edits more effectively, preserving unmapped segments.
- Updated tests to validate column mappings and ensure correctness in both minified and non-minified builds.
- Improved documentation to reflect changes in source map generation and adjustments.

* Refactor theme color usage in AuxiliaryBarPart and PanelPart to utili… (microsoft#298896)

Refactor theme color usage in AuxiliaryBarPart and PanelPart to utilize sessionsSidebarBorder

* Hide debug slash command in Sessions (microsoft#298897)

* fix: support protocol handler for subapp on macOS (microsoft#298877)

* show logs by default (microsoft#298916)

* sessions - enable terminal auto approve (microsoft#298917)

* refactor: update box-shadow styles across various components to use new shadow variables

- Replaced hardcoded box-shadow values with new CSS variables for consistency and improved theming.
- Updated styles in postEditWidget, findOptionsWidget, findWidget, floatingMenu, hover, parameterHints, peekViewWidget, renameWidget, stickyScroll, suggest, actionWidget, hover, quickInput, agentFeedback components, and more.
- Introduced new shadow variables: --vscode-shadow-sm, --vscode-shadow-md, --vscode-shadow-lg, --vscode-shadow-xl, and --vscode-shadow-hover for better control over shadow effects.

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

* agent sessions approval row

* refactor: reorganize shadow variables in theme styles for consistency

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

* sessions - always prefer session label (microsoft#298926)

* sessions - always prefer session label

* Update src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts

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

---------

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

* Apply suggestion from @Copilot

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

* refactor: remove redundant overflow styles and apply box-shadow to notifications list container

* refactor: remove overflow styles from notifications and clean up input box styles

* fix sessions title bar (microsoft#298932)

* fix title alignment

* fix sessions title bar

* Revert "Port github extension to use esbuild" (microsoft#298920)

* Hiding and showing of terminals

* Enhance task entry interface and add tests for command arguments (microsoft#298935)

* Enhance task entry interface to support command arguments for different platforms

* Add tests for runTask to validate command and argument handling

* Agent sessions approval row (microsoft#298933)

* Initial plan

* fix: update test expectation for legacy terminal tool data to expect 'sh' language id

Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com>

* refactor: enhance box-shadow styling for menu container based on shadow color

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

* refactor: add box-shadow styling to rename widget for improved visibility

* Updates component explorer

* update distro (microsoft#298931)

* Update editor widget background colors in 2026 Light theme

* Add padding to statusbar left and right items for improved layout

* Refactor statusbar padding for improved layout and item visibility

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

* Remove padding adjustments for first and last visible statusbar items

* sessions - updates to selfhost setup (microsoft#298943)

* sessions - updates to selfhost setup

* document more hooks

* Git - expose random name generation for branches (microsoft#298938)

* configures dependabot to automatically update component explorer

* sessions - indicate isolation level in viewer (microsoft#298955)

* feat - add isolation icon support in agent sessions

* refactor - remove isolation icon from agent sessions

* refactor - remove isolation icon styles from CSS

* sessions: fix separator in windows (microsoft#298961)

* Update grammars (microsoft#298962)

* Enhance source map handling in build tasks for CI environments

* improves npm cache logic

* fix: explicitly set volume size for dmg (microsoft#298918)

* sessions - context menu on title for session actions (microsoft#298968)

* sessions - context menu on title for session actions

* Update src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts

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

* ccr

* ccr

---------

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

* f5 run action keybinding and command handler

* - remember draft state in new chat (microsoft#298983)

- move changes action to title

* sessions - improve session hover title rendering and persistence (microsoft#298950)

* fix - add title rendering for session hover

* fix - update hover title rendering logic

* fix - update hover persistence for session rendering

* fix - update hover setup for agent sessions

* fix - update hover handling in `agentSessions`

* Session window: apply patch to local

* sessions - disable background throttling (microsoft#298985)

* sessions - disable background throttling

* ccr

* .

* refactor: remove unused agent feedback line decoration contribution a… (microsoft#298996)

refactor: remove unused agent feedback line decoration contribution and associated styles

* Indicate when all sessions are filtered hidden (fix microsoft#296581) (microsoft#298979)

* Indicate when all sessions are filtered hidden (fix microsoft#296581)

* .

* Update src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css

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

* .

---------

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

* Bump actions/upload-artifact from 4 to 7 (microsoft#298952)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* sessions - default settings tweaks (microsoft#299008)

* chore: run npm audit fix (microsoft#298839)

* mcp: add support for ui/download-file requests (microsoft#298838)

* mcp: add support for ui/download-file requests

- Adds McpUiDownloadFileRequest and McpUiDownloadFileResult types to modelContextProtocolApps.ts for MCP apps to request file downloads
- Introduces IChatResponseResourceFileSystemProvider interface with an associate() method to store arbitrary data in the chat response filesystem and track it by session for cleanup
- Extracts ChatResourceGroupWidget as a reusable component for rendering resource groups with save/download actions, used by both ChatToolOutputContentSubPart and MCP app downloads
- Adds _handleDownloadFile() in ChatMcpAppModel to process download requests, supporting both inline EmbeddedResource and ResourceLink types from the MCP protocol
- Adds download resource container in ChatMcpAppSubPart that renders downloaded resources as attachment pills with toolbar actions
- Registers IChatResponseResourceFileSystemProvider as a singleton service

Fixes microsoft#298836

(Commit message generated by Copilot)

* mcp: add support for ui/download-file requests

- Adds McpUiDownloadFileRequest and McpUiDownloadFileResult types
- Introduces IChatResponseResourceFileSystemProvider interface
- Extracts ChatResourceGroupWidget as reusable component
- Adds _handleDownloadFile in ChatMcpAppModel
- Adds download container in ChatMcpAppSubPart
- Registers IChatResponseResourceFileSystemProvider singleton

Fixes microsoft#298836

(Commit message generated by Copilot)

* pr comments

* Apply suggestion from @Copilot

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

* Fix cut off corner border

* docs: fix duplicated wording in proposed API comment (microsoft#298522)

docs: fix duplicated wording in proposed API comment\n\nSigned-off-by: Rohan Santhosh <rohan@example.com>

* support multiple questions coming in for chat (microsoft#299006)

fix microsoft#297408

* Support displaying hooks by target, compat refactor (microsoft#298798)

* Reapply 8e445ca

Switching to a slightly older postcss version to avoid the official build issue

* Polish question carousel (microsoft#298377)

* Polish question carousel: keyboard nav, badge styling, focus outlines

* chat: prioritize selected single-select answer over freeform draft

* Enhance question carousel with tab navigation and review functionality

* Polish question carousel: stack title/desc, plain numbers, multiline Q:/A: summary, Cmd+Enter submit

* Polish question carousel titles and execute controls

* Address PR feedback: guard checkmark on actual answers, restore queue/steer, deduplicate format helper, fix JSDoc

* Fix carousel tests: update selectors for tab-bar UI

* Fix remaining carousel tests from main merge

* Add ARIA tabpanel pattern and clear tab indicators on dispose

* Adjust tab bar padding-left to 4px for multi-question carousels

* Fix CI: non-null assertion and remove unused constants

* fix: show steer/queue submenu during question carousel when text is typed

- Cancel button now hides when input has text during question carousel
  (matches behavior during regular in-progress requests)
- Queue/steer submenu now appears during question carousel and tool
  confirmation states, since requestInProgress is false in those states
- Removed unused requestInProgressWithoutInput and pendingToolCall vars

* Add very basic documentation of built-in extensions

* Update extensions/CONTRIBUTING.md

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

* Update extensions/CONTRIBUTING.md

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

* Update extensions/CONTRIBUTING.md

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

* Update extensions/CONTRIBUTING.md

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

* chat: add approval management UI to tool picker (microsoft#299031)

Adds support for managing tool confirmation preferences directly from the tool
picker. This allows users to approve tools and external paths at the workspace
level, reducing friction when using tools that require confirmation.

- Adds 'Manage Approval' button to tools that support confirmation
- Integrates ILanguageModelToolsConfirmationService with tool picker
- Adds workspace-level allowlist persistence for external paths
- Extends ActionableButton type to support keepOpen behavior
- Implements workspace folder selection and allowlist management
- Adds ObservableMemento for persistent storage of approved paths

Fixes https://github.com/microsoft/vscode-internalbacklog/issues/6805

* dialogs: prevent custom dialogs from overflowing screen vertically (microsoft#299048)

Adds max-height: 90vh to the dialog box to prevent it from exceeding the
viewport height, matching the existing max-width: 90vw constraint.

The message content area now scrolls when it exceeds available space:
- Added align-self: stretch to .dialog-message-container in horizontal
  layout so it fills the row height and triggers overflow-y scrolling
- Added min-height: 0 to .dialog-message-container in vertical layout
  to allow flex shrinking and overflow-y scrolling
- Changed .dialog-message-container overflow from 'hidden' to 'overflow-y:
  auto; overflow-x: hidden' to enable vertical scrolling

Buttons, toolbar, and footer remain visible. Only message content scrolls.

Fixes microsoft#296528

(Commit message generated by Copilot)

* chat: support relative paths in plugin locations (microsoft#299059)

* chat: support relative paths in plugin locations

- Changes chat.pluginLocations to support home-relative (~/) and
  workspace-relative (./) paths instead of absolute paths
- Adds path normalization and validation in agentPluginServiceImpl
- Updates constants and contribution for plugin path handling
- Ensures settings are shareable across machines by avoiding absolute paths

Fixes microsoft#297365

(Commit message generated by Copilot)

* comment

* fix chat-input-container padding (microsoft#299054)

* sessions: add "github.copilot.chat.githubMcpServer.enabled" to config… (microsoft#299030)

sessions: add "github.copilot.chat.githubMcpServer.enabled" to config override

* Fix MCP tool validation warning for schemas without properties (microsoft#299035)

Per the MCP spec, the 'properties' field in tool inputSchema is optional,
with 'type' being the only required field. However, JSON Schema Draft 7
validation requires 'properties' for object types, causing spurious
warnings like 'Tool foo failed validation: schema must have a properties
object'.

Fix by normalizing the inputSchema to include an empty properties object
when not present.

Fixes microsoft#251723

* chat: add manage action gear icon to installed agent plugins (microsoft#299052)

* chat: add manage action gear icon to installed agent plugins

Adds a ManagePluginAction that displays a gear icon in the plugin list
for installed plugins. Clicking the gear icon shows a context menu with
management options (enable/disable, open folder, open README, uninstall),
making it consistent with how extensions and MCP servers display their
management UI.

- Adds ManagePluginAction class that provides dropdown menu with
  management actions for installed plugins
- Adds ManagePluginActionViewItem to render the action as a clickable
  gear icon with context menu
- Updates AgentPluginRenderer to include the gear icon in the action bar
  for installed plugins
- Context menu displays enable/disable, open folder, open README, and
  uninstall options

Fixes microsoft#298461

(Commit message generated by Copilot)

* chat: clean up manage plugin action to follow MCP pattern

- Extract shared getInstalledPluginContextMenuActionGroups() to
  deduplicate action construction between gear menu and context menu
- Restructure ManagePluginAction with createActionViewItem() pattern
  matching MCP/extensions DropDownAction approach
- Add onHide disposal for context menu actions
- Remove redundant getDomNodePagePosition import

* Make sure we specify a tsconfig.browser.json for browser ext

* fix compile error in mcpGatewayToolBrokerChannel test

* chat: combine multiple pending steering messages into single request (microsoft#299061)

* chat: combine multiple pending steering messages into single request

When Copilot is running a tool, sending multiple steering messages only sends
the first one. The chatbot waits indefinitely for the remaining messages.

This fix combines all consecutive pending steering messages into a single
request by:

- Adding dequeueAllSteeringRequests() to ChatModel to dequeue all
  consecutive steering messages at the front of the queue
- Refactoring processNextPendingRequest() to handle both steering and queued
  requests through a unified flow that:
  - Combines multiple steering message texts with \n\n separator
  - Merges attachments from all steering messages
  - Re-parses the combined text
  - Sends as a single request to the agent

Fixes microsoft#298324

(Commit message generated by Copilot)

* comments

* McpGateway extensive logging (microsoft#299043)

* McpGateway extensive logging

* update

* update

* fix: invalidate _startupGrace when cacheState regresses

* fix: use per-entry resolved tracking instead of autorun for _startupGrace invalidation

* Use settings icon instead of tools icon in chat input (microsoft#299068)

* tests

* fix chat tip issue (microsoft#299070)

fix microsoft#299036

* constrain and make chat questions scrollable (microsoft#298786)

* add play button in prompt config dialog (microsoft#297715)

* fix merge error

* Using merge strategy

* Rename

* fix: passing js-flags to utility process (microsoft#299069)

* Fix /hooks slash command from blocking chat (microsoft#299084)

* Disable slash commands for background (microsoft#299085)

* refactor: update getCliUserSubfolder to clarify prompts exclusion (microsoft#299089)

* Don't show Used n references when opening an old session (microsoft#299092)

* Don't show Used n references when opening an old session
Alternate fix for microsoft#297152

* Don't show Used n references when opening an old session
Alternate fix for microsoft#297152

* api: fix memory leaks in MainThreadManagedSockets (microsoft#299093)

* api: fix memory leaks in MainThreadManagedSockets

Refactors MainThreadManagedSockets to properly manage disposables and prevent
memory leaks. Uses DisposableMap for registrations and DisposableStore to
collect socket disposal listeners.

- Changes _registrations from Map<number, IDisposable> to DisposableMap to
  leverage automatic disposal when clearing entries.
- Collects Event.once listeners for socket disposal in a DisposableStore to
  ensure they are properly disposed of when the factory is unregistered.
- Minor whitespace fix on closeRemote method signature.

Refs microsoft#293200

(Commit message generated by Copilot)

* Better

* Review comments

* Clean up

* Commit customization files to main repo for worktree persistence (microsoft#299094)

* Commit customization files to main repo for worktree persistence

Customization files (agents, skills, instructions, prompts, hooks) are
now always committed to the main repository so they persist across
worktrees. When a worktree session is active, the file is also copied
and committed there so the running session picks it up immediately.

- Rewrite SessionsAICustomizationWorkspaceService.commitFiles() with
  dual-commit logic (main repo + worktree)
- Add deleteFiles() to IAICustomizationWorkspaceService interface
- Wire delete action to commit removals to git
- Show friendly warning when main repo commit fails from a worktree

* Apply suggestions from code review

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

---------

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

* sessions: suggest slash commands on new session page  (microsoft#299098)

* feat: add dynamic customization slash commands to sessions new-chat page

Add individual prompt/skill files as slash commands in the sessions
window's new-chat input, matching what the customizations view shows.

- Add getFilteredPromptSlashCommands() to IAICustomizationWorkspaceService
  - Core: passthrough to IPromptsService
  - Sessions: filters via applyStorageSourceFilter() per prompt type
- Add second completion provider in SlashCommandHandler for dynamic
  prompt/skill slash commands alongside existing static ones
- Update decorations to recognize and highlight dynamic prompt commands
- Subscribe to onDidChangeSlashCommands for cache refresh
- Fix regex in tryExecuteSlashCommand to support Unicode prompt names

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

* feat: expand prompt slash commands into CLI-friendly references

When a user types /my-prompt in the sessions new-chat input, expand it
before sending to: 'Use the prompt file located at [name](uri).' so
the CLI agent can locate and process the prompt file.

- Add tryExpandPromptSlashCommand() to SlashCommandHandler
- Call it in _send() before session.setQuery() to rewrite the query

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

---------

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

* Refactor canResolveChatSession to accept session type (microsoft#299112)

refactor: update canResolveChatSession method to accept session type instead of URI

* Don't depend on sessionResource in a few places (microsoft#299110)

* Don't depend on sessionResource in a few places

Removes some antipaterns and unused variables.

* Apply suggestion from @Copilot

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

---------

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

* sessions - AI customizations for selfhost (microsoft#299053)

* sessions - AI customizations for selfhost

* more

* Update .github/hooks/hooks.json

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

* Update .github/skills/sessions/SKILL.md

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

---------

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

* modal - focus editor on title click (microsoft#299038)

Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>

* sessions - allow to open preview from markdown files (microsoft#299047)

* sessions - allow to open preview from markdown files

* Update src/vs/sessions/contrib/markdownPreview/browser/markdownPreview.contribution.ts

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

---------

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

* sessions - tweaks to empty message (microsoft#299034)

* sessions - fix close action showing up in modal editors when tabbed (microsoft#299041)

* feat: enhance chat session option updates (microsoft#299109)

* Ensure to update ChatInputPart state before updating viewmodel (microsoft#299119)

* Add /troubleshoot command for access to debug logs (microsoft#299024)

* modal - improve handling of Escape key and expand use of modal editors to more kinds (microsoft#299060)

* modal - improve handling of Escape key and expand use of modal editors to more kinds

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

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

---------

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

* eng - explain fallback for how to check for compilation issues fast in CLI envs (microsoft#299117)

* eng - explain fallback for how to check for compilation issues fast in CLI envs

* Update .github/copilot-instructions.md

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

* Update .github/copilot-instructions.md

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

* .

---------

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

* Avoid unnecesary updates to model in new background agent sessions (microsoft#299121)

* sessions - indicate in layout that status bar is hidden (microsoft#299131)

* sessions - move scrollbar to the right for chat (microsoft#299134)

* fix - update precondition for `OpenSessionWorktreeInVSCode` (microsoft#299140)

* Git - tweak copilot worktree folder detection (microsoft#299147)

* Git - tweak copilot worktree folder detection

* Pull request feedback

* Apply OutSystems customizations on top of latest upstream

- Add customIcon field to CompletionItem interface (languages.ts, was modes.ts)
- Add custom icon rendering logic in suggestWidgetRenderer.ts (moved to browser/ subfolder)
- Add OS Azure Pipelines build/deploy pipeline for monaco-editor-core

* Use windows-latest image in OS pipeline

* review PR to accomodate with ms changes

* review lock file

* revert changes to package.json

* Commit automatically generated monaco d.ts file

* review pipeline yml

* Remove workflows

* Alpha version for testing package

* Bundle the icon font

* bump testing version

* Remove alpha from version

---------

Signed-off-by: loongtao.zhang <loongtao.zhang@outlook.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
Co-authored-by: cathaysia <ample-zit-false@duck.com>
Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Don Jayamanne <don.jayamanne@outlook.com>
Co-authored-by: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com>
Co-authored-by: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com>
Co-authored-by: BeniBenj <besimmonds@microsoft.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
Co-authored-by: Lee Murray <lemurra@microsoft.com>
Co-authored-by: Sandeep Somavarapu <sasomava@microsoft.com>
Co-authored-by: Kunal Bhujbal <156365067+kbhujbal@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Elie Richa <eliericha@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Matt Bierner <12821956+mjbvz@users.noreply.github.com>
Co-authored-by: David Dossett <25163139+daviddossett@users.noreply.github.com>
Co-authored-by: Ben Villalobos <bevillal@microsoft.com>
Co-authored-by: Megan Rogge <merogge@microsoft.com>
Co-authored-by: John Sanchirico <59657471+sanchirico@users.noreply.github.com>
Co-authored-by: Connor Peet <copeet@microsoft.com>
Co-authored-by: dileepyavan <52841896+dileepyavan@users.noreply.github.com>
Co-authored-by: Henning Dieterichs <hdieterichs@microsoft.com>
Co-authored-by: Paul <paul_wang347@hotmail.com>
Co-authored-by: Kyle Cutler <67761731+kycutler@users.noreply.github.com>
Co-authored-by: Osvaldo Ortega <osortega@microsoft.com>
Co-authored-by: Osvaldo Ortega <48293249+osortega@users.noreply.github.com>
Co-authored-by: Josh Spicer <23246594+joshspicer@users.noreply.github.com>
Co-authored-by: Rob Lourens <roblourens@gmail.com>
Co-authored-by: Johannes <johannes.rieken@gmail.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Christof Marti <chrmarti@microsoft.com>
Co-authored-by: Lee Murray <mrleemurray@gmail.com>
Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
Co-authored-by: Pierce Boggan <piboggan@microsoft.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
Co-authored-by: Rohan Santhosh <rohan.santhoshkumar@gmail.com>
Co-authored-by: Justin Chen <54879025+justschen@users.noreply.github.com>
Co-authored-by: Connor Peet <connor@peet.io>
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tyler James Leonhardt <2644648+TylerLeonhardt@users.noreply.github.com>
Co-authored-by: Rui Neves <rui.neves@outsystems.com>
@vs-code-engineering vs-code-engineering bot locked and limited conversation to collaborators Apr 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants