What's New
Added
-
Account Verification Flow — Auth login menu now supports
verifyandverify-allactions. When Antigravity returns a 403 withvalidation_required, the account is automatically disabled, marked with a verification URL, and cooled down. Users can verify accounts directly from the menu with a probe request to confirm resolution -
Dynamic Antigravity Version — Plugin version is now fetched at startup from the Antigravity updater API, with a changelog-scrape fallback and a hardcoded last-resort. Eliminates stale "version no longer supported" errors after Antigravity updates
-
Storage V4 Schema — New storage version adds
verificationRequired,verificationRequiredAt,verificationRequiredReason,verificationUrl, andfingerprintHistoryfields per account. Full migration chain from v1/v2/v3 to v4 -
saveAccountsReplace— New destructive-write storage function that replaces the entire accounts file without merging, preventing deleted accounts from being resurrected by concurrent reads -
setAccountEnabled/ Account Toggling — New account management methods:setAccountEnabled(),markAccountVerificationRequired(),clearAccountVerificationRequired(),removeAccountByIndex() -
Secure File Permissions — Credential storage files are now created with mode
0600(owner read/write only). Existing files with overly permissive modes are tightened on load -
opencode.jsoncSupport — Configure models flow now detects and prefers existingopencode.jsoncfiles. JSONC parsing strips comments and trailing commas before JSON.parse -
Header Contract Tests — New
src/constants.test.tsvalidates header shapes, randomization behavior, and optional header fields for both Antigravity and Gemini CLI styles
Changed
-
Unified Gemini Routing — Gemini quota fallback between Antigravity and Gemini CLI pools is now always enabled for Gemini models. The
quota_fallbackconfig flag is deprecated and ignored (backward-compatible, no breakage) -
cli_firstHonored in Routing —resolveHeaderRoutingDecision()centralizes routing logic and properly respectscli_firstfor unsuffixed Gemini models -
Fingerprint Headers Simplified —
buildFingerprintHeaders()now returns onlyUser-Agent. RemovedX-Goog-QuotaUser,X-Client-Device-Id,X-Goog-Api-Client, andClient-Metadatafrom outgoing content requests to align with Antigravity Manager behavior -
Client Metadata Reduced — Fingerprint client metadata trimmed to
ideType,platform,pluginTypeonly. RemovedosVersion,arch,sqmId -
Gemini CLI User-Agent Format — Updated from
google-genai-sdk/...toGeminiCLI/...format -
Search Model — Changed from
gemini-2.0-flashtogemini-2.5-flashfor improved search result quality -
Deterministic Search Generation — Search requests now use
temperature: 0andtopP: 1instead of thinking config -
OAuth Headers Dynamic —
oauth.tsandproject.tsnow usegetAntigravityHeaders()instead of static constants, removing staleX-Goog-Api-Clientfrom token/project calls
Fixed
- #410: Strip
x-goog-user-projectheader for ALL header styles, not just Antigravity. This header caused 403 errors on Daily/Prod endpoints when the user's GCP project lacked Cloud Code API - #370 / #336: Account deletion now persists correctly. Root cause:
saveAccounts()merged deleted accounts back from disk. Fixed by introducingsaveAccountsReplace()for destructive writes and syncing in-memory state immediately - #381: Disabled accounts no longer selected via sticky index.
getCurrentAccountForFamily()now skips disabled accounts and advances the active index - #384:
google_searchtool no longer returns empty citations when usinggemini-3-flash. Search model switched togemini-2.5-flash - #377: Configure models flow now respects existing
opencode.jsoncfiles instead of creating duplicateopencode.json - Excessive Disk Writes — Fixed project context auth updates causing 3000+ writes/sec during streaming. Changed from reference equality to value comparison on auth tokens and added throttled saves. Prevents SSD wear on macOS
- Fingerprint Alignment — Force-regenerated fingerprints to match current Antigravity Manager behavior, fixing
ideTypeand stripping stale client metadata fields
Removed
- Extra Outgoing Headers —
X-Goog-Api-Client,Client-Metadata,X-Goog-QuotaUser,X-Client-Device-Idno longer sent on content requests - Fingerprint Metadata Fields —
osVersion,arch,sqmIdremoved from fingerprint client metadata updateFingerprintVersionHelper — Removed from accounts module (fingerprint version rewriting no longer needed)
Documentation
- AGENTS.md expanded with detailed architecture, code style, and fingerprint system documentation
- README.md, CONFIGURATION.md, MULTI-ACCOUNT.md updated to reflect deprecated
quota_fallbackand automatic Gemini pool fallback behavior antigravity.schema.jsonmarksquota_fallbackas deprecated/ignored
Full Changelog: v1.4.6...v1.5.0