When chat.customizationsMenu.enabled is true (default):
- Gear icon directly opens the AI Customizations editor
- Tool Sets, Chat Settings, and Show Agent Debug Logs move to the '...' context menu
When the setting is false, the original gear dropdown behavior is preserved.
* Fix missing global flag in sanitizeId regex
The regex in sanitizeId was missing the 'g' flag, so only the first
occurrence of '.' or '/' was replaced with '_'. Since settings IDs
contain multiple dots (e.g. 'editor.font.size'), this meant subsequent
dots were left in the sanitized ID.
* Add regression test for sanitizeId global replacement
Export sanitizeId and add a test verifying that all occurrences of '.'
and '/' are replaced in generated tree element IDs, not just the first.
---------
Co-authored-by: Shehab Sherif <shehabsherif0@users.noreply.github.com>
* refactor: rename image carousel configuration and update related descriptions
also make default true
* update title
* fix: update image carousel title and description to "Images Preview"
This is how we should be registering slash commands. Not hard coding targets.
It would be a good exercise to apply when clauses to the rest of these in the future.
* Enhance regression handling in SessionsWelcomeContribution: delay overlay display to prevent flashing during transient state changes
* Refactor SessionsWelcomeContribution: replace regression watching with entitlement state monitoring to prevent flashing during transient state changes
* Refactor SessionsWelcomeContribution: replace regression timeout with pending overlay timer to prevent flashing during transient state changes
* Refactor SessionsWelcomeContribution: simplify entitlement state monitoring and remove overlay delay to improve responsiveness
* Refactor SessionsWelcomeContribution: change class visibility to export for better accessibility
* Add test for overlay visibility on first launch with no entitlement
* test(sessions): simplify instantiation service ownership in welcome tests
Address PR review: avoid redundant disposables.add() wrapping around
workbenchInstantiationService(), which already registers itself.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add generic badge support to customization list items
Instructions with applyTo patterns now show context info (e.g.
'always added', 'context matching *.ts') as an inline badge next to
the item name instead of baking it into the display name string. The
badge uses the same visual style as the MCP 'Bridged' badge.
The badge field is generic on IAICustomizationListItem so other
customization types can use it in the future. Badge text is also
included in search filtering.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Show pattern directly in badge with explanatory hover tooltip
Badge now shows just the applyTo pattern (e.g. '**/*.ts') or 'always
added', instead of 'context matching ...'. Hovering the badge shows a
tooltip explaining the behavior. Added badgeTooltip field to
IAICustomizationListItem for generic reuse.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Include badge tooltip in item hover
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add blank line before badge tooltip in hover
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address review: shared badge CSS, flex ellipsis fix, update spec
- Extract shared .inline-badge class used by both MCP bridged badge
and item badges to avoid style drift.
- Add min-width: 0 and flex: 1 1 auto to .item-name so long names
truncate correctly inside the flex row.
- Update AI_CUSTOMIZATIONS.md to reflect that badges show the raw
applyTo pattern with tooltip explanation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Keep badge adjacent to name instead of right-aligned
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Sessions: Replace Changes view badge with inline title count
Replace the NumberBadge on the Changes view tab with an inline title
that shows the file count directly, e.g. '7 Changes' instead of a
badge overlay.
- Export dynamic changesContainerTitle with a getter-based value
- Add refreshContainerInfo() to IViewContainerModel interface and
ViewContainerModel implementation
- Remove IActivityService/NumberBadge dependency from ChangesViewPane
* Fix incorrect file count by using topLevelStats
The inline title count was reading from activeSessionChangesObs (raw
session changes only) instead of topLevelStats which accounts for
deduplication and version mode filtering. Move the title update into
onVisible() where topLevelStats is available, and reset the title
when the view is hidden.
* Address review feedback
- Add blank line separator after changesContainerTitle block
- Add constructor-level fallback autorun to keep title in sync when
the view is hidden and the active session changes
- Reset title to 'Changes' on dispose to avoid stale counts
* Keep inline file count when switching tabs
Remove the updateContainerTitle(0) call from the hide handler so
the count persists when the user switches to another tab. The
fallback autorun in the constructor still handles session switches
while the view is hidden.
* Fix grammar: use singular '1 Change' instead of '1 Changes'
---------
Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>