Fix Gemini Plus plan display from loadCodeAssist paidTier#1980
Conversation
Consumer Gemini accounts (Google AI Pro/Ultra) still report currentTier free-tier. Mirror Gemini CLI setup and prefer paidTier.name for the displayed plan so Plus subscribers are not labeled Free. Fixes steipete#1972 Co-authored-by: Cursor <cursoragent@cursor.com>
|
Codex review: needs maintainer review before merge. Reviewed July 9, 2026, 2:22 AM ET / 06:22 UTC. Summary Reproducibility: no. high-confidence live reproduction for the exact reporter free-tier Plus payload is available. Current main source shows the Free fallback path, and the PR adds focused fixtures plus live paid-account proof for the Review metrics: none identified. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrow paidTier-name mapping after ordinary maintainer review and CI, preserving the existing Free, Workspace, Paid, Legacy, and blank fallbacks when Google does not send a paid-tier name. Do we have a high-confidence way to reproduce the issue? No high-confidence live reproduction for the exact reporter free-tier Plus payload is available. Current main source shows the Free fallback path, and the PR adds focused fixtures plus live paid-account proof for the Is this the best way to solve the issue? Yes. Preferring Google's AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against fc86568d15ff. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (4 earlier review cycles)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8a40a1f93
ℹ️ 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".
Live behavior proof (contributor account, redacted)Contributor has an active Google One AI Pro subscription. Captured from the contributor machine on 2026-07-08 (tokens/project IDs redacted).
|
|
🦞🧹 I asked ClawSweeper to review this item again. |
Live proof after
|
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Maintainer proof for exact head
CI is running against this exact head. The addressed standard-tier review thread is resolved. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 21c3cfb2f1
ℹ️ 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".
| guard let paidTier = json["paidTier"] as? [String: Any], | ||
| let rawName = paidTier["name"] as? String |
There was a problem hiding this comment.
Preserve paid-tier signals when names are omitted
When loadCodeAssist returns a paidTier object that has an id but no name, this parser returns nil, so resolveAccountPlan falls through to currentTier and can still display a paid consumer account as Free when currentTier.id is free-tier. Preserve paidTier.id or at least the presence of paidTier as a paid fallback when the specific display name is absent.
Useful? React with 👍 / 👎.
Summary
Fixes #1972.
Google AI Pro/Ultra consumer accounts still report
loadCodeAssist.currentTier.id == free-tier, so CodexBar was labeling paid Gemini subscribers as Free.This mirrors Gemini CLI setup behavior and prefers
paidTier.namefrom theloadCodeAssistresponse when mapping the displayed plan for personalfree-tieraccounts.Changes
paidTier.namefromloadCodeAssistinGeminiStatusProbedocs/gemini.mdtype_body_lengthTesting
swift test --filter GeminiStatusProbePlanTests(9/9 passed)swiftlint --stricton changed filesswiftformaton changed filesMade with Cursor