Skip to content

Pro Spark five-hour quota is shown as a generic account window #4017

Closed

Description

@cb8010d6

This was generated by AI during triage.

Client or integration

OpenCodex dashboard (Codex account quota cards)

Area

Authentication and account pool

Summary

On Pro accounts, the five-hour quota returned inside the GPT-5.3-Codex-Spark additional rate limit is displayed as the generic account five-hour window. The Spark-specific five-hour window should stay model-scoped and be shown as GPT-5.3-Codex-Spark 5h, alongside its Spark weekly window.

The WHAM payload can contain account-level primary/secondary windows and an additional GPT-5.3-Codex-Spark limit with its own five-hour primary and weekly secondary. The parser kept the Spark weekly window but dropped the Spark five-hour window.

Reproduction

  1. Use a Pro WHAM response whose account-level primary window is weekly and whose additional GPT-5.3-Codex-Spark limit contains a five-hour primary plus a weekly secondary.
  2. Refresh the account quota.
  3. Open the Codex account quota cards.
  4. Observe that the Spark five-hour usage is not represented under the Spark label.

Expected:

  • Account-level five-hour usage remains in the generic five-hour fields when explicitly reported.
  • Spark five-hour usage is shown as GPT-5.3-Codex-Spark 5h.
  • Spark weekly usage is shown as GPT-5.3-Codex-Spark Weekly.
  • The Spark visibility setting hides or reveals both Spark-specific rows together.
  • Other providers' custom quota windows remain unchanged.

Version

2.48.0

Operating system

Windows

Provider and model

ChatGPT Codex account pool / GPT-5.3-Codex-Spark

Logs or error output

No error is emitted; this is a quota-window attribution/display mismatch.

Screenshots and supporting files

Not included; the reproduction uses synthetic, redacted WHAM window data.

Redacted configuration

No provider URL, credential, account identifier, or local path is required.

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

  1. github-actions commented on Sep 8, 2026

    @github-actions
    Contributor

    Issue reopened

    The report now contains the information required by the automated check. Thanks for updating it.

  2. lidge-jun commented on Sep 8, 2026

    @lidge-jun
    Owner

    리뷰 · 우선순위 58 / 80

    이 이슈는 Pro 요금제 Codex 계정 카드에서 Spark 전용 5시간 창이 일반 계정 5시간처럼 보이거나, Spark 라벨 아래로 안 올라오는 표시 오류다. 지금 dev HEAD는 29bb221c3(패키지 2.49.0, tip 문서 머지 #4021)이고, 제품 tip은 여전히 #4002 계열의 auth/routing·quota 축이다. WHAM 응답에는 계정 단위 primary/secondary와 별도로 GPT-5.3-Codex-Spark additional limit가 있을 수 있다. 현재 src/codex/quota.ts의 parseUsageQuota는 Spark 쪽에서 weekly 후보만 customWindows에 넣고, Spark 5시간 primary는 버린다. 그래서 카드·집계 표면에서는 Spark weekly만 보이고, Spark 5시간 사용량이 계정 일반 5시간 자리로 섞이거나 아예 빠질 수 있다. 이슈가 말하는 재현(계정 primary=weekly, Spark additional에 5h+weekly)은 그 파서 모양과 정확히 맞는다.

    왜 지금 우선도가 중간 이상인가. Spark 창은 이미 showCodexSparkQuota로 기본 숨김이고, src/codex/auth-api.ts의 withSparkVisibility / CODEX_SPARK_WINDOW_LABEL은 라벨 문자열 한 개(GPT-5.3-Codex-Spark Weekly)만 걸러낸다. 즉 “보이기/숨기기” 스위치와 라우팅이 쓰는 custom window 경계는 weekly 한 줄에 맞춰져 있다. 5시간 Spark 창을 살리면 표시뿐 아니라 visibility 필터·문서·i18n 힌트까지 같이 손봐야 한다. 그래도 Pro 카드가 틀린 창을 보여 주면 운영자가 풀 전환을 잘못 판단할 수 있어서, 순수 문서 이슈보다 높다.

    현재 HEAD에서 관련 경로를 짚으면: parseUsageQuota는 Spark weekly만 quota.customWindows = [sparkWindow]로 고정하고, auth-api.ts는 그 라벨만 숨긴다. GUI 힌트(gui/src/i18n/en.ts 등)도 “weekly window”만 말한다. 계정 일반 5h/weekly 필드는 그대로 두고 Spark만 모델 스코프 custom window로 올리는 방향이 이슈 Expected와 맞다. types.ts/config.ts 대분할에 바로 무효화될 성격은 아니고, 중복 이슈로 바로 닫을 다른 open도 이 스냅샷에서는 보이지 않는다. 이미 고치려는 draft PR #4018이 열려 있다.

    라인 src/codex/quota.ts Spark customWindows - 지금 파서는 Spark weekly만 남기고 5시간 Spark primary를 버린다. 이슈 Expected대로 5h를 GPT-5.3-Codex-Spark 5h로 따로 올려야 한다.
    라인 src/codex/auth-api.ts CODEX_SPARK_WINDOW_LABEL - visibility 필터가 weekly 라벨 하나만 본다. 5h 라벨을 추가하지 않으면 스위치 off여도 Spark 5h 줄이 카드에 남을 수 있다.
    경로 gui/src/i18n/* codexAuth.sparkQuotaHint - 문구가 weekly만 언급한다. 5h+weekly를 같이 보여 주기로 하면 힌트도 맞춰야 한다.
    경로 PR #4018 - 이 이슈를 Closes로 묶은 draft 수정이 이미 있다. 이슈만 따로 재구현할 필요는 없다.

    메인테이너의 판단이 필요한 지점

    너의 추천
    이슈 자체는 유효하다. 새 구현을 기다리지 말고 #4018을 다듬어 랜딩한 뒤 이 이슈를 닫아라. #4018이 막히거나 방향이 바뀌면 그때 이 이슈를 help wanted로 남겨라. types/config 분할 때문에 버릴 대상은 아니다.

    이 댓글은 grok-bot이 작성했습니다

  3. added a commit that references this issue on Sep 8, 2026
    9587750
  4. lidge-jun commented on Sep 8, 2026

    @lidge-jun
    Owner

    Fixed on dev in 9587750 (via #4051, carrying #4018 by @cb8010d6).

    One correction to the report while closing it, so the record is accurate: the Spark five-hour reading was not being shown as the generic account window — it was being dropped entirely. shortPercent is populated only from data.rate_limit.primary_window and never reads additional_rate_limits, so a Spark window could not land in the generic 5h field. The actual defect was that sparkWeekly was the only selector and it excludes short windows, so a Spark sub-day window matched nothing and never reached customWindows. A probe with both an account-level 5h and a Spark 5h confirmed shortPercent stays on the account value.

    The four outcomes you asked for are delivered: the Spark 5h window now parses as its own labeled row alongside Spark Weekly, both are filtered by the same showCodexSparkQuota gate (default off, so a default account card is byte-identical), and the model-scoped window cannot become a global account signal.

    Closing manually because pull requests here target dev, and GitHub only auto-closes on merge into main.

  5. lidge-jun commented on Sep 8, 2026

    @lidge-jun
    Owner

    Landed via #4051 at 9587750

  6. added a commit that references this issue on Sep 17, 2026
    c28998d
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

    account-poolOAuth, credentials, Codex pool, quota, failover, plansbugSomething isn't workinglanded-via-maintainerOriginal PR closed after landing via a maintainer merge train

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions