Skip to content

chat customizations: splash when MCP/plugins disabled#310847

Merged
joshspicer merged 1 commit intomainfrom
agents/splash-page-chat-customizations
Apr 17, 2026
Merged

chat customizations: splash when MCP/plugins disabled#310847
joshspicer merged 1 commit intomainfrom
agents/splash-page-chat-customizations

Conversation

@joshspicer
Copy link
Copy Markdown
Member

Block the MCP servers and Plugins tabs in the chat customizations editor when their respective access settings are disabled, including via enterprise policy.

Behavior

  • MCP tabMcpListWidget watches chat.mcp.access. When the value is none, the tab is replaced by a splash with a shield icon, explanation, and an "Open Setting" button. If policyValue === 'none' (locked by ChatMCP policy), the message switches to "disabled by your organization's policy" and the settings button is hidden.
  • Plugins tabPluginListWidget watches chat.plugins.enabled (boolean, policy ChatPluginsEnabled) with the same user-vs-policy distinction.
  • Both widgets react live via onDidChangeConfiguration — no reload required when the setting toggles.

Implementation notes

  • Reuses the .mcp-list-widget root class on both widgets so a single .access-disabled CSS modifier (in aiCustomizationManagement.css) blocks the rest of the page and reveals .mcp-disabled-state.
  • Disabled-vs-policy decision uses IConfigurationService.inspect(...).policyValue, matching the existing pattern in modePickerActionItem.ts, chatModes.ts, chatInputPart.ts, etc.

Fixtures

Adds 4 new component fixtures (× Dark/Light = 8 screenshots) in aiCustomizationManagementEditor.fixture.ts:

  • McpDisabledByUser
  • McpDisabledByPolicy
  • PluginsDisabledByUser
  • PluginsDisabledByPolicy

Copilot AI review requested due to automatic review settings April 16, 2026 21:02
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 16, 2026

Screenshot Changes

Base: 2cc8b21a Current: 091f9c5d

Changed (2)

chat/aiCustomizations/aiCustomizationManagementEditor/McpBrowseMode/Dark
Before After
before after
editor/inlineCompletions/other/JumpToHint/Dark
Before After
before after

Added (8)

chat/aiCustomizations/aiCustomizationManagementEditor/McpDisabledByUser/Light

current

chat/aiCustomizations/aiCustomizationManagementEditor/McpDisabledByPolicy/Light

current

chat/aiCustomizations/aiCustomizationManagementEditor/PluginsDisabledByUser/Light

current

chat/aiCustomizations/aiCustomizationManagementEditor/PluginsDisabledByPolicy/Light

current

chat/aiCustomizations/aiCustomizationManagementEditor/McpDisabledByUser/Dark

current

chat/aiCustomizations/aiCustomizationManagementEditor/McpDisabledByPolicy/Dark

current

chat/aiCustomizations/aiCustomizationManagementEditor/PluginsDisabledByUser/Dark

current

chat/aiCustomizations/aiCustomizationManagementEditor/PluginsDisabledByPolicy/Dark

current

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

This PR adds an “access disabled” splash state to the Chat Customizations management editor’s MCP Servers and Plugins tabs when their respective settings (or enterprise policy) disable access, and adds component fixtures to cover the new UI states.

Changes:

  • Add disabled/policy-locked splash UI to McpListWidget and PluginListWidget, reacting live to configuration changes.
  • Add a shared CSS modifier (.access-disabled) to hide the normal widget UI and show the disabled splash.
  • Add new component fixtures for MCP/Plugins disabled-by-user vs disabled-by-policy states.
Show a summary per file
File Description
src/vs/workbench/test/browser/componentFixtures/sessions/aiCustomizationManagementEditor.fixture.ts Adds fixtures rendering MCP/Plugins disabled-by-user/policy states by mocking configuration values.
src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.ts Implements the plugins “access disabled” splash state driven by chat.plugins.enabled + policy detection.
src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css Adds .mcp-disabled-state styling and .access-disabled modifier to block the rest of the widget UI.
src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.ts Implements the MCP “access disabled” splash state driven by chat.mcp.access + policy detection.

Copilot's findings

  • Files reviewed: 4/4 changed files
  • Comments generated: 2

@joshspicer joshspicer force-pushed the agents/splash-page-chat-customizations branch 2 times, most recently from a2d2dd2 to 052e8e4 Compare April 17, 2026 01:07
@joshspicer joshspicer marked this pull request as ready for review April 17, 2026 01:10
roblourens
roblourens previously approved these changes Apr 17, 2026
@joshspicer joshspicer force-pushed the agents/splash-page-chat-customizations branch from 052e8e4 to a5c3c33 Compare April 17, 2026 16:31
rzhao271
rzhao271 previously approved these changes Apr 17, 2026
Block the MCP servers and Plugins tabs in the chat customizations editor
when their respective access settings are disabled, including via
enterprise policy.

- McpListWidget watches `chat.mcp.access`; shows splash when value is
  `none`. If `policyValue === 'none'`, shows policy-locked message and
  hides the "Open Setting" button.
- PluginListWidget watches `chat.plugins.enabled` with the same
  user/policy distinction.
- Reuse `.mcp-list-widget` root class so the new `.mcp-disabled-state`
  CSS applies to both widgets via a single `.access-disabled` modifier.
- Add Dark/Light fixtures for both widgets in user-disabled and
  policy-locked states (8 new screenshots).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@joshspicer joshspicer force-pushed the agents/splash-page-chat-customizations branch from a5c3c33 to 6712342 Compare April 17, 2026 17:25
@joshspicer joshspicer enabled auto-merge (squash) April 17, 2026 17:28
@joshspicer joshspicer merged commit 377feb6 into main Apr 17, 2026
26 checks passed
@joshspicer joshspicer deleted the agents/splash-page-chat-customizations branch April 17, 2026 17:49
@vs-code-engineering vs-code-engineering Bot added this to the 1.117.0 milestone Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants