Skip to content

[Bug]: Codex segment hidden on single-window plans (prolite): weekly arrives as primary_window, secondary null → session=null #18445

Description

@dzvtr

Operating system

macOS 26.6.2 (build 25G83), Apple Silicon

Orca version

1.4.196

Details

Short summary

After my ChatGPT subscription changed to a plan whose token reports chatgpt_plan_type: "prolite", the Codex segment disappeared entirely from the status bar. Anthropic segments still render fine. The cause is not auth: the plan now returns only one rate-limit window (weekly), and Orca's window classifier keeps only ~300 min (session) and ~10080 min (weekly), so session ends up null and nothing is shown — even though the weekly percentage is known and would be displayable.

What happened?

The shape of rate_limits changed at the exact moment the plan changed. From my own Codex session logs (~/.codex/sessions/2026/09/03/rollout-*.jsonl), same machine, same day:

time primary secondary credits
08:47 used_percent: 15.0, window_minutes: 300 used_percent: 28.0, window_minutes: 10080 absent
09:52 used_percent: 66.0, window_minutes: 300 used_percent: 36.0, window_minutes: 10080 absent
10:0x null null present
11:00 onward used_percent: 4.0, window_minutes: 10080 null {has_credits: false, unlimited: false, balance: "0"}

So on this plan the weekly window arrives as primary_window, secondary_window is null, and a credits block appears.

Matching that against the shipped bundle (Contents/Resources/app.asar), the classifier is exact-match on two durations:

function Poi(e){ let t=e.windowDurationMins;
  return typeof t!=='number'||!Number.isFinite(t) ? null
    : Math.abs(t-300)<=Moi   ? 'session'
    : Math.abs(t-10080)<=Moi ? 'weekly'
    : null }

and the fetch path maps rate_limit.primary_window / rate_limit.secondary_window through it, then returns {session, weekly}. With only a weekly window present, session is null. The follow-up helper confirms session is expected to exist:

if (n?.signal?.aborted || e.session || !e.weekly) return e;   // fallback only when session missing

Expected

If only one window is returned, still render what is known — the weekly meter — instead of hiding the Codex segment completely. Ideally also surface the new credits block (balance), since on credit-based plans that is the number that matters.

Actual

No Codex segment at all in the status bar. Screenshot shows only the Anthropic ones:

5% used 4h 25m · 29% used 6d 7h · 29% used Fable

Ruled out

  • Not auth. ~/.codex/auth.json was refreshed the same day; the access token is valid for another 10 days and tokens.account_id is set. Voi() builds the Authorization / ChatGPT-Account-Id headers from exactly these fields.
  • Not the Codex CLI. Orca queries https://chatgpt.com/backend-api/wham/usage over HTTP itself, so a broken CLI cannot explain it. (Mine was in fact broken earlier that day — missing @openai/codex-darwin-arm64 — and reinstalling it changed nothing here, as expected.)
  • Not a stale cache. orca-codex-usage.json last scanned at 11:00:33 with lastScanError: null; that file tracks token counts, not rate limits.

Possibly related

#14489 reports the weekly Codex meter vanishing from the footer on 1.4.182. Same symptom, but that report attributes it to an app update; here the trigger is reproducibly the plan change, with the payload shape captured above. They may share a root cause.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions