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?

  1. Open the Codex App.
  2. Start or open a conversation.
  3. Click the model selector.
  4. Inspect the available models.
  5. 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".

View original on GitHub ↗

8 Comments

JavierPiedra · 1 month ago

<img width="274" height="235" alt="Image" src="https://github.com/user-attachments/assets/c1a0e3c0-efe8-48f8-9054-0261aed7122d" />

tjehdaud1004-prog · 1 month ago

Also reproduced on Windows.

  • Codex App: 26.721.3996.0 (Windows package)
  • OS: Microsoft Windows 11 Pro, version 10.0.22631 (build 22631)
  • Reproduced: 2026-07-24
  • The model picker shows two adjacent entries labeled exactly 5.6 Luna.
  • The surrounding entries are 5.6 Sol, 5.6 Terra, 5.5, 5.4, 5.4 Mini, and 5.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.

ifBars · 1 month ago

I checked the current Windows catalog behind the picker. This is not one Luna row being rendered twice.

models_cache.json contains two separate visibility: list entries with the same display name, description, and reasoning levels:

{ slug: gpt-5.6-luna, display_name: GPT-5.6-Luna }
{ slug: codex-auto-review, display_name: GPT-5.6-Luna }

Their meaningful difference is in model_messages: codex-auto-review includes 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-review from the user model list would remove the ambiguity. If it is meant to remain selectable, it needs a distinct label and explanation.

jask-aran · 1 month ago

Also reproducible in the Codex CLI.

  • Codex CLI: 0.145.0
  • Platform: Linux
  • Normal /modelAll Models displays the expected public Luna option:

``text
gpt-5.6-luna Fast and affordable agentic coding model.
``

  • However, after the active route changes to codex-auto-review, /model instead 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.

  1. All models Choose a specific model and reasoning level

```

This exposes the internal-looking codex-auto-review slug as a normal coding-model choice, even though the normal model list presents the corresponding public model as gpt-5.6-luna.

The local model catalogue contains both visible entries with the same display name, description, priority, and reasoning levels:

{ "slug": "gpt-5.6-luna", "display_name": "GPT-5.6-Luna", "visibility": "list" }
{ "slug": "codex-auto-review", "display_name": "GPT-5.6-Luna", "visibility": "list" }

The two routes are not interchangeable in UI behavior: activating codex-auto-review changes /model into the “quick auto mode” screen, while gpt-5.6-luna remains the ordinary model-and-effort selection.

Expected: the CLI should not expose codex-auto-review as a user-selectable coding model; or, if intentional, it needs an explicit name and explanation of its automatic-approval/Guardian role.

jask-aran · 1 month ago

CLI workaround found: Codex supports a startup-only model_catalog_json override.

I generated a local full-catalog snapshot, retained the codex-auto-review entry and all of its metadata, and changed only:

{ "slug": "codex-auto-review", "visibility": "hide" }

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.

zyzhen · 28 days ago

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

  • Codex App: 26.721.11231.0
  • Embedded Codex CLI: 0.146.0-alpha.3.1
  • OS: Windows 10 Enterprise 10.0.19044 x64
  • Reproduced: 2026-07-31 (UTC+8)

Bundled catalog

codex debug models --bundled reports:

gpt-5.6-luna       GPT-5.6-Luna       visibility=list  priority=3
codex-auto-review  Codex Auto Review  visibility=hide  priority=43

Refreshed catalog

Running codex debug models without --bundled reports:

codex-auto-review  GPT-5.6-Luna  visibility=list  priority=3
gpt-5.6-luna       GPT-5.6-Luna  visibility=list  priority=3

Both refreshed entries also have the same description, supported reasoning levels (low, medium, high, xhigh, max), and service tier metadata.

The local config.toml contains only model = "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-review is 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: hide for codex-auto-review while keeping the route available for its internal reviewer role.

Antony-Jia · 27 days ago

Reproduced on Windows with the current Codex installation.

Environment:

  • Codex CLI: 0.146.0-alpha.3.1
  • Date: 2026-07-31 (UTC+8)

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-review should remain hidden from the normal model picker, or it should have a distinct label explaining that it is an internal automatic-approval reviewer.

lwchang018 · 27 days ago

Reproduced again on Windows, but with a different catalog state from the earlier reports.

Environment:

  • Codex App package: 26.727.6591.0
  • Codex CLI: 0.146.0-alpha.9.2
  • Platform: Windows 11 x64
  • Reproduced: 2026-08-01

Observed behavior:

  • The model selector still shows two adjacent entries labeled exactly 5.6 Luna.
  • The issue persists after fully quitting and restarting the Codex App.

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_json or a custom model provider.

This differs from earlier reproductions where the refreshed catalog incorrectly exposed codex-auto-review as 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:

  • The picker should display only the single visible gpt-5.6-luna entry.
  • Hidden codex-auto-review metadata should not remain visible through stale UI state after the catalog has been corrected.