Implements smart scroll delegation for MCP app iframes. Instead of
delegating 100% of wheel events when content is below max height (or 0%
when scrollable), now detects scroll boundaries and only bubbles events
when the iframe's content is scrolled to the top (scrolling up) or bottom
(scrolling down).
- Adds scroll boundary detection in the MCP app preamble script that
checks both element-level scrolling (overflow: auto/scroll) and
document-level scrolling (overflow: visible on html/body)
- Introduces ui/notifications/sandbox-wheel notification to signal when
scroll events should bubble from the iframe to the chat widget
- Adds CustomSandboxWheelNotification interface to McpApps protocol
- Removes the old canScrollWithin derived observable that made blanket
delegation decisions based only on content height
(Commit message generated by Copilot)
- Extract common editor closing and auxiliary bar maximization logic into closeEditorAndMaximizeAuxiliaryBar helper method
- Add error handling with INotificationService to openSessionInChat method
- Import INotificationService and toErrorMessage for proper error reporting
Co-authored-by: osortega <48293249+osortega@users.noreply.github.com>
Fixes#290328
The factory methods in CollapsibleListPool and TreePool were registering
disposables (like ResourceLabels and tree container scopes) to the pool
class via this._register() instead of associating them with the pool
item. This meant they would only be disposed when the entire pool was
disposed, not when individual items were cleared.
This copies the correct strategy used by CollapsibleChangesSummaryListPool:
- Create wrapper types (ICollapsibleListWrapper, ITreePoolWrapper)
- Use a local DisposableStore in the factory method
- Return a wrapper with its own dispose() method that cleans up the store
When hovering an agent session, display the provider type (e.g., Claude,
Codex) with a separator before the timing information. Also fix icon
vertical alignment by adding flexbox display to the Codicon element.
- Add getAgentSessionProviderName to imports
- Display provider name in buildHeader() method
- Add separator bullet between provider name and time
- Update buildFallbackTooltip() to include provider name
- Fix vertical centering of icons in details row via CSS
Fixes https://github.com/microsoft/vscode/issues/290479
(Commit message generated by Copilot)
Align VS Code's MCP Apps implementation with the latest specification
from modelcontextprotocol/ext-apps:
- Add availableDisplayModes to McpUiAppCapabilities interface
(commit 89f58bf) to allow Views to declare supported display modes
during initialization. VS Code supports only 'inline' mode currently.
- Fix ui/request-display-mode handler to return { mode: 'inline' }
per spec requirement, instead of empty response.
- Update JSDoc comments to use 'View' terminology consistently
instead of 'Guest UI' (following commit 4fc7165).
- Verify CSP handling for script-src/style-src with resourceDomains
is correct (commit df49e88). Already implemented correctly in
chatMcpAppModel._injectPreamble().
Note: styles.css.fonts, ui.domain, and other changes either don't
require action or are already implemented.
(Commit message generated by Copilot)