Commit Graph

147453 Commits

Author SHA1 Message Date
Johannes
7bcb2550df Enhance source map handling in build tasks for CI environments 2026-03-03 15:13:11 +01:00
Johannes Rieken
e39f6575f1 Merge branch 'main' into joh/source-map-fixes 2026-03-03 10:27:43 +01:00
Don Jayamanne
678444363d Hide debug slash command in Sessions (#298897) 2026-03-03 19:54:46 +11:00
Benjamin Christopher Simmonds
1151928683 Refactor theme color usage in AuxiliaryBarPart and PanelPart to utili… (#298896)
Refactor theme color usage in AuxiliaryBarPart and PanelPart to utilize sessionsSidebarBorder
2026-03-03 09:34:04 +01:00
Johannes
ccbe5ab074 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.
2026-03-03 08:51:36 +01:00
Benjamin Pasero
5aefa4caeb sessions - disable implicit context entirely (#298884) 2026-03-02 23:45:21 -08:00
Matt Bierner
746d849b0f Merge pull request #298886 from mjbvz/dev/mjbvz/revert-3d7cf10fd11065589daa64bdb9c054da1344f37a
Revert "Remove remaining webpack references for building extensions"
2026-03-02 23:00:01 -08:00
Matt Bierner
8e445caeff Revert "Remove remaining webpack references for building extensions"
This reverts commit 3d7cf10fd1.
2026-03-02 22:42:15 -08:00
Rob Lourens
73b0506c6b Merge pull request #298875 from microsoft/roblou/unable-locust
Add scrollbar to chat input
2026-03-02 21:19:56 -08:00
Don Jayamanne
397d3e1b17 Check language model session target (#298862) 2026-03-03 16:19:05 +11:00
Rob Lourens
9c46bcc75f Add scrollbar to chat input 2026-03-02 20:58:44 -08:00
Josh Spicer
17e938946e sessions: mcp protocol negotiation, gateway output channel, and customization ui improvements (#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
2026-03-03 02:45:45 +00:00
Osvaldo Ortega
001db3a249 Merge pull request #298844 from microsoft/osortega/managing-marmoset
Sessions window: GH file system provider fixes
2026-03-02 17:56:30 -08:00
Osvaldo Ortega
8735867e70 Review comments 2026-03-02 17:41:00 -08:00
Kyle Cutler
e6fef18a2d Browser: support hard reload (#298840) 2026-03-02 17:15:56 -08:00
Matt Bierner
61e4046343 Merge pull request #298827 from mjbvz/dev/mjbvz/marked-cicada
Remove remaining webpack references for building extensions
2026-03-02 17:10:04 -08:00
Ben Villalobos
d52b950ff8 Update distro (#298841) 2026-03-03 00:56:24 +00:00
Osvaldo Ortega
3275c13eea TODO 2026-03-02 16:49:17 -08:00
Osvaldo Ortega
bec7b2ba7d Sessions window: GH file system provider fixes 2026-03-02 16:48:34 -08:00
Kyle Cutler
1da6f72eba Browser: better focus transfering (#298819)
* Browser: better focus transfering

* fix
2026-03-02 16:23:19 -08:00
Connor Peet
122e527a81 chat: Use ref-counted model collection for tool confirmation inputs (#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 https://github.com/microsoft/vscode/issues/294345

(Commit message generated by Copilot)

* ci failure
2026-03-02 15:53:01 -08:00
Matt Bierner
3d7cf10fd1 Remove remaining webpack references for building extensions
All extensions now should be fully ported over to use esbuild instead of webpack
2026-03-02 15:07:39 -08:00
Matt Bierner
2a1295cbda Merge pull request #298778 from mjbvz/dev/mjbvz/preliminary-canidae
Port github extension to use esbuild
2026-03-02 15:05:57 -08:00
Paul
2bddfa571a Fix skill delete behaviour (#298814) 2026-03-02 14:36:19 -08:00
Don Jayamanne
b072e8231a feat(chat): add support for hand-off prompts in chat sessions (#298818) 2026-03-02 14:34:56 -08:00
Connor Peet
612372fe9b chat: reduce TextModel creation during chat editing replay (#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 https://github.com/microsoft/vscode/issues/290274

(Commit message generated by Copilot)
2026-03-02 22:31:35 +00:00
Don Jayamanne
b4a0baf0d9 Avoid treating .copilot/agents as target of GithubCopiilot (#298706)
* Avoid treating .copilot/agents as target of GithubCopiilot

* Remove test
2026-03-02 14:25:58 -08:00
Megan Rogge
9d6ae94c14 only show tip widget if there's exactly one chat session in the foreground (#298772)
fixes #297759
2026-03-03 09:17:28 +11:00
dileepyavan
21d2bedcc5 [Terminal Sandbox]Wrapping the command in single quotes and escaping it to prevent any shell injection issues. (#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>
2026-03-02 14:15:17 -08:00
Benjamin Christopher Simmonds
0b8d74a070 Add Cmd+W keybinding for new chat session in session management (#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
2026-03-03 09:13:31 +11:00
Matt Bierner
9507bbb06d Merge pull request #298808 from mjbvz/dev/mjbvz/occasional-chipmunk
Port github-authentication extension to use esbuild
2026-03-02 14:13:29 -08:00
Connor Peet
c6ae208533 chat: deduplicate global auto-approve warning across windows (#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 https://github.com/microsoft/vscode/issues/292150

(Commit message generated by Copilot)

* pr comments
2026-03-03 09:13:11 +11:00
Megan Rogge
119cb000f2 retain input in question carousel (#298795)
* retain input state for chat questions

* better approach
2026-03-02 22:07:04 +00:00
Benjamin Pasero
2c494f110b sessions - wording (#298799)
* fix - update notification messages to use 'session'

* fix - update toast action label to 'Open Session'
2026-03-02 14:04:38 -08:00
Matt Bierner
46b8e82a0d Update extensions/github-authentication/esbuild.browser.mts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-02 13:22:20 -08:00
Matt Bierner
305a82d762 Port github-authentication extension to use esbuild 2026-03-02 13:07:56 -08:00
Benjamin Pasero
b4e1496065 sessions - restore sessions window when all windows closed (#298793) 2026-03-02 12:47:24 -08:00
Henning Dieterichs
bafa1dff7b removes dependency 2026-03-02 21:10:40 +01:00
Benjamin Pasero
c62b267ddf sessions - revert too annoying toasts display (#298771) 2026-03-02 14:46:00 -05:00
Connor Peet
5b46a7924f chat: make sendChatRequest extensionIdentifier parameter optional (#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 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>
2026-03-02 14:45:16 -05:00
Megan Rogge
7373db526d hide tip widget for session if a tip is dismissed or actioned (#298766)
fixes #297682
2026-03-02 14:44:14 -05:00
Matt Bierner
9e0a44acc3 Port github extension to use esbuild
Had to make same fixes as with #296355. We can't pull in const enums from a d.ts file like this
2026-03-02 11:28:35 -08:00
Megan Rogge
cff799b502 replace /create-instructions tip with /init one (#298764)
fix #298759
2026-03-02 11:15:30 -08:00
dileepyavan
83601ca509 Dialog Notification when MCP server start fails in sandbox mode. (#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
2026-03-02 10:46:54 -08:00
Connor Peet
20af5962cf chore: bump distro (#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 https://github.com/microsoft/vscode/issues/298643

(Commit message generated by Copilot)
2026-03-02 18:36:27 +00:00
Connor Peet
7a45ba7984 chat: add plugin details editor with reactive action updates (#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 #297246

(Commit message generated by Copilot)

* pr comments

* test

* merge

* fix circular dep
2026-03-02 10:20:49 -08:00
John Sanchirico
cceac1afda Fix chat terminal flicker during streaming (#298598) 2026-03-02 18:07:18 +00:00
Megan Rogge
9497369946 when in question carousel, do not allow delete to undo requests (#298752)
fixes #294109
2026-03-02 10:06:38 -08:00
Megan Rogge
d356f40d90 weight and maintain specific order for foundational tips (#298745) 2026-03-02 10:06:15 -08:00
Ben Villalobos
0158c05e5c Bump minor version to 1.111 (#298150) 2026-03-02 17:28:37 +00:00