Codex App model selector lists 5.6 Luna twice
Open 💬 8 comments Opened Jul 24, 2026 by JavierPiedra
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.721.30844
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
The Codex App model selector displays two adjacent entries with the identical label "5.6 Luna".
The entries provide no information that distinguishes them. It is therefore unclear whether they represent the same model duplicated in the catalog or two different model variants with incorrect labels.
What steps can reproduce the bug?
- Open the Codex App.
- Start or open a conversation.
- Click the model selector.
- Inspect the available models.
- Observe that "5.6 Luna" appears twice as two separate adjacent entries.
Session ID:
019f91b4-021c-7002-8107-6077f94e25c5
What is the expected behavior?
The model selector should display "5.6 Luna" only once.
If the entries intentionally represent different model variants, each entry should have a distinct label explaining the difference.
Additional information
The issue is visible in the attached screenshot. Both entries use exactly the same visible label: "5.6 Luna".
8 Comments
<img width="274" height="235" alt="Image" src="https://github.com/user-attachments/assets/c1a0e3c0-efe8-48f8-9054-0261aed7122d" />
Also reproduced on Windows.
26.721.3996.0(Windows package)10.0.22631(build22631)5.6 Luna.5.6 Sol,5.6 Terra,5.5,5.4,5.4 Mini, and5.3 Codex Spark.The screenshot from this Windows installation is visually consistent with the original report. This indicates the issue is cross-platform rather than macOS-specific. As in the original report, the UI gives no way to tell whether this is one catalog entry rendered twice or two distinct variants sharing an incorrect display label.
I checked the current Windows catalog behind the picker. This is not one Luna row being rendered twice.
models_cache.jsoncontains two separatevisibility: listentries with the same display name, description, and reasoning levels:Their meaningful difference is in
model_messages:codex-auto-reviewincludes the automatic-approval / Guardian policy payload, while normal Luna does not. That makes this look like an internal reviewer lane leaking into the normal picker with Luna's display metadata.Filtering
codex-auto-reviewfrom the user model list would remove the ambiguity. If it is meant to remain selectable, it needs a distinct label and explanation.Also reproducible in the Codex CLI.
0.145.0/model→ All Models displays the expected public Luna option:``
text
``gpt-5.6-luna Fast and affordable agentic coding model.
codex-auto-review,/modelinstead opens a different top-level picker:```text
Select Model
Pick a quick auto mode or browse all models.
› 1. codex-auto-review (current) Fast and affordable agentic coding model.
```
This exposes the internal-looking
codex-auto-reviewslug as a normal coding-model choice, even though the normal model list presents the corresponding public model asgpt-5.6-luna.The local model catalogue contains both visible entries with the same display name, description, priority, and reasoning levels:
The two routes are not interchangeable in UI behavior: activating
codex-auto-reviewchanges/modelinto the “quick auto mode” screen, whilegpt-5.6-lunaremains the ordinary model-and-effort selection.Expected: the CLI should not expose
codex-auto-reviewas a user-selectable coding model; or, if intentional, it needs an explicit name and explanation of its automatic-approval/Guardian role.CLI workaround found: Codex supports a startup-only
model_catalog_jsonoverride.I generated a local full-catalog snapshot, retained the
codex-auto-reviewentry and all of its metadata, and changed only:This removes it from the user model picker while keeping it available in the catalogue for its approval-review role.
This is only a workaround, not a fix: the override pins the catalogue, so newly released/updated models will not appear until the local snapshot is regenerated or the override is removed. The default remotely supplied catalogue should hide this internal reviewer route itself.
Reproduced again on Windows, with additional evidence that the duplicate is introduced by the refreshed remote model catalog, not by the catalog bundled with the client.
Environment
26.721.11231.00.146.0-alpha.3.110.0.19044x64Bundled catalog
codex debug models --bundledreports:Refreshed catalog
Running
codex debug modelswithout--bundledreports:Both refreshed entries also have the same description, supported reasoning levels (
low, medium, high, xhigh, max), and service tier metadata.The local
config.tomlcontains onlymodel = "gpt-5.6-sol"and does not define a custom model provider or catalog. This isolates the regression to the remotely refreshed catalog metadata:codex-auto-reviewis being changed from a hidden internal entry named “Codex Auto Review” into a visible entry named “GPT-5.6-Luna”.The remote catalog should retain
visibility: hideforcodex-auto-reviewwhile keeping the route available for its internal reviewer role.Reproduced on Windows with the current Codex installation.
Environment:
Additional evidence:
The bundled catalog correctly reports:
gpt-5.6-luna GPT-5.6-Luna visibility=list
codex-auto-review Codex Auto Review visibility=hide
However, the refreshed catalog reports:
gpt-5.6-luna GPT-5.6-Luna visibility=list
codex-auto-review GPT-5.6-Luna visibility=list
Both refreshed entries have the same description, priority, reasoning levels, and service-tier metadata.
The local config does not define a custom model catalog or provider. This indicates that the duplicate model picker entry is introduced by the refreshed remote catalog metadata.
codex-auto-reviewshould remain hidden from the normal model picker, or it should have a distinct label explaining that it is an internal automatic-approval reviewer.Reproduced again on Windows, but with a different catalog state from the earlier reports.
Environment:
26.727.6591.00.146.0-alpha.9.2Observed behavior:
5.6 Luna.However, both the current refreshed catalog and the bundled catalog now report the correct metadata:
gpt-5.6-luna GPT-5.6-Luna visibility=list priority=3
codex-auto-review Codex Auto Review visibility=hide priority=43
The local config does not define
model_catalog_jsonor a custom model provider.This differs from earlier reproductions where the refreshed catalog incorrectly exposed
codex-auto-reviewas a visible Luna entry. In the current installation, the underlying catalog is already correct, but the Desktop picker still renders Luna twice.This suggests that the Desktop picker may retain stale catalog state, merge model sources without deduplicating them, or obtain one of its entries from a source not reflected by
codex debug models. Restarting the app does not clear the duplicate.Expected behavior:
gpt-5.6-lunaentry.codex-auto-reviewmetadata should not remain visible through stale UI state after the catalog has been corrected.