Skip to content

Model picker shows opaque id instead of human-readable name #3587

@charles-cooper

Description

@charles-cooper

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions