Model picker clips model and provider names in 0.1.6, with no way to see the full name, provider, or slug#29099

opened2d agobyMmdmdj

What happened

In desktop 0.1.6 the composer model picker puts each model on one line. Names clip to a few characters ("DeepSeek V...", "GLM-5.3-...") and the provider label clips too ("OpenC..."). Hovering a row shows no tooltip, the docked Reasoning column header repeats the clipped name, and no surface shows the provider instance name or the model slug. Models sharing a prefix are indistinguishable. The latest nightly adds a hover title for the model name only; provider and slug are still missing. 0.1.5 showed the name on its own line.

Image

Diagnosis

v0.1.6 merged #28057, which replaced two-line rows with a one-line row and added the docked effort column. ModelPickerContent caps the popup at max-w-90 (22.5rem); ModelPickerSidebar takes w-11 (2.75rem), leaving about 19.75rem. ModelListRow reserves the icon, Ctrl+N keycap, star and check columns, so the model name and provider label share about 11rem and both use min-w-0 truncate. providerDisplayName is rendered only in an sr-only span, with no title or tooltip. ComposerModelEffort truncates the same model label with no tooltip. The slug is never rendered in the picker. #28409 (nightly only, first in 0.1.7-nightly.20261102.4061) adds a title on the clipped model name only. v0.1.5 kept the model name on its own line.

Steps to reproduce

  1. Desktop app 0.1.6 against a local 0.1.6 server; open a thread.
  2. Open the model picker (Ctrl+Shift+M).
  3. Pick a provider with long model names, e.g. OpenCode Go (DeepSeek V4.1 Flash, GLM-5.3-..., Muse Spark ...).
  4. Each row shows a clipped model name and a clipped provider label.
  5. Hover a row and the Reasoning column header: on 0.1.6 no full text appears.
  6. On 0.1.5 the name had its own line and fit.

Version

0.1.6 (desktop app; local server also 0.1.6)

Environment

Linux x64, WSL2 (6.6.87.2-microsoft-standard-WSL2); desktop app 0.1.6 against local 0.1.6 server; t3 triage CLI 0.1.6, Node v26.12.1

Evidence

shell
1Row labels: "DeepSeek V..." "OpenC..." Ctrl+1; "GLM-5.3-..." "OpenCod..." Ctrl+2; "Muse Spark ..." "Open..." Ctrl+4. Reasoning header: "DeepSeek V4....".
2Source: apps/web/src/components/chat/ModelListRow.tsx (one-line row, sr-only provider, no title); ModelPickerContent.tsx (max-w-90); ModelPickerSidebar.tsx (w-11); ComposerModelEffort.tsx (~line 314); ProviderModelPicker.tsx (effort column w-48).

#28057 (cause), #28409 (nightly-only partial fix), #28076 (same release), #26940 (similar truncation class), #18342 (provider settings, closed)

Fix applied or workaround

None in the UI on 0.1.6. The latest 0.1.7 nightly shows the model display name on hover when the name is clipped.

Filed by

OpenCode (DeepSeek V4.1 Flash) via t3 triage

Synced from GitHub

Adding a Windows reproduction from T3 Code 0.1.7, affecting both local models and GPT models routed through CLIProxyAPI.

The primary model name and grey secondary provider/model label share one narrow row. Both become ellipsized, so several different models are visually indistinguishable. Claude rows without that secondary label are much easier to read.

Local models and Favorites

Qwen local-model rows and proxy GPT rows lose their identifying suffixes while the grey text, favorite star, selection mark, and keyboard shortcut also occupy the row:

Windows T3 0.1.7 Favorites with clipped Qwen local-model and CLIProxyAPI GPT names

CLIProxyAPI model list

Multiple entries collapse to similar GPT-... / GPT-5... labels beside clipped CLIProxyAPI ... text:

Windows T3 0.1.7 proxy model list with indistinguishable clipped primary names

Requested layout

Prioritize the full primary model name in the row. Move grey secondary details to a tooltip or another on-demand surface, while retaining accessible provider identification and the selection, favorite, and shortcut controls. Allow sufficient width or wrapping for names that still do not fit. Please cover Favorites, search results, and individual-provider tabs as well as grouped lists.

The installed 0.1.7 bundle still contains the model-name truncate class and a sibling subProvider span with min-w-0 shrink truncate text-xs text-muted-foreground/70, corresponding to apps/web/src/components/chat/ModelListRow.tsx.

The hover fix in #29140 would help reveal hidden details, but it does not make the primary names readable at a glance. The grouping approach in #30801 also appears relevant, though its retained secondary labels outside grouped rows would leave these other picker views exposed to the same space pressure.