Skip to content

fix(antigravity): show CLI-only Argon quota without duplicate effort rows - #7245

Draft
yuanyuanlove wants to merge 2 commits into
lidge-jun:devfrom
yuanyuanlove:feature-20261016-antigravity-argon-quota
Draft

yuanyuanlove wants to merge 2 commits into
lidge-jun:devfrom
yuanyuanlove:feature-20261016-antigravity-argon-quota

Conversation

@yuanyuanlove

Copy link
Copy Markdown
Contributor

Summary

  • Show Antigravity's CLI-only Gemini 4 Argon quota in detailed quota views even when the existing Gem/Cla summary succeeds. Reuse the fixed Google accounting endpoint and pinned transport with one optional CLI-User-Agent model-list read; only exact Argon model measurements are appended. A missing, denied, malformed or failed supplement preserves the usable family reading.
  • Display matching Argon Low/Medium/High effort readings once as gemini-4-argon. Group only matching normalized usage, reset and remaining window metadata; retain different readings and repeated same-wire windows. Never add or average values, infer backend bucket identity, or merge Argon into the existing Gem summary.
  • Reuse the existing modelId diagnostic discriminator and 256-model-row ceiling. Keep routing/headroom, exhaustion, reset notifications and family counters unchanged; close the reset-first consumer's missing diagnostic-row exclusion.
  • Add fixture regressions and update the provider/transport documentation. No GUI source, DTO fields, polling strategy or enhanced round-robin changes. This is independent of feat(codex): add opt-in quota-weighted account scheduling #7234.
  • Duplicate check: reviewed merged feat(antigravity): preserve diagnostic per-model quota evidence (carry #6718) #7163's actual Antigravity producer diff (fallback-only model evidence), merged feat: Gemini 4 Argon + per-account Antigravity lineup (CLI UA for Argon, 4.6/5.5 by account roster) #7071 (model/inference discovery; quota probe explicitly unchanged), and all 29 currently open PRs. Open feat(combos): opt-in advisory quota signals for JEV decisions (P1) #6814 concerns JEV decision signals, not this producer. None implements this missing CLI quota supplement plus effort-row grouping.

Verification

Bun 1.4.3, repository scripts/test.ts isolation, synthetic credentials and injected fixed/pinned transports only:

  • bun scripts/test.ts tests/providers/provider-antigravity-model-quota.test.ts tests/providers/provider-antigravity-quota-retry.test.ts ./gui/tests/provider-quota-model-id.test.ts — 50 passed, 0 failed, 175 assertions. Covers summary/fallback supplementation, exact Argon matching, alias grouping, differing/reset-less/invalid resets, nested metadata, repeated-window multiplicity, 256-row bounds, optional failures, primary auth denial, ranking/reset-first/exhaustion/observation isolation and existing GUI projection.
  • bun scripts/test.ts tests/providers/provider-account-quota.test.ts tests/providers/provider-quota.test.ts tests/ci-workflows/file-size-ratchet.test.ts --test-name-pattern 'google-antigravity per-account quota|google-antigravity Fake-IP TUN quota probes without HTTP proxy|paused generic OAuth accounts are never quota-probed|Google Antigravity|file-size ratchet' — 76 passed, 0 failed, 169 filtered, 472 assertions. Covers account separation/currentness/paused rows, fixed destinations, redirect/DNS/Fake-IP policy and size bounds.
  • bun run typecheck, bun run privacy:scan, bun run structure:check, git diff --check — passed on the final patch. The three script checks preceded a clean fast-forward over the GUI-only fix(gui): restore keep-native-v1 qualifier placement #7237 base commit; none of this PR's runtime, test or documentation files changed in that fast-forward.
  • Independent read-only review found no blockers in the cumulative nine-file patch.
  • User-authorized installed-runtime quota refresh on macOS confirmed the Argon DTO was present and matching effort rows became one row. No model-generation request was used for this check. Visual dashboard acceptance is not completed.

Scope exception / outstanding coverage: an earlier broad four-file backend invocation was stopped when an unrelated Kimi fixture attempted inherited SOCKS egress; it is not a completed or passing result. The full backend suite and import-graph-wide test:changed were not rerun; the reviewed fixed-transport allowlist above avoids that path. Full/cross-platform coverage remains for maintainer-started CI. No GUI build was needed because GUI files are unchanged; documentation-site build was not run because its dependencies are absent. This draft does not claim full-suite, docs-build or visual acceptance.

Base: upstream dev at 050bb444a0002372c08c19e6fcf5961004110868. No merge or deployment is requested by this PR.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Review readiness checklist

This PR stays in draft until every box below is ticked.

  • Required local validation passed; commands, results, and any full-suite exception are documented.
  • I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
  • I resolved all correct Codex and CodeRabbit findings.
  • My PR is ready for review.

Supplement usable family quota with bounded, display-only Argon measurements using the CLI User-Agent. Collapse identical effort-alias readings without combining differing windows or influencing reset-first ranking.
@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the intake: hygiene-blocked Deterministic PR hygiene checks failed label Oct 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Deterministic hygiene checks failed.

  • unsponsored_surface — This changes an authentication, workflow, release-automation, or dependency surface. MAINTAINERS.md requires security review for these; ask a maintainer to apply maintainer-sponsored once they have reviewed it. Paths: src/oauth/account-quota-rank.ts.

@github-actions github-actions Bot added the bug Something isn't working label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • review readiness checklist open (0/4 boxes ticked).

What to do

  • Tick all four boxes in the PR description once you're done (currently 0/4).

Review readiness checklist

  • ⬜ Required local validation passed; commands, results, and any full-suite exception are documented.
  • ⬜ I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
  • ⬜ I resolved all correct Codex and CodeRabbit findings.
  • ⬜ My PR is ready for review.

0/4 boxes ticked.

This PR stays in draft until every box above is ticked.

@lidge-jun

Copy link
Copy Markdown
Owner

Heads-up from #7283 (fixes #7272), which touches src/providers/quota/antigravity.ts too:

  • The summary parser now emits the dedicated Gemini 4 Argon group as Argon / Argon (Weekly) windows tagged modelId: "gemini-4-argon". With that, this PR's withArgonMeasurements skip condition (customWindows.some(modelId && isArgon)) is already true whenever the summary succeeds, so the extra CLI-User-Agent read only runs on the model-list fallback path.
  • classifyAntigravityFamily now returns null for Argon models, so an Argon-first model list no longer seeds the Gem family. The "IDE Argon ladder" test here, which expects { label: "Gem", percent: 80 } from an Argon-first list, will need its expectation updated when the two branches meet.
  • Both PRs add the same w.modelId === undefined filter in accountResetTimestamp.

Whichever lands second should reconcile those points and test the combined tree, including that an untagged gemini-4-argon label does not suppress the supplement. #7283 does not modify this branch.

Reconcile the canonical Argon summary pool with optional CLI diagnostics,
preserve effort-window grouping, and cover model-tag-only supplement suppression.

Validation: 134 focused tests passed with Bun 1.4.3; typecheck, privacy scan,
and structure checks passed. Full backend, test:changed, docs build and visual
validation were not run. The PR remains draft.
@github-actions github-actions Bot removed the intake: hygiene-blocked Deterministic PR hygiene checks failed label Oct 18, 2026
@Ingwannu

Copy link
Copy Markdown
Owner

Re-triage at 5ee7960171 against dev 8640c2f30edb: #7283 already supplies model-attributed Argon summary windows. The current hasAntigravityArgonMeasurements predicate correctly makes this extra CLI-fingerprint request a fallback only when those exact measurements are absent; a display label alone must not suppress it. Please keep the newer summary path/no-extra-call control authoritative, reconcile older Gem-family expectations, and retain full-window metadata when deduplicating effort rows. Optional-probe refusal must preserve the useful initial quota snapshot and stay separate from inference eligibility. This remains Draft with no functional hosted CI in the current rollup; no account probe or client fingerprint experiment was run here.

This branch has not been deployed

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

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants