Skip to content

[pull] main from microsoft:main#991

Merged
pull[bot] merged 17 commits intocode:mainfrom
microsoft:main
Mar 3, 2026
Merged

[pull] main from microsoft:main#991
pull[bot] merged 17 commits intocode:mainfrom
microsoft:main

Conversation

@pull
Copy link

@pull pull bot commented Mar 3, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

mjbvz and others added 17 commits March 2, 2026 11:28
Had to make same fixes as with #296355. We can't pull in const enums from a d.ts file like this
* Avoid treating .copilot/agents as target of GithubCopiilot

* Remove test
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 #290274

(Commit message generated by Copilot)
All extensions now should be fully ported over to use esbuild instead of webpack
…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 #294345

(Commit message generated by Copilot)

* ci failure
* Browser: better focus transfering

* fix
Remove remaining webpack references for building extensions
Sessions window: GH file system provider fixes
…mization 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
@pull pull bot locked and limited conversation to collaborators Mar 3, 2026
@pull pull bot added the ⤵️ pull label Mar 3, 2026
@pull pull bot merged commit 17e9389 into code:main Mar 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants