co-authored by claude opus 4.6
Model picker shows opaque id instead of human-readable name
When using custom providers where model IDs are opaque (e.g. deployment IDs like dep123abc), the model picker (Ctrl+P) displays these raw IDs as the primary label. This makes it impossible to distinguish between models at a glance.
The picker already has a name field available on each model, but it only surfaces it as a detail line ("Model Name: ...") below the list when a model is highlighted.
Current behavior:
→ dep123abc [my-provider]
dep456xyz [my-provider]
dep789def [my-provider]
Model Name: Some Readable Name
Expected behavior:
When name is set and id appears to be an opaque identifier, prefer name as the primary display label:
→ Some Readable Name [my-provider]
Another Model [my-provider]
Third Model [my-provider]
Suggested heuristic: If name is explicitly set in the model config (i.e. not just falling back to id), use name as the picker display text. This would let custom model entries opt in by setting name, without changing the display for built-in models where id is already human-readable.
Location: model-selector.js — the list rendering uses item.id unconditionally for the display text.
co-authored by claude opus 4.6
Model picker shows opaque
idinstead of human-readablenameWhen using custom providers where model IDs are opaque (e.g. deployment IDs like
dep123abc), the model picker (Ctrl+P) displays these raw IDs as the primary label. This makes it impossible to distinguish between models at a glance.The picker already has a
namefield available on each model, but it only surfaces it as a detail line ("Model Name: ...") below the list when a model is highlighted.Current behavior:
Expected behavior:
When
nameis set andidappears to be an opaque identifier, prefernameas the primary display label:Suggested heuristic: If
nameis explicitly set in the model config (i.e. not just falling back toid), usenameas the picker display text. This would let custom model entries opt in by settingname, without changing the display for built-in models whereidis already human-readable.Location:
model-selector.js— the list rendering usesitem.idunconditionally for the display text.