feat: rename Codex OAuth provider label to "ChatGPT or Codex Subscription"

Renames the openai-codex provider's display label across the CLI
(hermes model picker, provider labels), the dashboard OAuth accounts
catalog, and the Desktop onboarding + settings provider pickers.
Slug, aliases, and auth flows are unchanged.
This commit is contained in:
Teknium 2026-08-13 01:59:48 -07:00
parent ecdc25cacc
commit 94be919411
5 changed files with 9 additions and 9 deletions

View File

@ -86,13 +86,13 @@ describe('onboarding Picker', () => {
const labels = screen
.getAllByRole('button')
.map(el => el.textContent ?? '')
.filter(text => /Nous Portal|Fireworks AI|OpenAI OAuth|MiniMax|OpenRouter/.test(text))
.filter(text => /Nous Portal|Fireworks AI|ChatGPT or Codex|MiniMax|OpenRouter/.test(text))
const indexOf = (needle: string) => labels.findIndex(text => text.includes(needle))
expect(indexOf('Nous Portal')).toBeGreaterThanOrEqual(0)
expect(indexOf('Fireworks AI')).toBeGreaterThan(indexOf('Nous Portal'))
expect(indexOf('OpenAI OAuth')).toBeGreaterThan(indexOf('Fireworks AI'))
expect(indexOf('MiniMax')).toBeGreaterThan(indexOf('OpenAI OAuth'))
expect(indexOf('ChatGPT or Codex')).toBeGreaterThan(indexOf('Fireworks AI'))
expect(indexOf('MiniMax')).toBeGreaterThan(indexOf('ChatGPT or Codex'))
})
it('shows every provider directly when Nous Portal is absent', () => {
@ -101,7 +101,7 @@ describe('onboarding Picker', () => {
expect(screen.getByText('Fireworks AI')).toBeTruthy()
expect(screen.getByText('Anthropic API Key')).toBeTruthy()
expect(screen.getByText('OpenAI OAuth (ChatGPT)')).toBeTruthy()
expect(screen.getByText('ChatGPT or Codex Subscription')).toBeTruthy()
expect(screen.queryByText('Other sign-in options')).toBeNull()
expect(screen.queryByText('Recommended')).toBeNull()
})

View File

@ -5,7 +5,7 @@ import type { OAuthProvider } from '@/types/hermes'
const PROVIDER_DISPLAY: Record<string, { order: number; title: string }> = {
nous: { order: 0, title: 'Nous Portal' },
'openai-codex': { order: 1, title: 'OpenAI OAuth (ChatGPT)' },
'openai-codex': { order: 1, title: 'ChatGPT or Codex Subscription' },
'minimax-oauth': { order: 2, title: 'MiniMax' },
'qwen-oauth': { order: 3, title: 'Qwen Code' },
'xai-oauth': { order: 4, title: 'xAI Grok' },

View File

@ -1123,7 +1123,7 @@ CANONICAL_PROVIDERS: list[ProviderEntry] = [
ProviderEntry("novita", "NovitaAI", "NovitaAI (Cloud: Model API, Agent Sandbox, GPU Cloud)"),
ProviderEntry("lmstudio", "LM Studio", "LM Studio (Local desktop app with built-in model server)"),
ProviderEntry("anthropic", "Anthropic", "Anthropic (Claude models via API key or Claude Code)"),
ProviderEntry("openai-codex", "OpenAI Codex", "OpenAI Codex (Codex CLI via ChatGPT subscription or API key)"),
ProviderEntry("openai-codex", "ChatGPT or Codex Subscription", "ChatGPT or Codex Subscription (Sign in with your ChatGPT account, uses Codex models)"),
ProviderEntry("openai-api", "OpenAI API", "OpenAI API (api.openai.com, API key)"),
ProviderEntry("alibaba", "Qwen Cloud", "Qwen Cloud / DashScope (Qwen + multi-provider)"),
ProviderEntry("xai-oauth", "xAI Grok OAuth (SuperGrok / Premium+)", "xAI Grok OAuth (SuperGrok / Premium+ subscription)"),
@ -1207,7 +1207,7 @@ PROVIDER_GROUPS: dict[str, tuple[str, str, list[str]]] = {
"minimax": ("MiniMax", "Global, OAuth Coding Plan & China endpoints", ["minimax", "minimax-oauth", "minimax-cn"]),
"xai": ("xAI Grok", "Direct API or SuperGrok / Premium+ OAuth", ["xai", "xai-oauth"]),
"google": ("Google Gemini", "Google AI Studio (API key)", ["gemini"]),
"openai": ("OpenAI", "Codex CLI or direct OpenAI API", ["openai-codex", "openai-api"]),
"openai": ("OpenAI", "ChatGPT/Codex subscription or direct OpenAI API", ["openai-codex", "openai-api"]),
"qwen": ("Qwen", "Qwen Cloud / DashScope, Coding Plan & Qwen CLI OAuth", ["alibaba", "alibaba-coding-plan", "qwen-oauth"]),
"opencode": ("OpenCode", "Zen pay-as-you-go or Go subscription", ["opencode-zen", "opencode-go"]),
"copilot": ("GitHub Copilot", "GitHub token API or copilot --acp process", ["copilot", "copilot-acp"]),

View File

@ -413,7 +413,7 @@ ALIASES: Dict[str, str] = {
_LABEL_OVERRIDES: Dict[str, str] = {
"moa": "Mixture of Agents",
"nous": "Nous Portal",
"openai-codex": "OpenAI Codex",
"openai-codex": "ChatGPT or Codex Subscription",
"copilot-acp": "GitHub Copilot ACP",
"stepfun": "StepFun Step Plan",
"xiaomi": "Xiaomi MiMo",

View File

@ -9835,7 +9835,7 @@ _OAUTH_PROVIDER_CATALOG: tuple[Dict[str, Any], ...] = (
},
{
"id": "openai-codex",
"name": "OpenAI OAuth (ChatGPT)",
"name": "ChatGPT or Codex Subscription",
"flow": "device_code",
"cli_command": "hermes auth add openai-codex",
"docs_url": "https://platform.openai.com/docs",