devlog: quota-window and backlog roadmap (260826) - #2644
Conversation
Docs-only roadmap cycle for a seven-phase loop. No runtime change.
The unit exists because Codex re-introduced the 5-hour rate-limit window for
Plus and Team while Pro stays weekly-only, and OpenCodex has two quota parsers
that disagree about what a short window means. Proven live rather than
inferred: identical upstream data yields {weeklyPercent:97} from the header
parser and {shortPercent:97, weeklyPercent:12} from the WHAM parser.
The audit is the reason this is worth reading. Three rounds with an
independent reviewer turned a one-file plan into a two-file one: fixing
parseUpstreamQuotaHeaders alone would have moved routing headroom for a
5h-exhausted account from 0.03 to 0.88, because src/routing/quota.ts omits
shortPercent and is currently reading the burst value only by accident through
the very bug the fix removes. That finding, and four others, are recorded in
001_audit_response.md along with one partial rebuttal about phase ordering.
Phases: 010 header parser + routing fold, 020 Spark hidden by default behind a
Codex Auth switch, 030 #2406 CommandCode image capabilities, 040 #1215
noProxy, 050 #1060 billing-period date, 060 evidence-backed closures, 070
backlog triage.
|
✅ Deterministic PR hygiene checks passed. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
📝 WalkthroughWalkthroughThe PR adds a seven-phase remediation roadmap. It covers Codex quota parsing, Spark quota visibility, CommandCode modalities, proxy configuration, provider credits, issue closure evidence, and backlog triage. ChangesQuota and backlog remediation
Estimated code review effort: 2 (Simple) | ~15 minutes Suggested reviewers: ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 46ed165c48
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| bun test tests/codex-auth-api.test.ts | ||
| cd gui && bun test # 994+ pass, 0 fail | ||
| bun run typecheck # exit 0 |
There was a problem hiding this comment.
Run the root typecheck outside the GUI directory
When this verification block is run as written in Bash, cd gui persists for the next line, so bun run typecheck executes against gui/package.json rather than the repository root. I checked that exact command locally: Bun exits 1 with Script not found "typecheck", so the phase cannot complete and the required root typecheck never runs. Put the GUI test in a subshell, return to the root, or use an explicit working-directory flag before invoking the root scripts.
AGENTS.md reference: AGENTS.md:L178-L180
Useful? React with 👍 / 👎.
| **`gui/src/components/CodexAccountPool.tsx`** — header control + optimistic state, following | ||
| the existing `refreshQuotas` / `pauseExhausted` handler shape. | ||
|
|
||
| **i18n** — `codexAuth.showSparkQuota` + tooltip in all nine locale files. Note the parser |
There was a problem hiding this comment.
Document the new Spark quota default and switch
This phase changes user-visible behavior by removing the Spark quota row by default and introduces a persistent showCodexSparkQuota setting, but its modification map stops at the GUI and locale catalogs. Existing users consulting the documentation—including the provider guide that already discusses Spark quota behavior—will have no explanation for the disappearing row or how to restore it. Add the switch and its default-off semantics to the relevant docs-site configuration/provider documentation, keeping translated pages consistent.
AGENTS.md reference: AGENTS.md:L279-L280
Useful? React with 👍 / 👎.
Summary
Docs-only roadmap for a seven-phase loop. No runtime change.
The unit exists because Codex re-introduced the 5-hour rate-limit window for Plus and Team while Pro stays weekly-only, and OpenCodex has two quota parsers that disagree about what a short window means. Proven live rather than inferred — identical upstream data, both parsers:
parseUpstreamQuotaHeaders(quota.ts:344) has only a monthly-vs-else branch, so anything not explicitly monthly becomes weekly. The comment above its call site records the now-stale premise: "primary was the 5h window; it now carries weekly data for GPT plans." True while the window was gone; false again now.The audit is the part worth reading. Three rounds with an independent reviewer turned a one-file plan into a two-file one. Fixing the parser alone would have moved routing headroom for a 5h-exhausted account from 0.03 to 0.88, because
src/routing/quota.tsomitsshortPercentand currently reads the burst value only by accident — through the very bug the fix removes. The bug is cancelling itself out, and a naive fix removes one half of the cancellation.Round 1 returned FAIL with five blockers, all verified and folded; round 2 NEAR-PASS with four consistency findings, all fixed; round 3 PASS. Recorded in
001_audit_response.md, including one partial rebuttal about phase ordering.Phase map
routing/quota.tsfoldnoProxyVerification
bun test tests/repo-hygiene.test.ts— 11 pass, 0 faildevlog/_plan/260826_quota_window_and_backlog/are touched, which is the docs-only cycle contract. Nothing in the build, typecheck, or test path reads fromdevlog/.No GUI change, so no screenshot applies.
Checklist
Summary by CodeRabbit
noProxysetting.