Skip to content

Unify provider identity lists around the first-class registry - #970

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-5691-provider-identity-registry
Sep 13, 2026
Merged

Unify provider identity lists around the first-class registry#970
TheGreatAxios merged 2 commits into
mainfrom
cl-5691-provider-identity-registry

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • FIRST_CLASS_PROVIDERS is the canonical static registry for provider identity; the Codex/xAI live-fetch fallbacks stay separate and a divergence test pins their agreement
  • The ChatGPT-OAuth fallback default matches the OpenAI API-key path default, so both auth paths serving OpenAI resolve the same model
  • The same test covers the Zen and quirks catalogs, which resolve through the registry entry

Verification

  • bun run typecheck, bun run build, and bun run test pass
  • bun run check passes: 7138 pass, 0 fail across 489 files

Operator note: fresh ChatGPT-OAuth default flips gpt-5.5 → gpt-5.4 to match the OpenAI API-key path (CL-5691).

Fixes CL-5691

The ChatGPT-OAuth fallback defaulted to a different model than the OpenAI API-key path while both serve OpenAI, so the picker and the catalog disagreed per auth path. The live-fetch fallbacks stay separate - they back live calls - and a divergence test now pins the agreement instead of merging the lists.
@linear-code

linear-code Bot commented Sep 13, 2026

Copy link
Copy Markdown

CL-5691

@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Audit: Approve, no findings. The unification is sound: FIRST_CLASS_PROVIDERS is the canonical static registry, the Codex/xAI live-fetch fallbacks stay separate, and identity-divergence.test.ts pins their agreement, including the gpt-5.4 default alignment across both OpenAI-serving auth paths. Stored-default-guard evidence: applyPersistedOAuthDefaults (src/config/index.ts:113) folds any persisted settings.providers defaultModel into the projected registry entry, prepending it when unknown, so a stored default can neither silently revert nor dangle after this change. One-word nit applied and pushed as 1147b4a: this shim only renames -> this alias only renames in the xai constants comment, matching the Local alias header one line up.

@TheGreatAxios
TheGreatAxios merged commit 778b318 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