Repository navigation
[cherry-pick] [cherry-pick] chat: use trophy icon for model comparison toggle - #342738
Closed
vs-code-engineering[bot] wants to merge 1 commit into
Closed
vs-code-engineering[bot] wants to merge 1 commit into
vs-code-engineering[bot] wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved conflicts block compilation, and their resolution must preserve shortcut labels and correct the affected tests.
3 open issues
1 file not reviewed
remote/web/package-lock.json: Generated file
What changed in this PR
Cherry-picks the trophy-based model comparison UI into VS Code’s chat model picker.
Changes:
- Updates codicons and registers the trophy glyph.
- Uses one trophy for comparisons and adds theme-aware selected styling.
- Removes per-attempt icon plumbing and updates regression tests.
| File | Description |
|---|---|
src/vs/workbench/contrib/chat/test/browser/widget/input/modelPicker/modelPickerTabbedWidget.test.ts |
Adds toggle appearance and state assertions; contains conflicts. |
src/vs/workbench/contrib/chat/test/browser/widget/input/modelPicker/modelPickerActionItem.test.ts |
Tests single-trophy rendering, accessible labels, and reset. |
src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerWidget.ts |
Simplifies comparison rendering to one trophy. |
src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabbedWidget.ts |
Changes the toggle icon; contains a conflict. |
src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerComparison.ts |
Removes the per-attempt icon contract. |
src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/media/modelPicker.css |
Adds selected styling and removes obsolete icon styling. |
src/vs/sessions/contrib/chat/browser/sessionComparisonModelSelection.ts |
Removes unused icon-summary data. |
src/vs/base/common/codiconsLibrary.ts |
Registers the trophy glyph. |
remote/web/package.json |
Updates the web codicons dependency. |
remote/web/package-lock.json |
Locks the updated web dependency. |
package.json |
Updates the root codicons dependency. |
package-lock.json |
Locks the updated root dependency. |
Review effort: Balanced
| icon: Codicon.layers, | ||
| tooltip: this._labelWithKeybinding(comparison.label, comparison.startCommandId), | ||
| ======= | ||
| icon: Codicon.trophy, |
Comment on lines
+769
to
+775
| <<<<<<< HEAD | ||
| icon: Codicon.layers, | ||
| tooltip: this._labelWithKeybinding(comparison.label, comparison.startCommandId), | ||
| ======= | ||
| icon: Codicon.trophy, | ||
| tooltip: comparison.label, | ||
| >>>>>>> bd48520ea99 ([cherry-pick] chat: use trophy icon for model comparison toggle (#342710)) |
| }; | ||
| assert.deepStrictEqual({ | ||
| actions: [...popup.querySelectorAll<HTMLElement>('.tabbed-action-list-tabbar > .tabbed-action-list-tabbar-action')].map(action => action.dataset.id), | ||
| <<<<<<< HEAD |
Dmitriy Vasyura (dmitrivMS)
approved these changes
Oct 19, 2026
roblourens
approved these changes
Oct 19, 2026
roblourens
approved these changes
Oct 20, 2026
Dmitriy Vasyura (dmitrivMS)
approved these changes
Oct 20, 2026
Alexandru Dima (alexdima)
requested changes
Oct 20, 2026
Alexandru Dima (alexdima)
left a comment
Member
There was a problem hiding this comment.
conflict markers!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Cherry-pick of #342710 from
release/1.143.<<<<<<</=======/>>>>>>>) are committed to the branch — check it out locally, resolve, and force-push.Conflicting files:
src/vs/workbench/contrib/chat/browser/widget/input/modelPicker/modelPickerTabbedWidget.tssrc/vs/workbench/contrib/chat/test/browser/widget/input/modelPicker/modelPickerTabbedWidget.test.tsPorts #342688 to release/1.143.
Summary
Winner displays and metric badges are unchanged. The existing copy-codicons build task supplies the updated font.
Release branch adaptation
The production changes cherry-picked cleanly. release/1.143 does not contain newer main-only model picker tests that the first two source commits modified, so the equivalent trophy, accessible pressed-state, selected theme colors, and stable-dimension assertions were added to the release branch's existing comprehensive comparison picker test. The adapted assertion re-queries the live action after toggling because the release picker replaces that DOM node when entering comparison setup.
Validation
Manual test
With model comparison enabled in the Agents window, open the new-session model picker. Confirm the trophy appears beside Search. Activate it and verify the selected fill and border remain visible after moving the pointer away, aria-pressed is true, and the control does not shift size. Configure multiple attempts and confirm the composer shows exactly one trophy while hover and accessible text still list the configured models and variants. Activate the trophy to edit the comparison, then reset the comparison and confirm the normal model label returns.