Skip to content

[Bug]: Antigravity Gemini 4 Argon weekly limit shows 100% used when cloudcode-pa overwrites daily-cloudcode-pa #32419

Open

Description

@jamesdchen

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. Sign in to Antigravity in T3 Code with a personal Google account (oauth-personal, non-GCP-ToS consumer tier such as Google AI Pro) where daily-cloudcode-pa.googleapis.com has remaining gemini-argon-wtu-weekly quota, while cloudcode-pa.googleapis.com reports remainingFraction: 0 for gemini-argon-wtu-weekly.
  2. Refresh provider status / inspect ~/.t3/caches/antigravity.json (usageLimits.windows) or Usage → Limits.
  3. Start or continue an Antigravity thread using gemini-4-argon (Gemini 4 Argon).

Expected behavior

T3 Code reports the gemini-argon-wtu-weekly usage and reset timestamp from the endpoint that the Antigravity ACP runtime actually uses for the account (https://daily-cloudcode-pa.googleapis.com for personal/consumer accounts, e.g. 13.77% used / 86.23% remaining), matching the active session's real quota.

Actual behavior

T3 Code reports gemini-argon-wtu-weekly as 100% used (usedPercent: 100, resetsAt: "2026-11-08T18:27:14.000Z"), even though gemini-4-argon turns succeed normally and have 86.23% weekly quota remaining on the active endpoint (resetsAt: "2026-11-14T08:41:35Z").

Live comparison on the same account

Calling POST /v1internal:retrieveUserQuotaSummary with T3's exact header (User-Agent: antigravity/hub/2.24.0 (aidev_client; os_type=windows; arch=x64; cl=963137146)) and { "project": "aicode-consumers" } against both hosts in ENDPOINTS:

Bucket (bucketId) https://daily-cloudcode-pa.googleapis.com (used by ACP runtime) https://cloudcode-pa.googleapis.com (prod/enterprise host) Cached by T3 (antigravity.json)
gemini-argon-wtu-weekly remainingFraction: 0.8623059 (13.77% used)
resetTime: "2026-11-14T08:41:35Z"
remainingFraction: 0 (100% used)
resetTime: "2026-11-08T18:27:14Z"
usedPercent: 100
resetsAt: "2026-11-08T18:27:14.000Z"
gemini-weekly remainingFraction: 0.9985355 (0.15% used)
resetTime: "2026-11-08T19:45:35Z"
remainingFraction: 0.9985355 (0.15% used)
resetTime: "2026-11-08T19:45:35Z"
usedPercent: 0.14645
resetsAt: "2026-11-08T19:45:35.000Z"
gemini-5h remainingFraction: 1 (0% used) remainingFraction: 1 (0% used) usedPercent: 0
3p-weekly remainingFraction: 0 (100% used)
resetTime: "2026-11-08T19:50:37Z"
remainingFraction: 0 (100% used)
resetTime: "2026-11-08T19:50:37Z"
usedPercent: 100
resetsAt: "2026-11-08T19:50:37.000Z"

Moreover, calling POST /v1internal:generateContent or streamGenerateContent with model: "gemini-4-argon-low" directly against https://cloudcode-pa.googleapis.com returns HTTP 429 RESOURCE_EXHAUSTED, whereas the active Antigravity ACP session succeeds because the ACP server routes consumer OAuth sessions (usesGcpTos === false) to https://daily-cloudcode-pa.googleapis.com:

# google3/cloud/developer_experience/antigravity_extensions/acp_server/ccpa_connection/onboard.py
def _determine_endpoint(load_response: Mapping[str, Any]) -> str:
  """Determines the correct CCPA endpoint based on user's tier.

  Consumer tiers (Free, Google AI Pro/Ultra) use Prod Daily.
  Enterprise/Workspace tiers use Prod.
  """
  paid_tier = load_response.get("paidTier", {}) or {}
  uses_gcp_tos = paid_tier.get("usesGcpTos", False)
  return _PROD_ENDPOINT if uses_gcp_tos else _PROD_DAILY_ENDPOINT

Root cause

In apps/server/src/provider/antigravityUsageLimits.ts#L18-L21 and #L280-L308, fetchWindows queries both https://daily-cloudcode-pa.googleapis.com and https://cloudcode-pa.googleapis.com in parallel and deduplicates windows by taking whichever host reports the higher usedPercent:

const windows = new Map<string, ServerProviderUsageWindow>();
for (const window of responses.flat()) {
  const previous = windows.get(window.id);
  if (!previous || window.usedPercent > previous.usedPercent) windows.set(window.id, window);
}

That max(usedPercent) merge was introduced in #20081 when the probe still sent User-Agent: antigravity/hub/1.0.0, which caused daily-cloudcode-pa to omit the Gemini group on some accounts. Now that #28090 updated the probe User-Agent to antigravity/hub/2.24.0, daily-cloudcode-pa returns all three quota groups (Gemini Models, Claude and GPT models, and Gemini 4 Argon) with the account's live consumer quota state. However, because cloudcode-pa is still queried in parallel and merged via window.usedPercent > previous.usedPercent, an exhausted or stale gemini-argon-wtu-weekly bucket on cloudcode-pa overwrites the live remaining quota on daily-cloudcode-pa.

Impact

Minor bug or occasional failure — Gemini 4 Argon · Weekly is shown as 100% exhausted in T3 Code with an earlier/stale reset time even when the user has 86%+ weekly Argon quota remaining and active Argon threads work normally.

Version or commit

T3 Code Desktop 0.1.7 (serverVersion: "0.1.7", Antigravity ACP 1.4.1); verified unchanged on main @ 83a3674ffd84ffb33de768210c806cb1ac53fd80.

Environment

Windows 11 x64 (win32 x64), T3 Code 0.1.7, Antigravity provider (oauth-personal, Google AI Pro tier).

Suggested fix direction

  1. Route oauth-personal probes to https://daily-cloudcode-pa.googleapis.com first (matching onboard.py's _determine_endpoint for consumer accounts, or respecting endpoint_url in acp_token.json if present) and only fall back to https://cloudcode-pa.googleapis.com for buckets missing from the primary endpoint, rather than letting cloudcode-pa overwrite buckets already returned by daily-cloudcode-pa via window.usedPercent > previous.usedPercent.
  2. Note that PR fix(usage): show Antigravity Gemini limits when one quota endpoint omits them #20081's "Not checked" section explicitly anticipated this edge case: "Hosts disagreeing right after a reset: the more-used (pre-reset) reading would show until both hosts agree."

Filed by Gemini 4 Argon (gemini-4-argon) in the Antigravity harness through T3 Code at the user's request.

Activity

  1. fcakyon commented on Nov 7, 2026

    @fcakyon

    same here on the default gemini-weekly bucket with a Google sign-in

    • daily-cloudcode-pa: 84% left, resets in 6d 7h, matches agy /usage
    • cloudcode-pa: 60% left, resets in 3d 6h, stuck at 0.59846365 through 10 min of agy use
    • T3 shows the stale 60% reading
  2. Mihuy1 commented on Nov 9, 2026

    @Mihuy1

    Same issue here on macOS, also a personal Google account (authMethod=consumer). T3 Code 0.1.8-nightly.20261109.4399, agy CLI 1.5.3 (T3 reports Antigravity 1.4.5).

    Compared T3's cached usageLimits (checked Nov 9, 10:00 UTC) against agy's Models & Quota screen a few minutes later:

    Bucket agy (used / resets) T3 (used / resets)
    gemini-weekly 0.04% / ~Nov 16 4.73% / Nov 10, 09:22 UTC
    gemini-argon-wtu-weekly 8.18% / ~Nov 14, 18:09 UTC 49.07% / Nov 10, 07:12 UTC
    gemini-5h 0.13% 0.13% ✅
    3p-weekly 64.68% / Nov 12, 14:10 UTC 64.68% / Nov 12, 14:10 UTC ✅

    The wrong buckets in T3 both show higher usage and an earlier reset than agy. That fits the max-usedPercent merge across the two endpoints described above. Here it affects gemini-weekly as well as Argon.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions