Plugins tab: remote-plugin rows have no component fixture coverage, hiding shared-CSS regressions
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
## Gap
`PluginRemoteItemRenderer` in `src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.ts` renders five distinct status states as **text**:
| State | String |
|---|---|
| disabled | `Disabled` |
| loading | `Loading` |
| loaded | `Loaded` |
| degraded | `Warning` |
| error | `Error` |
None of them is covered by a component fixture. The AI Customizations editor has ten plugin fixtures (`PluginsTab`, `PluginsTabScrolled`, `PluginBrowseMode`, `PluginDetail`, `PluginsDisabledByUser`, …) and not one exercises a remote-plugin row, so this renderer has no screenshot coverage at all.
## Why it matters — this already hid a real bug
Both plugin renderers deliberately reuse the MCP row styling (`// Installed Plugin Renderer (reuses .mcp-server-item CSS)`), including `.mcp-server-status`. That rule was sized for a codicon glyph:
```css
.mcp-server-item .mcp-server-status {
width: var(--vscode-spacing-size240); /* 24px */
height: var(--vscode-spacing-size240);
justify-content: center;
font-size: var(--vscode-codiconFontSize);
}
```
So the five text labels above were being rendered into a fixed 24×24 box. It went unnoticed because nothing renders those rows in CI.
The styling side is fixed as a side-effect of #330943, which reshapes that rule to be text-shaped. The **coverage** gap remains: the next change to shared `.mcp-server-item` styling has the same blind spot, and a reviewer looking at screenshot diffs will again see no movement for this renderer whether or not it is broken.
## Suggested fix
Add a fixture exercising `PluginRemoteItemRenderer` across its status states — a remote-agent-host plugin list with rows in `loading` / `loaded` / `degraded` / `error` / disabled. That makes the shared-CSS coupling between the MCP and Plugins tabs visible in screenshot diffs, which is the property that was missing.
## Notes
Found while reviewing the shared-CSS blast radius of #330943. Not filed there because it is a Plugins-tab coverage gap rather than part of that change.
Contributor guide
Assessment
This issue has not been assessed yet.