Skip to content

feat(antigravity): display Gemini and third-party Claude/GPT rate limits - #17551

Closed
arkfx wants to merge 1 commit into
pingdotgg:mainfrom
arkfx:feat/antigravity-models-and-limits
Closed

arkfx wants to merge 1 commit into
pingdotgg:mainfrom
arkfx:feat/antigravity-models-and-limits

Conversation

@arkfx

@arkfx arkfx commented Oct 9, 2026 •

Copy link
Copy Markdown

Problem

Antigravity users cannot see their subscription allowances in T3's Usage → Limits view. Gemini and third-party models have distinct five-hour/weekly buckets; Claude and GPT share the third-party allowance. Users who have native Claude models available through ACP should also see their model family without mistaking it for a separate Anthropic provider account.

This draft combines quota visibility and native Opus/Sonnet presentation under the Antigravity provider. It does not unlock Claude on the stock Google ACP 1.3.0 runtime. Google's client allowlist remains an external dependency, described below.

Change

  • Read v1internal:retrieveUserQuotaSummary directly from Google's Cloud Code API with the personal Google credentials in the T3 instance's own ACP profile. No Antigravity desktop process, local service or IDE credential database is required. Access tokens stay in memory; the probe does not write credentials.
  • Preserve Google's native bucket IDs, remaining fractions and reset timestamps. Show the actual Gemini and shared Claude/GPT allowances; do not estimate quotas from token consumption or model-name heuristics. An omitted protobuf scalar fraction means zero remaining, and disabled buckets are omitted. Unrecognized future buckets remain visible.
  • Run serialized quota reads in the provider scope without delaying local health checks or starting a turn. Retain the last good result on a same-credential failure; clear limits/token cache on sign-out; discard late results after an auth revision changes. A different credential cannot inherit a previous account's successful quota snapshot.
  • Group Gemini and Claude & GPT inside a bordered Antigravity section on web/desktop and mobile, with model-family glyphs and “via Antigravity” labels. The shared allowance is not relabeled as an Anthropic subscription. Provider tabs and account identity stay Antigravity.
  • Add current metadata for the six native Opus/Sonnet 5.5 low/medium/high IDs, preserve their separate ACP IDs/default selection, and show the Claude glyph in picker rows/composer selections. Availability still comes exclusively from the runtime's native catalog; metadata does not manufacture model access.

The only shared provider-core change is an opt-in enrichmentOwnsUsageLimits switch: Antigravity's asynchronous account-quota snapshots must be able to publish/clear limits. Other providers keep the existing protection against enrichment overwriting live runtime notifications. No wire-schema migration, new RPC, global provider default, Codex CLI change, or modified managed-runtime download is included.

Google ACP runtime dependency — disclosed local experiment

Issue #15378 identifies the upstream distinction: agy models/the IDE's model list does not establish availability through ACP. T3 already preserves the native models it receives. The official ACP 1.3.0 runtime filters/rejects third-party models for client names outside its supported editor allowlist.

The working local prototype used a separately patched Google executable, selected through T3's existing manual binary-path setting. In Google's bundled google3.cloud.developer_experience.antigravity_extensions.acp_server.model_selection.supports_third_party_models, the source change was:

-  return client.is_jetbrains or client.is_zed or client.is_xcode
+  return (client.is_jetbrains or client.is_zed or client.is_xcode
+          or client.name.lower() in {"t3-code", "t3-code-provider-setup", "t3-code-text"})

This recognizes T3's real chat, setup and text-generation identities. It does not report another editor's identity or change the account's subscription entitlements. Both model discovery and model selection use that compatibility predicate. The experiment replaced the bundled Python module/source inside a local PyInstaller executable; the original executable was retained.

That executable/repacking machinery is not shipped by this PR. Google-managed archives, hashes, installer behavior and T3's ACP client identities remain unchanged. The attached source delta is diagnostic evidence, not an installer patch. For stock-runtime Claude availability, Google must support these client identities, or maintainers must explicitly choose another supported integration direction. I have not established Google's approval of the local runtime modification and am not claiming official support or terms approval.

Review path and existing work

  1. antigravityUsageLimits.ts and its tests: direct quota request, credential isolation and safe parsing.
  2. AntigravityProvider.ts/tests and managedProvider.ts: asynchronous publication, failure retention and account lifecycle.
  3. Shared usage grouping → web/mobile presentation; native model metadata and picker glyphs.

Related work, with attribution:

Scope and approval

The contributor requested one combined draft because model visibility and the separate shared allowance describe the same Antigravity account experience. There is no explicit maintainer approval for this combined direction/scope yet. The linked issues and historical Idea are not presented as approval, and draft status is not treated as an exemption from CONTRIBUTING.md. Please confirm scope and the Google runtime direction before considering this ready; maintainers may prefer to land an existing quota proposal or request a smaller scope.

