- 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.
* 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
* 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 https://github.com/microsoft/vscode/issues/294345
(Commit message generated by Copilot)
* ci failure
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 https://github.com/microsoft/vscode/issues/290274
(Commit message generated by Copilot)
* 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>
* 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
* 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 https://github.com/microsoft/vscode/issues/292150
(Commit message generated by Copilot)
* pr comments
* 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 https://github.com/microsoft/vscode/issues/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>
* 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
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 https://github.com/microsoft/vscode/issues/298643
(Commit message generated by Copilot)
* 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#297246
(Commit message generated by Copilot)
* pr comments
* test
* merge
* fix circular dep