🤖 feat: add GPT-5.6 Sol/Terra/Luna models and move gpt alias to Sol#3702
🤖 feat: add GPT-5.6 Sol/Terra/Luna models and move gpt alias to Sol#3702ammar-agent wants to merge 7 commits into
Conversation
Adds OpenAI's GPT-5.6 preview family (previewed June 26, 2026): - Known-model registry entries with sol/terra/luna aliases (not warmed; bare gpt alias stays on gpt-5.5 until broad availability) - Token metadata with published preview pricing (Sol $5/$30, Terra $2.50/$15, Luna $1/$6 per 1M) incl. 90%-off cache reads and 1.25x cache writes; context window mirrors GPT-5.5 pending official specs - Thinking policy: 5 levels including xhigh (same as gpt-5.5) - Codex OAuth allowlist entries (preview ships via API and Codex) - Regenerated docs model table + built-in skill snapshot --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs= -->
GPT-5.6 went GA July 9, 2026. Verified via live API: all three tiers appear in /v1/models and complete Responses API calls with a plain API key. Sol succeeds gpt-5.5 as the flagship at the same list price, so the bare `gpt` alias moves there; gpt-5.5 stays selectable via its explicit id alias. Sol is now warmed. --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$10.12`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=10.12 -->
|
@codex review |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Per OpenAI's GA docs, GPT-5.6 adds two capabilities: 1. Native "max" reasoning effort for demanding tasks that need more exploration and verification. The thinking policy for GPT-5.6 tiers now exposes all 6 levels; on the Responses API we send "max" through (the SDK schema accepts arbitrary effort strings), while the Chat Completions path keeps the shared max→xhigh clamp (its enum rejects "max"). 2. reasoning.mode: "pro" — more model work for reliability on difficult tasks, returning a single final answer, for when quality matters more than latency and token usage. The SDK cannot send reasoning.mode, so it rides a Mux-internal header (mirroring the Anthropic xhigh effort rewrite) that the OpenAI fetch wrapper consumes: strips the header and injects reasoning.mode into the Responses body on the wire. Enable via muxProviderOptions.openai.reasoningMode or providers.jsonc openai reasoningMode: "pro"; gated per-model to the GPT-5.6 family, direct OpenAI routes, and the Responses wire format. Live-verified against the API: effort "max" and reasoning.mode "pro" complete on gpt-5.6-sol; gpt-5.5 rejects "max" (confirms gating). --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$14.25`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=14.25 -->
|
@codex review Added GPT-5.6 native |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 991009ec03
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Per review decision, GPT-5.6 pro mode (reasoning.mode: "pro") is removed from this PR. It belongs as a toggle inside the thinking slider rather than backend-only config plumbing; tracked in #3704. This also moots the Codex finding about provider-level pro mode being ignored by headless createModel() callers. Addresses the other Codex finding: getThinkingDisplayLabel now returns MAX (and getThinkingOptionLabel "max") for the max level on GPT-5.6 models, keeping the native max effort distinguishable from xhigh in the thinking slider and settings dropdowns. Other OpenAI models keep XHIGH for both levels since they clamp max→xhigh on the wire. --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$34.69`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=34.69 -->
|
Addressed both review findings in 75119b7:
|
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 75119b702a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex flagged that the 1.25x cache-write rate on GPT-5.6 entries is never applied: createDisplayUsage() only sources cacheCreateTokens from Anthropic provider metadata. Verified live that the Responses API does report input_tokens_details.cache_write_tokens, but @ai-sdk/openai (through at least 3.0.83) hardcodes cacheWrite: undefined and strips the field from its usage schema, so Mux cannot attribute the premium without SDK support. Bounded impact: 0.25x input rate on first-write tokens only; cache reads are costed correctly. Metadata is kept so pricing lights up automatically once the SDK surfaces cache-write usage. Tracked in #3705. --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$40.68`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=40.68 -->
|
Wire OpenAI cache-write tokens into GPT-5.6 pricing (PRRT_kwDOPxxmWM6PrtRN): verified and triaged as a real but currently-unfixable-in-Mux gap; documented in 30baf4b and tracked in #3705. Findings:
Resolution in this PR: a |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30baf4bd6d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex flagged that non-passthrough gateways rebuild reasoning params with their own effort maps (OpenRouter clamps max→high, Copilot→xhigh), so offering MAX in the thinking slider for e.g. openrouter:openai/gpt-5.6-sol would silently send a lower effort than promised. The GPT-5.6 policy now exposes all 6 levels only when the route delivers Mux-built openai providerOptions verbatim (direct openai or a PROVIDER_DEFINITIONS passthrough gateway); other routes keep the 5-level xhigh-capped policy. --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$46.88`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=46.88 -->
|
Gate native max to OpenAI Responses routes (PRRT_kwDOPxxmWM6Pr3GG): fixed in 6d233d7. The GPT-5.6 policy now exposes |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6d233d779c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex flagged that the policy-level route gate only inspects the model string, but routing can be decided at request time via routePriority/ overrides — openai:gpt-5.6-sol can resolve onto OpenRouter or Copilot, whose effort maps silently send high/xhigh for a selected MAX. New clampThinkingLevelForRoute() downgrades max→xhigh for GPT-5.6 when the resolved route is non-passthrough, applied in AIService right after route resolution (primary and fallback-model paths) so provider options, headers, replay transforms, and metadata all agree with what the wire can deliver. Mirrors the existing Mythos-class clamp precedent. xhigh is those routes' policy ceiling; their effort maps handle any further provider-side clamping. No-op for every other model since max and xhigh already share a wire value outside GPT-5.6. --- _Generated with `mux` • Model: `anthropic:claude-fable-5` • Thinking: `high` • Cost: `$54.12`_ <!-- mux-attribution: model=anthropic:claude-fable-5 thinking=high costs=54.12 -->
|
Gate GPT-5.6 max on the resolved route (PRRT_kwDOPxxmWM6Pr3GG follow-up, thread PRRT_kwDOPxxmWM6Pr-wp): fixed in fc03cbe. You're right that the policy gate only sees the model string while routePriority/overrides pick the route at request time. Added |
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |

Summary
Adds first-class support for OpenAI's GPT-5.6 family (Sol / Terra / Luna) and moves the bare
gptalias togpt-5.6-solnow that the family is generally available.Background
OpenAI previewed GPT-5.6 on June 26, 2026 and released it generally on July 9, 2026. The family introduces a new naming system: the number is the generation, while Sol (flagship), Terra (balanced), and Luna (fast/cheap) are durable capability tiers.
GA availability was verified against the live API with a plain API key: all three ids (
gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna) appear in/v1/modelsand successfully complete minimal Responses API calls (HTTP 200,status: completed).Implementation
knownModels.ts: three new registry entries withsol/terra/lunaaliases. Baregptalias moves fromgpt-5.5togpt-5.6-sol(Sol succeeds 5.5 as the flagship at the same list price);gpt-5.5stays selectable via its explicit id alias. Sol is warmed.models-extra.ts: published pricing — Sol $5/$30, Terra $2.50/$15, Luna $1/$6 per 1M tokens; cache reads keep the 90% discount and cache writes bill at 1.25x input. Context window mirrors GPT-5.5 (1.05M in / 128K out) as a documented provisional value — OpenAI hasn't published official context specs yet.thinking/policy.ts: GPT-5.6 tiers expose all 6 thinking levels including the documented nativemaxreasoning effort ("for demanding tasks that need more exploration and verification"). The Responses API path sendsmaxthrough as-is; Chat Completions clamps toxhigh(the SDK enum rejectsmax).maxrenders as MAX (native effort) whilexhighstays XHIGH; other OpenAI models keep XHIGH for both since they clamp max→xhigh on the wire.reasoning.mode: "pro") is deliberately not in this PR: it belongs as a toggle inside the thinking slider (it composes with effort rather than replacing it). Known gap, tracked in 🤖 feat: expose GPT-5.6 pro reasoning mode as a thinking-slider toggle #3704.codexOAuth.ts: all three tiers added toCODEX_OAUTH_ALLOWED_MODELSsince the family ships in both Codex and the public API.bun scripts/gen_docs.ts.Validation
/v1/modelslisting + successful Responses API smoke call per tier.reasoning.effort: "max"completes ongpt-5.6-soland thatgpt-5.5rejectsmax(confirms per-model gating).make static-check, typecheck, and 600+ registry/alias-dependent tests pass locally.Risks
Low. The riskiest bit is the
gptalias move: users relying ongptnow get Sol instead of GPT-5.5. Pricing is identical andgpt-5.5remains addressable, so blast radius is a model-behavior change only. Context-window metadata is provisional (mirrors GPT-5.5) until OpenAI publishes official specs; worst case is premature compaction, not request failures.Generated with
mux• Model:anthropic:claude-fable-5• Thinking:high• Cost:$10.12