Conversation
Codex 0.159 reports ChatGPT Pro 500 accounts as planType "promax". Our generated protocol decoded plan types as a closed enum, so account/read failed to decode and the provider showed as unavailable. Generate PlanType as an open string, matching how Codex itself reads plans it does not know, and label promax as ChatGPT Pro 500.
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrow Codex compatibility fix that prevents newly introduced plan identifiers from invalidating account and usage notifications, while preserving existing behavior and adding targeted coverage. The generated schema widening is backward-compatible and the only user-facing addition is the label for the Pro 500 plan. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe schema generator accepts plan values as strings. Tests cover ChangesCodex plan type handling
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No actionable issue was established with the new plan label. The change is mergeable after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The compatibility change restores access for accounts with new plan names. Inspected consumers use plan values for labels and usage information, not to grant permissions. Downstream integrations and deployment behavior remain unverified. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Superseded by #14304 (same fix: open PlanType string so promax/Pro Max accounts decode on account/read). |
Codex 0.159 reports ChatGPT Pro 500 accounts as
planType: "promax"(openai/codex#47971). Our generated app-server protocol decoded plan types as a closed list, soaccount/readfailed withInvalid payload for method 'account/read' during 'decode-payload'. The Codex provider went into an error state with no models, and onboarding asked a signed-in user to sign in again. The same decode silently droppedaccount/updatedandaccount/rateLimits/updated, so live usage for these accounts never updated. This is the second time a new plan broke the provider (#8447 added the Codex 0.150 plans).The generator now emits
PlanTypeas an open string, the same way Codex reads plans it doesn't know (#[serde(other)] Unknown), so a plan Codex adds later can't take the provider down. The regenerated protocol only changes thePlanTypedefinitions. Pro 500 (promax, 25x Plus usage) is labelled "ChatGPT Pro 25x Subscription", matching the existing Pro 5x and 20x labels.Ultrafast needs no client gating. Codex builds the model catalog per account and plan, so
model/listonly lists theultrafastservice tier for accounts that can use it, and the composer renders whatever tiers the catalog lists. On web, a saved Ultrafast choice falls back to the default tier once the catalog stops listing it.Validation: the new schema test fails on main and passes here. Focused Codex provider, usage-limit, and CLIProxyAPI tests pass (38), package and server typechecks pass, formatting passes, and targeted lint reports only existing warnings. A Codex review found no issues. Reproduced with the real Codex 0.159 binary and a sandboxed
CODEX_HOMEholding a Pro 500 login (a local stub stood in for the ChatGPT backend), then verified the fix in an isolated browser against a sandboxed dev server.Before:
After:
Model: Claude Opus 5.5. Harness: Claude Code in T3 Code.
Summary by CodeRabbit