diff --git a/frontend/workspace/src/context/model-catalog.ts b/frontend/workspace/src/context/model-catalog.ts index 0cf606a8..84c58e91 100644 --- a/frontend/workspace/src/context/model-catalog.ts +++ b/frontend/workspace/src/context/model-catalog.ts @@ -42,6 +42,11 @@ export const FRONTIER_MODELS = new Set([ "openai/gpt-5-6-terra-pro", "openai/gpt-5-6-luna", "openai/gpt-5-6-luna-pro", + "openai-codex/gpt-5-4", + "openai-codex/gpt-5-5", + "openai-codex/gpt-5-6-luna", + "openai-codex/gpt-5-6-sol", + "openai-codex/gpt-5-6-terra", "xai/grok-4-5", "xai/grok-4-20-multi-agent", "meta/muse-spark-1-1", diff --git a/frontend/workspace/src/context/models-catalog.test.ts b/frontend/workspace/src/context/models-catalog.test.ts index ed964a08..f85c688c 100644 --- a/frontend/workspace/src/context/models-catalog.test.ts +++ b/frontend/workspace/src/context/models-catalog.test.ts @@ -4,6 +4,7 @@ import { displayProviderForModel, foldedRouteMode, FRONTIER_MODELS, + isFrontier, preferredModel, preferredModels, routableModelKey, @@ -78,6 +79,13 @@ describe("frontier model canonicalization", () => { ]) }) + test("shows ChatGPT subscription models with Fast mode in the default picker", () => { + for (const modelID of ["gpt-5.4", "gpt-5.5", "gpt-5.6-luna", "gpt-5.6-sol", "gpt-5.6-terra"]) { + expect(isFrontier({ providerID: "openai-codex", modelID })).toBe(true) + } + expect(isFrontier({ providerID: "openai-codex", modelID: "gpt-5.4-mini" })).toBe(false) + }) + test("stale direct model selections route to managed OpenRouter aliases when present", () => { const available = new Set([ "openrouter:anthropic/claude-opus-4.8",