[Desktop] Model picker shows only 2 reasoning tiers for custom catalog model (DeepSeek V4 Flash) although catalog and app-server resolve 3 (low/high/max)

Resolved 💬 2 comments Opened Aug 3, 2026 by JINGMINGRUO Closed Aug 3, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

Codex Desktop's model picker shows only 2 reasoning tiers for a custom-catalog model (DeepSeek V4 Flash) even though both the on-disk catalog and the app-server model resolution declare 3 tiers (low / high / max). The data pipeline is correct; only the desktop frontend renders a reduced set. Same-day report from another routing tool (borawong/AiMaMi#102, identical app version) shows the same symptom, with the task capability snapshot reporting high / xhigh.

Environment

  • Codex Desktop: Microsoft Store package OpenAI.Codex 26.727.6591.0 (Windows x64)
  • codex client: 0.146.0-alpha.9.2
  • OS: Windows 11
  • Custom provider via cc-switch v3.19.1, wire_api = responses, direct https://api.deepseek.com

Model catalog declaration

~/.codex/cc-switch-model-catalog.json (loaded via model_catalog_json in config.toml) declares:

{
  "slug": "deepseek-v4-flash",
  "default_reasoning_level": "low",
  "supported_reasoning_levels": [
    { "effort": "low",  "description": "Fast responses with lighter reasoning" },
    { "effort": "high", "description": "Extra high reasoning depth for complex problems" },
    { "effort": "max",  "description": "Maximum reasoning depth for the hardest problems" }
  ]
}

This matches DeepSeek's official Codex integration docs.

Verified data side (correct)

codex debug models run against the exact binary the desktop spawns as app-server resolves the model correctly — 3 reasoning levels, default low. So the model/list data delivered to the desktop contains all 3 tiers.

Actual behavior (desktop frontend)

After a full quit and relaunch of Codex Desktop, a brand-new thread selecting DeepSeek V4 Flash shows only 2 reasoning tiers in the picker. low is not exposed (or the set is replaced by a fallback such as high / xhigh).

Expected behavior

The picker should show the 3 tiers declared in the catalog (low / high / max), consistent with what the app-server resolves.

Repro steps

  1. Configure a custom provider with model_catalog_json pointing at a catalog whose model declares supported_reasoning_levels: [low, high, max] (e.g. DeepSeek V4 Flash official template).
  2. Fully quit and relaunch Codex Desktop.
  3. Create a new thread, select the custom model, open the reasoning-tier picker.
  4. Only 2 tiers are shown instead of the declared 3.

Notes

No API keys, tokens, or private paths are included in this report.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 25 days ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #36648

Powered by Codex Action

JINGMINGRUO · 25 days ago

Acknowledged as a duplicate of #36648. Agreeing with the conclusion there: the mismatch stems from the third-party routing tool's generated catalog rather than standalone Codex Desktop. The root cause for the cc-switch-generated catalog is tracked at farion1231/cc-switch#6058. Closing this issue to reduce noise.