diff --git a/CHANGELOG.md b/CHANGELOG.md index dc493ef..cc8b818 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.13.2] - 2026-09-14 + +### Fixed +- **The codex `small` and `medium` tiers run under a ChatGPT sign-in.** Both + resolved to `gpt-5.4-mini`, which codex rejects on every call when signed in + with a ChatGPT account: `The 'gpt-5.4-mini' model is not supported when using + Codex with a ChatGPT account.` They now resolve to `gpt-5.6-luna:low` and + `gpt-5.6-luna:medium`. `gpt-5.6-luna` is in the model list codex fetches for a + ChatGPT account and in the catalog bundled with the CLI for API-key auth, and + both mark it `supported_in_api`. `large` stays `gpt-5.5:medium`. + ## [0.13.1] - 2026-09-14 ### Fixed diff --git a/conformance/vectors/capabilities/capabilities.json b/conformance/vectors/capabilities/capabilities.json index a37c803..7cd9bb2 100644 --- a/conformance/vectors/capabilities/capabilities.json +++ b/conformance/vectors/capabilities/capabilities.json @@ -63,8 +63,8 @@ }, "codex": { "large": "gpt-5.5:medium", - "medium": "gpt-5.4-mini:medium", - "small": "gpt-5.4-mini:low" + "medium": "gpt-5.6-luna:medium", + "small": "gpt-5.6-luna:low" }, "gemini": { "large": "gemini-3-pro-preview", diff --git a/conformance/vectors/plan/codex-agent.json b/conformance/vectors/plan/codex-agent.json index ad775fd..949da24 100644 --- a/conformance/vectors/plan/codex-agent.json +++ b/conformance/vectors/plan/codex-agent.json @@ -5,7 +5,7 @@ "provider": "codex", "spec": { "prompt": "hi", - "model": "gpt-5.4-mini", + "model": "gpt-5.6-luna", "agent": true, "isolated": true, "timeout": 180, @@ -34,7 +34,7 @@ "--color", "never", "--model", - "gpt-5.4-mini", + "gpt-5.6-luna", "-c", "service_tier=fast", "--ignore-user-config", diff --git a/conformance/vectors/plan/codex-effort-suffix.json b/conformance/vectors/plan/codex-effort-suffix.json index 4795baf..d6b54bb 100644 --- a/conformance/vectors/plan/codex-effort-suffix.json +++ b/conformance/vectors/plan/codex-effort-suffix.json @@ -5,7 +5,7 @@ "provider": "codex", "spec": { "prompt": "hi", - "model": "gpt-5.4-mini:medium", + "model": "gpt-5.6-luna:medium", "agent": false, "isolated": true, "timeout": 180, @@ -34,7 +34,7 @@ "--color", "never", "--model", - "gpt-5.4-mini", + "gpt-5.6-luna", "-c", "model_reasoning_effort=medium", "-c", diff --git a/rust/conformance-gen/src/cases.rs b/rust/conformance-gen/src/cases.rs index 1cb1891..81657f4 100644 --- a/rust/conformance-gen/src/cases.rs +++ b/rust/conformance-gen/src/cases.rs @@ -363,13 +363,13 @@ fn plan_cases() -> Vec { "codex", RunSpec { agent: true, - ..spec("hi", "gpt-5.4-mini") + ..spec("hi", "gpt-5.6-luna") }, ), plan_case( "codex-effort-suffix", "codex", - spec("hi", "gpt-5.4-mini:medium"), + spec("hi", "gpt-5.6-luna:medium"), ), codex_cfg_case( "codex-service-tier-none", diff --git a/rust/spawnllm-core/src/route.rs b/rust/spawnllm-core/src/route.rs index 66855ec..d6f33ed 100644 --- a/rust/spawnllm-core/src/route.rs +++ b/rust/spawnllm-core/src/route.rs @@ -65,8 +65,8 @@ pub fn capabilities() -> Capabilities { "codex", ModelTiers { large: Some("gpt-5.5:medium"), - medium: Some("gpt-5.4-mini:medium"), - small: Some("gpt-5.4-mini:low"), + medium: Some("gpt-5.6-luna:medium"), + small: Some("gpt-5.6-luna:low"), }, ), ( diff --git a/spawnllm/backends/codex.py b/spawnllm/backends/codex.py index 7c6d30e..2e605ac 100644 --- a/spawnllm/backends/codex.py +++ b/spawnllm/backends/codex.py @@ -29,8 +29,8 @@ class CodexCliBackend(CliBackend): """ models: ClassVar[dict[TModel, str]] = { - "small": "gpt-5.4-mini:low", - "medium": "gpt-5.4-mini:medium", + "small": "gpt-5.6-luna:low", + "medium": "gpt-5.6-luna:medium", "large": "gpt-5.5:medium", } provider: ClassVar[ProviderName] = "codex" diff --git a/tests/test_backends.py b/tests/test_backends.py index c1b972e..f105bbd 100644 --- a/tests/test_backends.py +++ b/tests/test_backends.py @@ -361,8 +361,8 @@ def test_claude(self) -> None: def test_codex(self) -> None: assert CodexCliBackend().models == { - "small": "gpt-5.4-mini:low", - "medium": "gpt-5.4-mini:medium", + "small": "gpt-5.6-luna:low", + "medium": "gpt-5.6-luna:medium", "large": "gpt-5.5:medium", }