Skip to content

plan(quota-plane): exception integration — Google/Antigravity (login, token capture, panel API) #1169

Open

Description

@dezren39

Priority P1 — order 7. Horizon: Month. Design: quota-plane-design-2026-10-26.md (usage-billing-hub goal files), Stage 2. Parent context: epic #1047. (§5). Pending confirmation by this epic's exceptions-audit issue; re-scope if the audit names a different pair.

Google/Antigravity full integration plan (Drew's shape: log in -> get the token -> hit the undocumented API the dashboard uses):

  1. Log in via the Antigravity app / laptop browser (Google OAuth is blocked on the sandbox host; the API key does NOT carry plan quota — verified 2026-10-24, credits are plan-tied).
  2. Capture the session/token the usage panel itself uses; store as a managed quota credential.
  3. Call the panel's underlying usage API from the gatherer on the tick: Gemini weekly/5h pools, Claude+GPT pools.
  4. Fallback: laptop file exporter at 15-minute cadence (file-export ingest).
    Note: AI Studio's rate-limit page is a different surface (free-tier API project) and does not substitute for Antigravity plan pools.
    Acceptance: Antigravity pools current on the tick (or file-export fallback live) with source labelled.

Acceptance criteria

  • Antigravity pools (Gemini weekly/5h, Claude+GPT pools) are current on the gatherer tick with source labelled, via the captured panel session/token stored as a managed quota credential — or the laptop file-export fallback is live at 15-minute cadence.
  • The integration does not rely on the AI Studio free-tier rate-limit page or the API key (neither carries plan quota).
  • Note: step 1 (Google login via the Antigravity app / laptop browser) needs Drew on the laptop; the gatherer work can proceed against the fallback until that token exists.

Activity

  1. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  2. added
    kind/infrastructureInfrastructure / host-portability work
    source/humanFiled directly by a human
    priority/highImportant and time-sensitive
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  3. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: Quota-plane Stage 2 exception integration, parent epic #1047, order 7 / P1. Pending the exceptions-audit issue's confirmation of the pair — re-scope if the audit names a different pair. Sibling: #1167 (Meta exception, same shape).

    Notes / risks: BLOCKER RISK: step 1 needs Drew logged in via the Antigravity app / laptop browser — Google OAuth is blocked on the sandbox host and the API key carries no plan quota (verified 2026-10-24, per the body). Build the file-export fallback first so the pipeline exists before the token does.

    Suggested approach: Token capture/storage must go through the managed quota-credential path, never a file in a repo.

    Live check: verified still open and unheld this run; a merged-PR search on this run (2026-10-28T10:35:00Z) returned no PR resolving this issue, so it remains live work. Acceptance criteria appended to the body (original text preserved verbatim above it) and labels normalized by the fleet monitor.

  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · ruling from #2490 triage (queue task 3721, 2026-11-01)

    The read-path half of this issue (Antigravity quota read via the stored login) is ruled absorbed by #2490 and discharged on the server-endpoint surface: the local credential-store fallback and the distinct store-failure error state landed in openchamber (issue #858 closed; PR #860 merged 2026-10-30; follow-up #1063 closed) — evidence and full ruling on #2490. The one surface where that read path is still missing is the openchamber quota CLI, routed as openchamber#1141 under the #2490 ruling.

    This issue keeps its remaining scope only: login, token capture, and the panel API. Nothing about those halves changes.

  5. added
    mode/onlineFully doable remotely: design, config, code, cloud
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  7. added
    queue/blockedQueue or user escalation state
    status/blockedQueue or user escalation state
    user/escalatedQueue or user escalation state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 2, 2026
  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · escalated

    • Agent: queue worker (repo-worker-code), OpenChamber scheduled lane
    • Session / ID: scheduled run · queue task 2456 · lane 7b47536b-c162-444c-be8a-3a9538cc4cb5
    • Found via: atomic claim on repo-health-code-pilot
    • Triage verdict: partially confirmed; the shared provider/API path is implemented, but account-specific authorization has not been verified.

    Current-main evidence

    • OpenChamber main 3194bcffc13dc1f965d6e296243757401ce3af4a: packages/web/server/lib/quota/providers/antigravity/index.js:26-67,91-138 reads Antigravity auth from OpenCode credentials, refreshes the token, and invokes the quota fetcher. providers/antigravity/api.js:67-89 calls v1internal:retrieveUserQuotaSummary.
    • Code main f2c62597cfa405156464e901192489aa79d84273: pm-stack/aggregator/scripts/gather-quota.ts:407-430 configures the local credential-store source and fetches configured providers each tick. Its file-export list at :118-125 currently contains only Meta.
    • No live account probe was done: it requires Drew to sign in/authorize Antigravity on the laptop. The prerequisite exceptions audit audit(quota-plane): name the two token-exception providers definitively #1155 is still OPEN and has not confirmed the pair.

    Disposition: no new code packet: the direct provider/API integration already exists, and an exporter packet would duplicate a supported path without the required account authorization. Resume after #1155 confirms this scope and Drew authorizes the managed credential; then verify a fresh gatherer tick. No token or credential value is requested here.

  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Agent note — gate moved: exceptions audit #1155 triaged (queue task 2435, 2026-11-03)

    The audit this plan waits on now has a live-tested verdict (full table on #1155, comment 6600706560): Antigravity is reachable on the laptop right now — openchamber quota antigravity --json returns ok:true with per-model 5h/weekly windows. The no-automated-route premise no longer holds on the execution host.

    Proposed re-scope for Drew (not actioning unilaterally — this issue is user/escalated): convert from exception-integration to credential-lifecycle (which host the tick gatherer reads from; what happens when the captured token lapses), or close if the gatherer already consumes the antigravity provider on its host. Meta side is already closed (#1167 via #1301/PR #2530).

    *Origin: openchamber-scheduled-lane, task 2435.

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

Metadata

Metadata

Assignees

Labels

effort/lLarge: multi-day or open-ended; expect staged check-inskind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmeta/follow-upFollow-up spun out of earlier workmode/onlineFully doable remotely: design, config, code, cloudpriority/highImportant and time-sensitivequeue/blockedQueue or user escalation statequeue/queuedHas a queued task in the Supabase agent queuesource/humanFiled directly by a humanstatus/blockedQueue or user escalation stateuser/escalatedQueue or user escalation state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions