Repository navigation
Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR changes production usage pricing by mapping Antigravity effort variants to rate-table models and correcting merged-record pricing state. Because it affects billing/metering behavior, and the supplied unresolved Medium finding concerns alias-merge pricing, human review is warranted. Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. 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 (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe Antigravity usage reader recognizes additional model IDs and derives a base rate model from supported model variants. Usage records and merged aliases retain their existing model-selection behavior and include the derived rate model. ChangesAntigravity Usage Model Mapping
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The mapping change is mergeable after normal checks; no unresolved pricing failure is established. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change affects estimated usage prices, not the identified access controls or deployment behavior. No introduced security issue was established, although the assessment does not cover every upstream access path. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
What Changed
apps/server/src/usage/antigravityUsageReader.ts:MODEL_IDS(1020, 1072, 1073, 1132, 1133, 1187, 1298, 1299, 1301, 1318, 1319, 1320, 1322, 342). Names are the ones Antigravity itself writes next to each ID in conversation metadata.rateModelon Antigravity records, likecursorRateModelalready does for Cursor: the effort/routing suffix (-low,-medium,-high,-extra-low,-tiered,-control,-thinking,-agent) is stripped for pricing only, sogemini-3.8-flash-highkeeps its name but prices asgemini-3.8-flash.gemini-3-flashresolves togemini-3-flash-preview, matching the existing IDs 1018/1047/1084.Why
On Usage, most Antigravity tokens show as Unpriced. The ID table stops at Gemini 3.1 Pro / 3 Flash, so current models fall through to
antigravity-model-<id>, and name-based records carry variant suffixes that the LiteLLM table does not list.On my data (1,028 Antigravity conversation stores) about 1.5B tokens were unpriced, mostly
antigravity-model-1319(796M) and-1318(347M); the header read "API estimate excludes 38.7% unpriced records". With this change they price at the base model. Names that do not identify a generation (gemini-pro-default,gemini-default) and IDs without a recorded name stay unpriced on purpose.Verification
usageTranscriptReader.test.tscovers an ID-only step (1319, 1132) and a name-only generation (Gemini 3.7 Flash Control), asserting display model andrateModel. It fails without the reader change.vp test run src/usage/inapps/server: 7 files, 109 tests passed.tsc --noEmit: clean.vp fmt --check: clean.Checklist
🤖 Generated with Claude Code (Claude Opus 5.5, driven from T3 Code)
Summary by CodeRabbit