* ai-customizations: improve list visual scannability (#299211)
- Add type-specific icon to each list item (agent, skill, instructions, prompt, hook)
- Format item names: convert dashes/underscores to spaces and apply title case
- Truncate descriptions to first sentence (max 120 chars fallback) to reduce visual noise
- Make item name font-weight 500 so titles pop against secondary text
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: add type icon + name/description polish for MCP servers and plugins (#299211)
- Export formatDisplayName and truncateToFirstSentence helpers from aiCustomizationListWidget
- Add mcpServerIcon to McpServerItemRenderer (local + builtin items)
- Add pluginIcon to PluginInstalledItemRenderer
- Apply formatDisplayName (dash/underscore → spaces, title case) to names
- Apply truncateToFirstSentence to descriptions
- Set font-weight: 500 on mcp-server-name to match AI customization list style
- Remove left-indent padding on mcp-server-item now that the icon fills that space
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: mute group count badges (#299211)
Replace badge-background/foreground pill styling with plain descriptionForeground
text (opacity 0.8) on both the group-header count and the sidebar section count.
This lets the section label dominate visually.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: restore badge pill with reduced opacity (#299211)
Keep badge-background/foreground colors but apply opacity: 0.6 so the
pill is still visible but clearly secondary to the section label.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: use keybindingLabel tokens for count badges (#299211)
Switch from badge-background (bright accent) to keybindingLabel-background/
foreground/border tokens, which are designed for subtle inline labels.
No opacity hacks needed — the color itself is naturally muted.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: use list.inactiveSelection tokens for count badges (#299211)
Switch to list.inactiveSelectionBackground/Foreground — the semantically
closest tokens for a secondary/muted count pill in a list/tree context.
No opacity hacks needed and the name directly reflects the role.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: strip trailing .md from display names (#299211)
formatDisplayName now strips a case-insensitive .md suffix before
applying the title-case transform, so 'my-file.Md' no longer
appears as a title.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: remove explicit font-weight from item titles (#299211)
Drop the font-weight: 500 on item-name and mcp-server-name. The visual
hierarchy is already established by the 13px full-foreground title vs the
11px muted descriptionForeground description below it, without needing an
explicit weight bump.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: use star icon for built-in MCP server items (#299211)
Built-in MCP items now show builtinIcon (star) instead of mcpServerIcon,
consistent with the prompts built-in group. Icon is now set per-element
in renderElement so the two item types can show different icons.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert "ai-customizations: use star icon for built-in MCP server items (#299211)"
This reverts commit 6b08675a22.
* ai-customizations: use star icon for Built-in MCP group header (#299211)
Change the Built-in group header icon from extensionIcon to builtinIcon
(starFull), consistent with the Built-in group in the prompts list.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: remove unused extensionIcon import from mcpListWidget (#299211)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* prompts: add create-pr prompt with compile-check reminder
Ensures the TypeScript compile check is run before opening a PR,
catching unused import and type errors that tsgo would flag in CI.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ai-customizations: fix IMatch highlight positions for formatted names (#299211)
nameMatches are now computed against formatDisplayName(item.name) in
filterItems so highlight positions align with the displayed string.
The .md stripping in formatDisplayName changes string length, so matches
against the raw name would produce incorrect highlight spans.
Also removed the outdated '1:1 transformation' claim from the JSDoc.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep active customization section selected
Ensure the left sections list re-applies selection/focus for the active section when the list selection is cleared, so the active view remains persistently selected.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Tools registered via registerToolDefinition by the default chat agent
(copilot-chat) were incorrectly getting source type 'extension' instead
of ToolDataSource.Internal. This caused them to be filtered out by the
chat.extensionTools.enabled setting check in getAllToolsIncludingDisabled().
Package.json-contributed tools from the same extension correctly got
ToolDataSource.Internal via the isBuiltinTool check in
languageModelToolsContribution.ts. Apply the same logic in
$registerToolWithDefinition on the main thread.
* chat: simplify symbol reference cache to an array
Replaces the Map-based symbol reference cache with a simple array that
keeps only the last 3 copied symbols. This removes the 15-second TTL
expiration logic and relies on insertion order instead.
- Changed symbolReferenceCache from Map to array
- Removed symbolCacheTtlMs constant and pruning logic
- Added symbolCacheMaxSize constant for max entries
- Simplified cache lookups with array.find()
- Automatically evicts oldest entry when exceeding capacity
(Commit message generated by Copilot)
* comment
* skip flakey test, suggested by Megan
* plugins: allow updating agent plugins
Add update detection and update buttons to the agent plugins view and editor.
This allows users to see when installed plugins have newer versions available
and update them directly from the UI without manually checking for updates.
- Export hasSourceChanged() from pluginMarketplaceService for reuse
- Add 'outdated' and 'liveMarketplacePlugin' fields to IInstalledPluginItem
- Fetch marketplace data in AgentPluginsListView.show() to cross-reference
installed vs live versions and mark outdated plugins
- Add UpdatePluginAction to list view with live marketplace data
- Add UpdatePluginEditorAction to plugin editor with live marketplace data
- Both update actions re-register the plugin with updated metadata after
successful update so the UI immediately reflects the new version
- Read fresh installed metadata from pluginMarketplaceService.installedPlugins
store (not stale IAgentPlugin.fromMarketplace) for accurate version checks
- Pass 'silent' option to runInstall() to show non-blocking notification
instead of dialog when silent=true
- Re-register plugins with live data after updateAllPlugins() completes
so stored sourceDescriptor reflects new version/ref/sha
(Commit message generated by Copilot)
* pr comments and cleanup
* fix test failure
* Add telemetry imageAddon loaded
* edit descr
* add more individual telmetry from xterm.js api
* Make sure we have telemetry for setting AND image count
* changes to ensure all the network requests are passed through proxy
* changes to ensure all the network requests are passed through proxy
* changes to quote shell arguments passed to sandbox
* updates to default paths
* Updating regex to extract file name
We have two `MockChatService` classes. This makes updating the interface slow since you have to update both locations. The two also behave slightly differently
chore: update @vscode/codicons version to 0.0.45-14 in package.json and package-lock.json
Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
* refactor: update model management methods to use grouped model picker
* refactor: remove showManageModelsAction parameter from model picker functions
* refactor: streamline model picker item construction and improve readability
* refactor: reorganize model picker logic to support grouped model selection
* refactor: disable showManageModelsAction in NewChatWidget and simplify useGroupedModelPicker logic
* fix: increase viewport max height calculation in ActionList class
* feat: add hover position support to model picker and related components