Summary
On Windows Codex Desktop 26.901.4073.0 (bundled CLI 0.153.1), exhausting the normal ChatGPT Codex quota activates Luna Reserve as expected, but the Desktop model picker then stops exposing other otherwise-available models. This includes custom/routed models backed by independent providers and independent quota.
This appears distinct from the existing Luna Reserve entitlement/write issues: the app-server still reports the custom models as visible and usable in model/list; the Desktop UI removes them only after Reserve mode becomes active.
Environment
- Windows 11 x64
- Codex Desktop: 26.901.4073.0
- bundled
codex-cli: 0.153.1
- ChatGPT authentication
- custom model catalog supplied through a local OpenAI-compatible router
Reproduction
- Start with normal Codex quota available. Custom/routed models are visible in the Desktop model picker.
- Exhaust the normal Codex quota.
- The account rate-limit state changes to normal Codex usage disallowed, while an additional
gpt-reserve (base_model_inference) bucket remains allowed and rate_limit_upsell.banner_type becomes luna_reserve.
- Luna Reserve activates.
- Open the Desktop model picker.
Actual
The picker is reduced to the Reserve/Luna model. Custom/routed models disappear and cannot be selected, even though the app-server's current model/list still returns them as visible and without lock/upgrade/availability restrictions.
For example, during the exhausted state I verified that model/list still returned routed models such as zai-coding/glm-5.3, zai-coding/glm-5.2, and zai-coding/glm-5-turbo as visible, alongside native models. The router's merged catalog also still marked those models visible.
Expected
Activating Luna Reserve should provide the native Reserve fallback without globally suppressing custom/provider-backed models that do not consume the exhausted native Codex quota. The picker should retain independently available models, or quota gating should be scoped only to models that actually depend on the exhausted Codex allowance.
Root-cause evidence
I reproduced this without sending an inference request. A read-only app-server probe showed:
- primary Codex rate-limit bucket: exhausted / disallowed
- additional
gpt-reserve bucket: allowed
- upsell banner type:
luna_reserve
model/list: custom/routed models still visible
I also inspected the packaged Desktop renderer logic. In the Luna Reserve-active branch, the picker first obtains the normal model list, then replaces that list with only the first Reserve/Luna entry. Separately, the composer model is overridden to gpt-reserve while Reserve is active. This explains why custom models remain present in the app-server catalog but disappear in Desktop.
The custom router has no Luna/Reserve-specific picker logic, and no catalog visibility mutation occurs when the quota transition happens.
Related issues
Potentially related but different behavior:
This report is specifically about Reserve activation globally collapsing the Desktop model picker and hiding independent custom/routed models.
Summary
On Windows Codex Desktop 26.901.4073.0 (bundled CLI 0.153.1), exhausting the normal ChatGPT Codex quota activates Luna Reserve as expected, but the Desktop model picker then stops exposing other otherwise-available models. This includes custom/routed models backed by independent providers and independent quota.
This appears distinct from the existing Luna Reserve entitlement/write issues: the app-server still reports the custom models as visible and usable in
model/list; the Desktop UI removes them only after Reserve mode becomes active.Environment
codex-cli: 0.153.1Reproduction
gpt-reserve(base_model_inference) bucket remains allowed andrate_limit_upsell.banner_typebecomesluna_reserve.Actual
The picker is reduced to the Reserve/Luna model. Custom/routed models disappear and cannot be selected, even though the app-server's current
model/liststill returns them as visible and without lock/upgrade/availability restrictions.For example, during the exhausted state I verified that
model/liststill returned routed models such aszai-coding/glm-5.3,zai-coding/glm-5.2, andzai-coding/glm-5-turboas visible, alongside native models. The router's merged catalog also still marked those models visible.Expected
Activating Luna Reserve should provide the native Reserve fallback without globally suppressing custom/provider-backed models that do not consume the exhausted native Codex quota. The picker should retain independently available models, or quota gating should be scoped only to models that actually depend on the exhausted Codex allowance.
Root-cause evidence
I reproduced this without sending an inference request. A read-only app-server probe showed:
gpt-reservebucket: allowedluna_reservemodel/list: custom/routed models still visibleI also inspected the packaged Desktop renderer logic. In the Luna Reserve-active branch, the picker first obtains the normal model list, then replaces that list with only the first Reserve/Luna entry. Separately, the composer model is overridden to
gpt-reservewhile Reserve is active. This explains why custom models remain present in the app-server catalog but disappear in Desktop.The custom router has no Luna/Reserve-specific picker logic, and no catalog visibility mutation occurs when the quota transition happens.
Related issues
Potentially related but different behavior:
This report is specifically about Reserve activation globally collapsing the Desktop model picker and hiding independent custom/routed models.