Verification

Windows x64; Node 24.19.0; rebased onto upstream main 33806e73555107b8ac8fb18fd15b9dfb87ec6557.

  • 152 focused tests passed; 11 process-spawn tests skipped by their Windows guards, across quota reader, Antigravity provider/ACP/driver, model manifest/catalog, managed provider, shared quota presentation, web icon behavior and mobile model selection. Held-response tests establish that health refresh completes while quota HTTP is pending and old-account results cannot survive sign-out/re-authentication. The full focused test output is attached.
  • Targeted lint: 0 errors. Existing React warnings in the two mobile composer files remain; the changes there only pass the selected model to the glyph. Package typechecks passed for server, web, mobile, shared and provider-core. git diff --check passed. No repo-wide checks were run.
  • Live execution of this branch's TypeScript quota reader against Google returned all four native windows, with reset times, using an isolated copy of T3's ACP profile. The sanitized quota result omits credentials/fingerprint. No desktop-service call is made by this path.
  • Fresh ACP connection checks against the local compatibility-patched Google 1.3.0 runtime, with T3's real setup identity and an isolated profile, successfully selected Opus 5.5 Medium and Sonnet 5.5 Medium. Each returned exactly ACP_OK, end_turn, zero tool events. The sanitized runtime evidence and executable hashes and exact source allowlist delta are attached. These checks are not evidence of stock-runtime Claude support.

Focused test command:

vp test run \
  apps/server/src/provider/antigravityUsageLimits.test.ts \
  apps/server/src/provider/AntigravityProvider.test.ts \
  apps/server/src/provider/ModelManifest.test.ts \
  apps/server/src/provider/acp/AntigravityAcpSupport.test.ts \
  apps/server/src/provider/Drivers/AntigravityDriver.test.ts \
  packages/provider-core/src/server/managedProvider.test.ts \
  packages/provider-core/src/server/ModelCatalog.test.ts \
  packages/shared/src/usageLimits.test.ts \
  apps/web/src/components/chat/ProviderInstanceIcon.test.ts \
  apps/mobile/src/lib/modelOptions.test.ts

Screenshots — working local prototype

These screenshots were supplied by the user from the working installed prototype. They are not screenshots of a clean source-branch build. The quota prototype image was refreshed on October 9, 2026 and shows the current layout after removal of the explanatory subtitle. The quota screenshots are cropped to the application area to exclude the Windows taskbar; their contents are otherwise unchanged. Percentages reflect each screenshot's capture time and differ from the separate live verification results.

Before: no Antigravity limits Prototype: both groups owned by Antigravity
Before limits Grouped prototype limits
Before: provider glyph on every model Prototype: Claude model glyph, Antigravity tab
Before picker After picker

Native Antigravity quota UI reference. All evidence is uploaded to the contributor fork's evidence-only prerelease, outside the source tree; it contains no application or Google executable.

Pending verification: integrated source-branch browser/native UI pass, other operating systems, enterprise/API-key/Vertex billing paths, and stock-runtime Claude execution. The repository's test-t3-app skill requires its built-in Browser-panel tools and says to stop verification when those tools are absent; they were unavailable in this session. Personal Google subscription quotas are implemented; unsupported auth methods report that limits are unavailable. No other billing path is claimed tested.

Agent: Codex (GPT-6 family), OpenAI Codex desktop harness.

Read personal Google subscription quotas without requiring the desktop IDE,
preserve account ownership across asynchronous refreshes, and group Gemini
and shared third-party allowances under Antigravity on web and mobile.

Classify the native Opus/Sonnet 5.5 variants and show Claude model glyphs
while preserving the Antigravity provider identity and ACP-owned availability.

Quota probe and initial integration adapted from Maseeek's PR pingdotgg#17530.
Native model metadata adapted from ZainNawaz22's PR pingdotgg#15232.
The managed Google runtime remains unmodified; its allowlist dependency
is disclosed in the PR rather than shipped as a repacked binary.

Co-authored-by: Maciek Geneja <88164545+Maseeek@users.noreply.github.com>
Co-authored-by: Zain <i221085@nu.edu.pk>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Oct 9, 2026
@arkfx arkfx closed this Oct 9, 2026
@arkfx arkfx changed the title feat(antigravity): group subscription limits and native Claude models feat(antigravity): display Gemini and Claude/GPT subscription rate limits Oct 9, 2026
@arkfx arkfx changed the title feat(antigravity): display Gemini and Claude/GPT subscription rate limits feat(antigravity): display Gemini and third-party Claude/GPT rate limits Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant