Skip to content

Show connected state plainly in the model picker - #973

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-5606-picker-connect-state
Sep 13, 2026
Merged

Show connected state plainly in the model picker#973
TheGreatAxios merged 2 commits into
mainfrom
cl-5606-picker-connect-state

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Collaborator

After a successful ChatGPT browser login the picker read as if still unconnected: the Alt+A row kept its login CTA, a legacy bare codex row duplicated the credential-backed codex/default entry, and connected rows showed a misleading unknown price.

Display-state only; no auth-flow changes.

  • Alt+A selector renders connected OAuth kinds as ' · N connected' instead of the browser-login CTA; rows stay listed so a second account remains reachable.
  • The live catalog merge drops a legacy bare codex/xai settings row once that family has a credential-backed profile entry; the bare row stays when nothing is connected.
  • Connected codex/ and xai/ picker rows state subscription billing instead of 'Pricing unknown'.

Fixes CL-5606

@linear-code

linear-code Bot commented Sep 13, 2026

Copy link
Copy Markdown

CL-5606

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Audit: NEEDS-WORK (colon-less id mis-parse)

Finding: describeModelCatalogOption (src/tui/model-catalog.ts:327) parses the provider with option.id.slice(0, option.id.indexOf(":")). For a colon-less id indexOf returns -1, so slice(0, -1) silently drops the last character and the row is priced/attributed to a truncated provider (e.g. the codex/ subscription-billing branch can miss). Fix: option.id.split(":")[0]-style exact parse, which returns the whole id when there is no colon. I will push this fix plus a colon-less regression test to this branch.

Confirmed (no change requested): the connected-state plain wording, the provider/model:model id shape for built rows, and the warning-override path all read correctly; only the provider parse needs the fix.

slice(0, indexOf(":")) drops the last character when the id has no colon, mis-attributing the row. split(":")[0] keeps the full id.
@TheGreatAxios
TheGreatAxios merged commit c2d3d30 into main Sep 13, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant