Professional AI Account Management & Proxy System (v3.3.45)
Seamlessly proxy Gemini & Claude. OpenAI-Compatible. Privacy First.
Features • GUI Overview • Architecture • Installation • Integration
简体中文 | English
Antigravity Tools is an all-in-one desktop application designed for developers and AI enthusiasts. It perfectly combines multi-account management, protocol conversion, and smart request scheduling to provide you with a stable, high-speed, and low-cost Local AI Relay Station.
By leveraging this app, you can transform common Web Sessions (Google/Anthropic) into standardized API interfaces, completely eliminating the protocol gap between different providers.
![]() |
Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relays for various services such as Claude Code, Codex, and Gemini. PackyCode provides a special offer for users of this project: Register using this link and enter the "Ctrler" coupon code when topping up to enjoy a 10% discount. |
|---|
If you find this project helpful, feel free to buy me a coffee!
| Alipay | WeChat Pay | Buy Me a Coffee |
|---|---|---|
![]() |
![]() |
![]() |
- Global Real-time Monitoring: Instant insight into the health of all accounts, including average remaining quotas for Gemini Pro, Gemini Flash, Claude, and Gemini Image generation.
- Smart Recommendation: The system uses a real-time algorithm to filter and recommend the "Best Account" based on quota redundancy, supporting one-click switching.
- Active Account Snapshot: Visually displays the specific quota percentage and the last synchronization time of the currently active account.
- OAuth 2.0 Authorization (Auto/Manual): Pre-generates a copyable authorization URL so you can finish auth in any browser; after the callback, the app auto-completes and saves the account (use “I already authorized, continue” if needed).
- Multi-dimensional Import: Supports single token entry, JSON batch import, and automatic hot migration from V1 legacy databases.
- Gateway-level Views: Supports switching between "List" and "Grid" views. Provides 403 Forbidden detection, automatically marking and skipping accounts with permission anomalies.
- Multi-Protocol Adaptation (Multi-Sink):
- OpenAI Format: Provides
/v1/chat/completionsendpoint, compatible with 99% of existing AI apps. - Anthropic Format: Provides native
/v1/messagesinterface, supporting all features of Claude Code CLI (e.g., chain-of-thought, system prompts). - Gemini Format: Supports direct calls from official Google AI SDKs.
- OpenAI Format: Provides
- Smart Self-healing: When a request encounters
429 (Too Many Requests)or401 (Expired), the backend triggers millisecond-level automatic retry and silent rotation, ensuring business continuity.
- Series-based Mapping: Classify complex original model IDs into "Series Groups" (e.g., routing all GPT-4 requests uniformly to
gemini-3-pro-high). - Expert Redirection: Supports custom regex-level model mapping for precise control over every request's landing model.
- Tiered Routing [New]: Automatically prioritizes models based on account tiers (Ultra/Pro/Free) and reset frequencies to ensure stability for high-volume users.
- Silent Background Downgrading [New]: Intelligently identifies background tasks (e.g., Claude CLI title generation) and reroutes them to Flash models to preserve premium quota.
- Advanced Image Control: Supports precise control over image generation tasks via OpenAI
size(e.g.,1024x1024,16:9) parameters or model name suffixes. - Enhanced Payload Support: The backend supports payloads up to 100MB, more than enough for 4K HD image recognition and processing.
Dashboard |
Account List |
About Page |
API Proxy |
Settings |
Claude Code Web Search |
Cherry Studio Integration |
Imagen 3 Advanced Drawing |
Kilo Code Integration |
graph TD
Client([External Apps: Claude Code/NextChat]) -->|OpenAI/Anthropic| Gateway[Antigravity Axum Server]
Gateway --> Middleware[Middleware: Auth/Rate Limit/Logs]
Middleware --> Router[Model Router: ID Mapping]
Router --> Dispatcher[Dispatcher: Rotation/Weights]
Dispatcher --> Mapper[Request Mapper]
Mapper --> Upstream[Upstream: Google/Anthropic API]
Upstream --> ResponseMapper[Response Mapper]
ResponseMapper --> Client
If you have Homebrew installed, run:
# 1. Tap the repository
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
# 2. Install the app
brew install --cask antigravity-toolsTip:
- macOS: If you encounter permission issues, add the
--no-quarantineflag.- Linux: The AppImage will be automatically symlinked to your binary path with executable permissions.
Download from GitHub Releases:
- macOS:
.dmg(Universal, Apple Silicon & Intel) - Windows:
.msior portable.zip - Linux:
.deborAppImage
We provide an official one-liner installation script for Arch Linux users. It automatically fetches the latest release from GitHub and installs it:
curl -sSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/deploy/arch/install.sh | bashTip: This script will automatically download the latest
.debassets and install them usingmakepkg.
If you need to run on a headless remote Linux server (Ubuntu/Debian/CentOS), use our Headless (Xvfb) one-click deployment solution:
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/deploy/headless-xvfb/install.sh | sudo bashNote: This solution uses Xvfb to simulate a GUI environment. Resource consumption (RAM/CPU) will be higher than a native backend service. See: Server Deployment Guide (deploy/headless-xvfb)
If you prefer running in a containerized environment, we provide a full Docker image and configuration with built-in noVNC support for direct browser-based GUI access.
# 1. Enter the deployment directory
cd deploy/docker
# 2. Start the service
docker compose up -dAccess URL:
http://localhost:6080/vnc_lite.html(Default VNC password:password) System Requirements:
- RAM: 2GB recommended (minimum 512MB).
- Shared Memory: Requires
shm_size: 2gb(pre-configured in compose) to prevent browser crashes.- Architecture: Supports x86_64 and ARM64. See: Docker Deployment Guide (deploy/docker)
Due to macOS security gatekeeper, non-App Store apps might show this. Run this in Terminal to fix:
sudo xattr -rd com.apple.quarantine "/Applications/Antigravity Tools.app"- Go to
Accounts→Add Account→OAuth. - The dialog pre-generates an authorization URL before you click any button. Click the URL to copy it to the system clipboard, then open it in the browser you prefer and complete authorization.
- After consent, the browser opens a local callback page and shows “✅ Authorized successfully!”.
- The app automatically continues the flow and saves the account; if it doesn’t, click “I already authorized, continue” to finish manually.
Note: the auth URL contains a one-time local callback port. Always use the latest URL shown in the dialog. If the app isn’t running or the dialog is closed during auth, the browser may show
localhost refused connection.
- Start Antigravity service in the "API Proxy" tab.
- In your terminal:
export ANTHROPIC_API_KEY="sk-antigravity"
export ANTHROPIC_BASE_URL="http://127.0.0.1:8045"
claudeimport openai
client = openai.OpenAI(
api_key="sk-antigravity",
base_url="http://127.0.0.1:8045/v1"
)
response = client.chat.completions.create(
model="gemini-3-flash",
messages=[{"role": "user", "content": "Hello, please introduce yourself"}]
)
print(response.choices[0].message.content)-
Changelog:
-
v3.3.45 (2026-01-19):
- [Core] Critical Fix for Claude/Gemini SSE Interruptions & 0-Token Responses (Issue #859):
- Enhanced Peek Logic: The proxy now loops through initial SSE chunks to filter out heartbeat pings and empty data, ensuring a valid content block is received before committing to a 200 OK response.
- Smart Retry Trigger: If no valid data is received within 60s or the stream is interrupted during the peek phase, the system automatically triggers account rotation and retries, eliminating silent failures for long-latency models.
- Protocol Alignment & Optimization: Introduced a matching peek mechanism for Gemini and relaxed Claude's heartbeat interval to 30s to improve stability during long-form content generation.
- [Core] Fixed Account Mode Integration (PR #842):
- Backend Enhancement: Introduced
preferred_account_idsupport in the proxy core, allowing mandatory locking of specific accounts via API or UI. - UI Update: Added a "Fixed Account" toggle and account selector in the API Proxy page to lock the outbound account for the current session.
- Scheduling Optimization: Fixed Account Mode takes precedence over traditional round-robin, ensuring session continuity for specific business scenarios.
- Backend Enhancement: Introduced
- [i18n] Full Translation Completion & Cleanup:
- 8-Language Coverage: Completed all i18n translation keys related to "Fixed Account Mode" for all 8 supported languages.
- Redundant Key Cleanup: Fixed "Duplicate Keys" lint warnings in
ja.jsonandvi.jsoncaused by historical PR accumulation. - Punctuation Sync: Standardized punctuation across Russian and Portuguese translations, removing accidentally used full-width Chinese punctuation.
- [Core Feature] Client Hot Update & Token Statistics (PR #846 by @lengjingxu):
- Native Updater: Integrated Tauri v2 native update plugin, supporting automatic detection, downloading, installation, and restarting for seamless client upgrades.
- Token Consumption Visualization: Added an SQLite-based Token statistics persistence module, supporting total and per-account usage views by hour/day/week.
- UI/UX & i18n Enhancements: Optimized chart tooltips for better Dark Mode contrast; completed full translation for all 8 languages and fixed hardcoded legend labels.
- Integration Fix: Fixed an application crash caused by missing plugin configurations found during the manual merge of the original PR code.
- [Optimization] Tsinghua (TUNA) Mirror Support: Optimized the Dockerfile build process, significantly improving package installation speed in mainland China.
- [Deployment] Official Docker & noVNC Support (PR #851):
- Full Containerization: Provides a complete Docker deployment solution for headless environments, with built-in Openbox WM.
- Web VNC Integration: Integrated noVNC for direct browser-based GUI access (essential for OAuth flows, with Firefox ESR included).
- Self-Healing Startup: Optimized
start.shwith X11 lock file cleanup and service crash monitoring for enterprise-grade stability. - i18n Readiness: Built-in CJK fonts ensuring proper rendering of Chinese characters in the Docker environment.
- Performance Tuning: Standardized
shm_size: 2gbto eliminate container browser and GUI crashes.
- [Core Feature] Fixed Device Fingerprint Synchronization on Account Switch:
- Path Detection Improvement: Optimized the timing of
storage.jsondetection to ensure accurate path acquisition before process closure, compatible with custom data directories. - Automatic Isolation Generation: For accounts without a bound fingerprint, a unique device identifier is now automatically generated and bound during the first switch, ensuring complete fingerprint isolation between accounts.
- Path Detection Improvement: Optimized the timing of
- [UI Fix] Fixed Inaccurate Page Size Display on Account Management Page (Issue #754):
- Logic Correction: Forced the default minimum page size to 10, resolving the unintuitive experience where it would automatically change to 5 or 9 in small windows.
- Persistence Enhancement: Implemented
localStoragepersistence for page size. Manually selected page sizes now permanently lock and override the automatic mode. - UI Consistency: Ensured the pagination dropdown always aligns with the actual number of items displayed in the list.
- [Core] Critical Fix for Claude/Gemini SSE Interruptions & 0-Token Responses (Issue #859):
-
v3.3.44 (2026-01-19):
- [Core Stability] Dynamic Thinking Stripping - Complete Fix for Prompt Too Long & Signature Errors:
- Background: In Deep Thinking mode, long conversations cause two critical errors:
Prompt is too long: Historical Thinking Blocks accumulate and exceed token limitsInvalid signature: Proxy restarts clear in-memory signature cache, causing Google to reject old signatures
- Solution - Context Purification:
- New
ContextManagerModule: Implements token estimation and history purification logic - Tiered Purification Strategy:
Soft(60%+ pressure): Retains last ~2 turns of Thinking, strips earlier historyAggressive(90%+ pressure): Removes all historical Thinking Blocks
- Differentiated Limits: Flash models (1M) and Pro models (2M) use different trigger thresholds
- Signature Sync Removal: Automatically removes
thought_signaturewhen purifying Thinking to avoid validation failures
- New
- Transparency Enhancement: Added
X-Context-Purified: trueresponse header for debugging - Performance Optimization: Lightweight character-based token estimation with <5ms request latency impact
- Impact: Completely resolves two major issues in Deep Thinking mode, freeing 40%-60% context space and ensuring long conversation stability
- Background: In Deep Thinking mode, long conversations cause two critical errors:
- [Core Stability] Dynamic Thinking Stripping - Complete Fix for Prompt Too Long & Signature Errors:
-
v3.3.43 (2026-01-18):
- [i18n] Full Internationalization of Device Fingerprint Dialog (PR #825, thanks to @IamAshrafee):
- Completely resolved the hard-coded Chinese strings in the Device Fingerprint dialog.
- Added translation skeletons for 8 languages (EN, JA, VI, etc.) to ensure a consistent experience.
- [Japanese] Translation Completion & Terminology Optimization (PR #822, thanks to @Koshikai):
- Added 50+ missing translation keys covering core settings like Quota Protection, HTTP API, and Update Checks.
- Improved technical wording for natural Japanese expressions (e.g.,
pro_lowto "低消費").
- [Fix] Vietnamese Spelling Correction (PR #798, thanks to @vietnhatthai):
- Fixed a typo in the Vietnamese
refresh_msg(hiện đài->hiện tại).
- Fixed a typo in the Vietnamese
- [Compatibility] Native Google API Key Support (PR #831):
- Added
x-goog-api-keyHeader Support:- The auth middleware now recognizes the
x-goog-api-keyheader. - Improves compatibility with official Google SDKs and third-party tools that use Google-style headers, eliminating the need to manually change header to
x-api-key.
- The auth middleware now recognizes the
- Added
- [i18n] Full Internationalization of Device Fingerprint Dialog (PR #825, thanks to @IamAshrafee):
-
v3.3.42 (2026-01-18):
- [Traffic Log Enhancement] Protocol Recognition & Stream Integration (PR #814):
- Protocol Labeling: Traffic logs now automatically identify and label protocol types (OpenAI in Green, Anthropic in Orange, Gemini in Blue) based on URI, providing instant clarity on request sources.
- Full Stream Consolidation: Resolved the issue where streaming responses only displayed
[Stream Data]. The proxy now intercepts and aggregates stream chunks, restoring scattereddeltafragments into complete response content and "thinking" processes for significantly improved debugging. - i18n Support: Completed i18n translations for traffic log features across 8 languages.
- [Critical Fix] Deep Refactoring of Gemini JSON Schema Cleaning (Issue #815):
- Resolved Property Loss: Implemented "Best Branch Merging" logic for
anyOf/oneOfstructures in tool definitions. It automatically extracts properties from the richest branch, fixing the long-standingmalformed function callerror. - Robust Whitelist Mechanism: Adopted a strict allowlist approach to remove fields unsupported by Gemini, ensuring 100% API compatibility and eliminating 400 errors.
- Constraint Migration (Description Hints): Unsupported validation fields like
minLength,pattern, andformatare now automatically converted into text hints and appended to thedescription, preserving semantic information for the model. - Schema Context Detection Lock: Added a safety check to ensure the cleaner only operates on actual Schema nodes. This "precision lock" protects tool call structures in
request.rs, ensuring the stability of historical fixes (e.g., boolean coercion, shell array conversion).
- Resolved Property Loss: Implemented "Best Branch Merging" logic for
- [Traffic Log Enhancement] Protocol Recognition & Stream Integration (PR #814):
-
v3.3.41 (2026-01-18):
- Claude Protocol Core Compatibility Fixes (Issue #813):
- Consecutive User Message Merging: Implemented
merge_consecutive_messageslogic to automatically merge consecutive messages with the same role. This resolves 400 Bad Request errors caused by role alternation violations during Spec/Plan mode switches. - EnterPlanMode Protocol Alignment: For Claude Code's
EnterPlanModetool calls, redundant arguments are now forcibly cleared to ensure full compliance with the official protocol, fixing instruction set validation failures.
- Consecutive User Message Merging: Implemented
- Proxy Robustness Enhancements:
- Enhanced self-healing capabilities for tool call chains. When the model generates erroneous paths due to hallucinations, the Proxy now provides standard error feedback to guide the model back to the correct path.
- Claude Protocol Core Compatibility Fixes (Issue #813):
-
v3.3.40 (2026-01-18):
- Deep Fix for API 400 Errors (Grep/Thinking Stability):
- Resolved Protocol Order Violation: Fixed the "Found 'text' instead of 'thinking'" 400 error by refactoring
streaming.rsto stop appending illegal thinking blocks after text blocks. Signatures are now silently cached for recovery. - Enhanced Thinking Signature Self-healing: Expanded 400 error keyword capture in
claude.rsto cover signature invalidation, sequence errors, and protocol mismatches. Implemented millisecond-level silent retries with automated session healing. - Search Tool Schema Alignment: Corrected parameter remapping for
GrepandGlobtools, ensuringqueryis accurately mapped topathas per Claude Code Schema, with automatic injection of default path.. - Optimized Tool Renaming Strategy: Refined the renaming logic to only target known hallucinations (like
search), preserving the integrity of original tool call signatures. - Automatic Signature Completion: For tool calls like LS, Bash, and TodoWrite that missing
thought_signature, the proxy now automatically injects a placeholder to satisfy upstream constraints.
- Resolved Protocol Order Violation: Fixed the "Found 'text' instead of 'thinking'" 400 error by refactoring
- Architectural Robustness:
- Enhanced the global recursive cleaner
clean_cache_control_from_messagesto strip illegalcache_controltags that disrupt Vertex AI/Anthropic strict mode. - Updated comprehensive test examples in docs/client_test_examples.md covering all known 400 error scenarios.
- Enhanced the global recursive cleaner
- Deep Fix for API 400 Errors (Grep/Thinking Stability):
-
v3.3.39 (2026-01-17):
- Deep Proxy Optimizations (Gemini Stability Boost):
- Schema Purifier Upgrade: Supported
allOfmerging, intelligent union type selection, automatic Nullable filtering, and empty object parameter backfill, completely resolving 400 errors caused by complex tool definitions. - Search Tool Self-healing: Implemented automatic remapping from
Searchtogrepand introduced Glob-to-Include Migration (automatically moving Glob patterns like**/*.rsto the inclusion parameter), resolving Claude CodeError searching fileserrors. - Parameter Alias Completion: Unified parameter mapping logic for
search_code_definitionsand other related tools, and enforced boolean type conversion. - Shell Call Robustness: Enforced
local_shell_callcommand parameter to return as an array, enhancing compatibility with Google API. - Dynamic Token Constraints: Automatically adjusted
maxOutputTokensbased onthinking_budgetto satisfy strict API constraints; streamlined Stop Sequences to improve streaming output quality.
- Schema Purifier Upgrade: Supported
- Enhanced Thinking Mode Stability:
- Introduced cross-model family signature validation to automatically downgrade incompatible thinking signatures, preventing 400 Bad Request errors.
- Improved "Session Healing" logic to automatically recover interrupted tool loops and ensure compliance with strict Google/Vertex AI structural requirements.
- High Availability Improvements:
- Optimized automatic Endpoint Fallback logic for smoother transitions to backup API endpoints during 429 or 5xx errors.
- Fix macOS "Too many open files" Error (Issue #784):
- Implemented a global shared HTTP client pool to significantly reduce Socket handle consumption.
- Automatically increase the file descriptor limit (RLIMIT_NOFILE) to 4096 on macOS for enhanced high-concurrency stability.
- Deep Proxy Optimizations (Gemini Stability Boost):
-
v3.3.38 (2026-01-17):
- Thinking Signature Deep Fix & Session Healing (Core Fix):
- Robust Retry Logic: Fixed the retry counting logic to ensure single-account users can still trigger internal retries for signature errors, improving auto-recovery rates.
- Proactive Signature Stripping: Introduced
is_retryflag to forcibly strip all historical signatures during retry attempts. Coupled with strict model family validation (no more signature mixing between Gemini 1.5 and 2.0), this eliminates 400 errors from invalid signatures. - Session Healing: Implemented smart message injection to satisfy Vertex AI structural constraints when tool results lack preceding thinking blocks due to stripping.
- Pinned Quota Models:
- Customizable Display: Added a model quota pinning list in "Settings -> Account", allowing users to customize specific model quotas displayed in the main table; unselected models are only shown in detail modals.
- Layout Optimization: Implemented a responsive 4-column grid layout for this section, maintaining UI consistency with the "Quota Protection" module.
- Relay Stability Enhancements: Improved detection and backoff for 529 Overloaded errors, increasing task success rates under extreme upstream load.
- Thinking Signature Deep Fix & Session Healing (Core Fix):
-
v3.3.37 (2026-01-17):
- Backend Compatibility Fix (Fix PR #772):
- Backward Compatibility Enhancement: Added
#[serde(default)]attribute toStickySessionConfig, ensuring that old configuration files (missing sticky session fields) can be correctly loaded, preventing deserialization errors.
- Backward Compatibility Enhancement: Added
- User Experience Optimization (Fix PR #772):
- Config Loading Upgrade: Introduced dedicated loading state and error handling in
ApiProxy.tsx. Users now see a loading spinner while fetching configuration, and if loading fails, a clear error message with a retry button is displayed instead of a blank or broken state.
- Config Loading Upgrade: Introduced dedicated loading state and error handling in
- macOS Monterey Sandbox Permissions Fix (Fix Issue #468):
- Root Cause: On older macOS versions like Monterey (12.x), application sandbox policies prevented reading global preferences (
kCFPreferencesAnyApplication), causing failure to detect the default browser and blocking OAuth redirects. - Fix: Added
com.apple.security.temporary-exception.shared-preference.read-onlyexception toEntitlements.plist, explicitly allowing read access to global configurations.
- Root Cause: On older macOS versions like Monterey (12.x), application sandbox policies prevented reading global preferences (
- Backend Compatibility Fix (Fix PR #772):
-
v3.3.36 (2026-01-17):
- Core Stability Fixes for Claude Protocol:
- "Reply OK" Loop Fix (History Poisoning):
- Root Cause: Fixed a critical flaw in
is_warmup_requestlogic. The old logic scanned the last 10 historical messages; once any "Warmup" message appeared in history (user-sent or background heartbeat), the system would misidentify all subsequent user inputs (like "continue") as Warmup requests and force an "OK" response. - Fix: Restricted detection scope to check ONLY the latest message. Now valid user inputs are processed correctly, and only actual Warmup heartbeats are intercepted.
- Impact: Significantly improved usability for Claude Code CLI and Cherry Studio in long-running sessions.
- Root Cause: Fixed a critical flaw in
- Cache Control Injection Fix (Fix Issue #744):
- Root Cause: Claude clients injected non-standard
cache_control: {"type": "ephemeral"}fields into Thinking blocks, causing Google API to returnExtra inputs are not permitted400 errors. - Fix: Implemented a global recursive cleanup function
clean_cache_control_from_messagesand integrated it into the Anthropic (z.ai) forwarding path, ensuring allcache_controlfields are stripped before sending to upstream APIs.
- Root Cause: Claude clients injected non-standard
- Comprehensive Signature Defense:
- Implicit Fixes: Deep code audit confirmed that a series of previously reported signature-related issues (#755, #654, #653, #639, #617) are effectively resolved by the strict signature validation, automatic downgrade, and Base64 smart decoding mechanisms introduced in v3.3.35. The system now has high fault tolerance for missing, corrupted, or malformed signatures.
- "Reply OK" Loop Fix (History Poisoning):
- Smart Warmup Logic Fix (Fix Issue #760):
- Root Cause: Fixed legacy logic in the auto-warmup scheduler that incorrectly mapped
gemini-2.5-flashquota status togemini-3-flash. - Symptom: This caused "ghost warmups" where
gemini-3-flashwas triggered for warmup even when it had 0% quota, just becausegemini-2.5-flash(unused/different bucket) reported 100%. - Fix: Removed all hardcoded
2.5 -> 3mapping logic. The scheduler now strictly checks the quota percentage of the specific model itself, triggering warmup only when that actual model reports 100%.
- Root Cause: Fixed legacy logic in the auto-warmup scheduler that incorrectly mapped
- Gemini 2.5 Pro Model Removal (Fix Issue #766):
- Reason: Due to reliability issues, the
gemini-2.5-promodel has been removed from the supported list. - Migration: All
gpt-4family aliases (e.g.,gpt-4,gpt-4o) have been remapped togemini-2.5-flashto ensure service continuity. - Impact: Users previously accessing
gemini-2.5-provia aliases will be automatically routed togemini-2.5-flash. The model is no longer selectable in the frontend.
- Reason: Due to reliability issues, the
- CLI Sync Safety & Backup (Fix Issue #756 & #765):
- Smart Backup & Restore: Implemented an automatic backup mechanism. Before syncing, the system now automatically backs up existing configurations to
.antigravity.bak. The "Restore" feature intelligently detects these backups and offers to restore the original user configuration instead of just resetting to defaults. - Safety Confirmation: Added a confirmation dialog for the "Sync Config" action to prevent accidental overwrites of local configurations.
- Enhanced CLI Detection: Improved the detection logic for CLIs (like Claude Code) on macOS to correctly identify and execute binaries even if they are not in the system
PATHbut exist in standard fallback locations.
- Smart Backup & Restore: Implemented an automatic backup mechanism. Before syncing, the system now automatically backs up existing configurations to
- Windows Console Flashing Fix (PR #769, Thanks to @i-smile):
- No Window Execution: Fixed the issue where running CLI sync commands (like
wherechecks) on Windows would briefly pop up a console window. AddedCREATE_NO_WINDOWflag to ensure all background checks run silently.
- No Window Execution: Fixed the issue where running CLI sync commands (like
- Auth UI Status Fix (PR #769, Thanks to @i-smile):
- Accurate Status: Corrected the authentication status display logic in the API Proxy page. The UI now correctly shows "Disabled" when
auth_modeis set tooff, instead of incorrectly showing "Enabled".
- Accurate Status: Corrected the authentication status display logic in the API Proxy page. The UI now correctly shows "Disabled" when
- Core Stability Fixes for Claude Protocol:
-
v3.3.35 (2026-01-16):
- Major CLI Sync Enhancements:
- Multi-config File Support: Now supports syncing multiple configuration files for each CLI (Claude Code:
settings.json,.claude.json; Codex:auth.json,config.toml; Gemini:.env,settings.json,config.json), ensuring a more complete setup. - Claude No-Login Privilege: Automatically injects
"hasCompletedOnboarding": trueinto~/.claude.jsonduring sync, allowing users to skip the initial onboarding/login steps for Claude CLI. - Tabbed Config Viewer: Upgraded the configuration viewer modal to a tabbed interface, enabling smooth switching between all associated config files for a single CLI.
- Multi-config File Support: Now supports syncing multiple configuration files for each CLI (Claude Code:
- Deep UI/UX Refinements:
- Unified Dialog Experience: Replaced the native browser
window.confirmfor "Restore Default Configuration" with the app's themedModalDialog. - Icon & Badge Optimization: Updated the restore button icon to
RotateCcw, and streamlined status badge text withwhitespace-nowrapto prevent layout breaks in tight spaces. - Condensed Version Display: Improved version extraction to display only pure numeric versions (e.g., v0.86.0) for a cleaner UI.
- Unified Dialog Experience: Replaced the native browser
- Claude Thinking Signature Persistence Fix (Fix Issue #752):
- Root Cause:
- Response Collection: The streaming response collector (
collector.rs) in v3.3.34 missed thesignaturefield ofthinkingblocks when processingcontent_block_startevents, causing signature loss. - Request Transformation: Historical message signatures were sent to Gemini without validation, causing
Invalid signature in thinking blockerrors during cross-model switches or cold starts.
- Response Collection: The streaming response collector (
- Fix Details:
- Response Collector: Added logic to extract and persist the
signaturefield incollector.rs, with unit testtest_collect_thinking_response_with_signature. - Request Transformer: Implemented strict signature validation in
request.rs. Only cached and compatible signatures are used. Unknown or incompatible signatures cause thinking blocks to downgrade to plain text, preventing invalid signatures from being sent. - Fallback Mechanism: Implemented intelligent fallback retry logic. If signature validation fails or the upstream API rejects the request (400 error), the system automatically clears all thinking blocks and forces a retry, ensuring the user's request always succeeds.
- Response Collector: Added logic to extract and persist the
- Impact: Completely resolved
Invalid signature in thinking blockerrors, supporting cross-model switches and cold start scenarios, ensuring Thinking models work stably in all modes.
- Root Cause:
- API Monitor Real-time Sync Fix (Pull Request #747, Thanks to @xycxl):
- Root Cause: Fixed issues with duplicate log entries and inaccurate counters in the API Monitor page caused by duplicate event listener registration and state desynchronization.
- Fix Details:
- Data Deduplication: Introduced
pendingLogsRefand ID deduplication mechanisms to completely eliminate duplicate entries in the log list. - Precise Counting: Implemented strict frontend-backend state synchronization; the system now fetches authoritative
totalCountfrom the backend with every new log batch, ensuring accurate pagination and total counts. - Debounce Optimization: Optimized log update debounce logic to reduce React re-renders and improve page smoothness.
- Feature Renaming: Renamed "Call Records" to "Traffic Logs" and reverted the route to
/monitorfor a more intuitive experience.
- Data Deduplication: Introduced
- Major CLI Sync Enhancements:
-
v3.3.34 (2026-01-16):
- OpenAI Codex/Responses Protocol Fix (Fix Issue #742):
- 400 Invalid Argument Complete Fix:
- Root Cause: The
/v1/responsesand other proprietary endpoints caused Gemini to receive empty bodies when the request body contained onlyinstructionsorinputbut lacked themessagesfield, as the transformation logic didn't cover all scenarios. - Fix Details: Backported the "request normalization" logic from the Chat interface to
handle_completions. The system now forcibly detects Codex-specific fields (instructions/input), and even ifmessagesis empty or missing, automatically transforms them into standard System/User message pairs, ensuring legal upstream requests.
- Root Cause: The
- 429/503 Advanced Retry & Account Rotation Support:
- Logic Alignment: Fully ported the "Smart Exponential Backoff" and "Multi-dimensional Account Rotation" strategies validated in the Claude processor to the OpenAI Completions interface.
- Effect: Now, when the Codex interface encounters rate limiting or server overload, it automatically executes millisecond-level switching instead of throwing an error directly, greatly improving the stability of tools like VS Code plugins.
- Session Stickiness Support:
- Feature Expansion:completed the
session_idextraction and scheduling logic under the OpenAI protocol. Now, whether it's Chat or Codex interface, as long as it's the same conversation, the system will try its best to schedule it to the same Google account. - Performance Bonus: This will significantly increase the hit rate of Google Prompt Caching, thereby drastically speeding up response times and saving computing resources.
- Feature Expansion:completed the
- 400 Invalid Argument Complete Fix:
- Claude Thinking Signature Encoding Fix (Fix Issue #726):
- Root Cause: Fixed a regression introduced in v3.3.33, where the already Base64-encoded
thoughtSignaturewas incorrectly re-encoded in Base64. This doubled encoding caused Google Vertex AI to fail signature verification, returning anInvalid signatureerror. - Fix Details: Removed redundant Base64 encoding steps in the
Thinking,ToolUse, andToolResultprocessing logic, ensuring the signature is passed through to the upstream in its original valid format. - Impact: Completely resolved the 400 signature error triggered when using Thinking models (e.g., Claude 4.5 Opus / Sonnet) in multi-turn conversations, as well as the resulting "Error searching files" infinite loop (Issue #737).
- Root Cause: Fixed a regression introduced in v3.3.33, where the already Base64-encoded
- API Monitor Refresh Fix (Fix Issue #735):
- Root Cause: Fixed the issue where new requests were not automatically appearing in the API Monitor list due to a Closure-related bug in the event listener.
- Fix Details: Optimized the event buffering logic using
useRef, added a manual Refresh button as a backup, and explicitly enabled Tauri event permissions.
- Strict Grouped Quota Protection Fix (Core Thanks to @Mag1cFall PR #746):
- Root Cause: Fixed an issue where quota protection failed in strict matching mode due to case sensitivity and missing frontend UI key mapping. Previously, UI shorthand keys like
gemini-procould not match the backend-definedgemini-3-pro-highstrict group. - Fix Details:
- Instant Case Normalization: Restored case-insensitive matching in backend
normalize_to_standard_id, ensuring variants likeGemini-3-Pro-Highare correctly recognized. - Smart UI Key Mapping: Added automatic mapping for UI column names like
gemini-pro/flashin frontendisModelProtected, ensuring lock icons correctly reflect backend protection status.
- Instant Case Normalization: Restored case-insensitive matching in backend
- Impact: Completely resolved lock icon display issues for Gemini 3 Pro/Flash and Claude 4.5 Sonnet in strict grouping mode, ensuring intuitive visual feedback when quotas are exhausted.
- Root Cause: Fixed an issue where quota protection failed in strict matching mode due to case sensitivity and missing frontend UI key mapping. Previously, UI shorthand keys like
- OpenAI Protocol Usage Statistics Fix (Pull Request #749, Thanks to @stillyun):
- Root Cause: During OpenAI protocol conversion, Gemini's
usageMetadatawas not mapped to theusagefield in OpenAI format, causing clients like Kilo to show zero token usage. - Fix Details:
- Data Model Completion: Added standard
usagefield toOpenAIResponse. - Full-Chain Mapping: Implemented logic to extract and map
prompt_tokens,completion_tokens, andtotal_tokensfrom both streaming (SSE) and non-streaming responses.
- Data Model Completion: Added standard
- Impact: Completely resolved the issue where tools like Kilo Editor and Claude Code could not track token usage when using the OpenAI protocol.
- Root Cause: During OpenAI protocol conversion, Gemini's
- Linux Theme Switch Crash Fix (Pull Request #750, Thanks to @infinitete):
- Fix Details:
- Disabled incompatible
setBackgroundColorcalls on Linux platform. - Disabled View Transition API for WebKitGTK environments to prevent transparent window crashes.
- Automatically adjusted GTK window alpha channel at startup for enhanced stability.
- Disabled incompatible
- Impact: Resolved potential program freezes or hard crashes for Linux users when switching between dark/light modes.
- Fix Details:
- OpenAI Codex/Responses Protocol Fix (Fix Issue #742):
-
v3.3.33 (2026-01-15):
- Codex Compatibility & Model Mapping Fix (Fix Issue #697):
- Instructions Parameter Support: Fixed the handling of the
instructionsparameter, ensuring it is correctly injected as System Instructions for better compatibility with tools like Codex. - Automatic Responses Format Detection: Added intelligent detection in the OpenAI handler to automatically recognize and transform
instructionsorinputfields into Responses mode. - Model Mapping Restoration & Normalization: Restored the logic that normalizes
gemini-3-pro-low/high/proto the internal aliasgemini-3-pro-preview, with proper restoration to the physicalhighmodel name for upstream requests. - Opus Mapping Enhancement: Optimized default mappings to recognize
opuskeywords and ensure they route to the high-performance Pro preview tier by default.
- Instructions Parameter Support: Fixed the handling of the
- OpenAI Tool Call ID & Reasoning Content Fix (Fix Issue #710):
- Preserve Tool Call ID: Resolved the issue where
tool_use.idwas lost during OpenAI format conversion, ensuring bothfunctionCallandfunctionResponseretain original IDs, fixing theField requirederror when calling Claude models. - Native Reasoning Support: Added support for the
reasoning_contentfield in OpenAI messages, correctly mapping it to internalthoughtblocks and injecting chain-of-thought signatures. - Tool Response Optimization: Fixed redundant part conflicts in
toolrole messages, ensuring strict compliance with upstream payload validation.
- Preserve Tool Call ID: Resolved the issue where
- External Provider Smart Fallback Fix (Fix Issue #703): Fixed the issue where "Fallback only" mode failed to automatically switch to external providers when Google account quotas were exhausted.
- Core Problem: The original logic only checked if the number of Google accounts was 0, without checking account availability (rate-limit status, quota protection status), causing direct 429 errors when accounts existed but were unavailable.
- Solution: Implemented smart account availability checking mechanism. Added
has_available_account()method inTokenManagerto comprehensively assess account rate-limit and quota protection status. - Modified Files:
token_manager.rs: Addedhas_available_account()method to check for available accounts that are not rate-limited or quota-protectedhandlers/claude.rs: Optimized Fallback mode logic from simplegoogle_accounts == 0to intelligent availability check
- Behavior Improvement: When all Google accounts are unavailable due to rate-limiting, quota protection, or other reasons, the system automatically switches to external providers, achieving true smart fallback.
- Impact: This fix ensures external providers (e.g., Zhipu API) "Fallback only" mode works correctly, significantly improving service availability in multi-account scenarios.
- Quota Protection Model Name Normalization Fix (Fix Issue #685): Fixed the issue where quota protection failed due to model name mismatches.
- Core Problem: Model names returned by the Quota API (e.g.,
gemini-2.5-flash) didn't match the standard names in the UI (e.g.,gemini-3-flash), causing string matching failures and preventing protection triggers. - Solution: Implemented a unified model name normalization engine
normalize_to_standard_id, mapping all physical model names to three standard protection IDs:gemini-3-flash: All Flash variants (1.5-flash, 2.5-flash, 3-flash, etc.)gemini-3-pro-high: All Pro variants (1.5-pro, 2.5-pro, etc.)claude-sonnet-4-5: All Claude Sonnet variants (3.5-sonnet, sonnet-4-5, etc.)
- Modified Files:
model_mapping.rs: Added normalization functions.account.rs: Normalizes model names when updating quotas and stores the standard ID.token_manager.rs: Normalizestarget_modelfor matching during request interception.
- Web Search Downgrade Scenario: Even if a request is downgraded to
gemini-2.5-flashdue to web search, it is correctly normalized togemini-3-flashand triggers protection. - Impact: Completely resolved quota protection failure, ensuring all three monitored models work correctly.
- Core Problem: Model names returned by the Quota API (e.g.,
- New Account Import Feature (#682): Supports batch importing existing accounts via exported JSON files, completing the account migration loop.
- New Portuguese & Russian Support (#691, #713): Portuguese (Brazil) and Russian localizations are now supported.
- Proxy Monitor Enhancement (#676): Added "Copy" buttons for request and response payloads in the proxy monitor details page, with support for automatic JSON formatting.
- i18n Fixes (#671, #713): Corrected misplaced translation keys in Japanese (ja), Turkish (tr), and Russian (ru).
- Global HTTP API (#696): Added a local HTTP server port (default 19527), allowing external tools (like VS Code extensions) to switch accounts, refresh quotas, and bind devices directly via API.
- Proxy Monitor Upgrade (#704): Completely refactored the monitor dashboard with backend pagination (supporting search filters), resolving UI lag caused by massive logs; exposed
GET /logsendpoint for external access. - Warmup Strategy Optimization (#699): Added unique
session_idto warmup requests, limitedmax_tokensto 8, and settemperatureto 0 to reduce resource consumption and avoid 429 errors. - Warmup Logic Fix & Optimization: Fixed an issue where manual warmup triggers didn't record history, causing redundant auto-warmups; optimized scheduler to skip accounts with "Proxy Disabled" status.
- Performance Mode Scheduling Optimization (PR #706): In "Performance First" scheduling mode, the default 60-second global lock mechanism is now skipped, significantly improving account rotation efficiency in high-concurrency scenarios.
- Rate Limit Auto-Cleanup (PR #701): Introduced a background cleanup task running every minute to automatically remove expired failure records older than 1 hour, completely resolving false "No available accounts" alerts caused by accumulated historical records during long-term operation.
- API Monitor Stale Data Fix (Fix Issue #708): Enabled SQLite WAL mode and optimized connection configuration, completely resolving stale monitor data and proxy service 400/429 errors caused by database locking under high concurrency.
- Claude Prompt Filtering Optimization (#712): Fixed an issue where user custom instructions (Instructions from: ...) were accidentally removed when filtering redundant Claude Code default prompts, ensuring personalized configurations persist in long conversation scenarios.
- Claude Thinking Block Ordering Optimization (Fix Issue #709): Completely resolved
INVALID_ARGUMENTerrors caused by incorrect block ordering (Text appearing before Thinking) when thinking mode is enabled.- Triple-Stage Partitioning: Implemented strict
[Thinking, Text, ToolUse]order validation. - Automatic Downgrade Gateway: Within a single message, any thinking blocks appearing after non-thinking content are automatically downgraded to text to ensure protocol compliance.
- Post-Merge Reordering: Added a mandatory reordering step after Assistant message merging to prevent ordering violations caused by concatenation.
- Triple-Stage Partitioning: Implemented strict
- Codex Compatibility & Model Mapping Fix (Fix Issue #697):
-
v3.3.32 (2026-01-15):
- Core Scheduling & Stability Optimization (Fix Issue #630, #631 - Special Thanks to @lbjlaq PR #640):
- Quota Vulnerability & Bypass Fix: Resolved potential vulnerabilities where quota protection mechanisms could be bypassed under high concurrency or specific retry scenarios.
- Rate-Limit Key Matching Optimization: Enhanced the precision of rate-limit record matching in
TokenManager, resolving inconsistent rate-limit judgments in multi-instance or complex network environments. - Account Disabling Enforcement: Fixed an issue where manually disabled accounts were not immediately removed from the scheduling pool during certain cache lifecycles, ensuring "disable on click".
- Account State Reset Mechanism: Refined the strategy for resetting account failure counters after successful requests, preventing accounts from being incorrectly locked for long periods due to historical fluctuations.
- Core Scheduling & Stability Optimization (Fix Issue #630, #631 - Special Thanks to @lbjlaq PR #640):
-
v3.3.31 (2026-01-14):
- Quota Protection Fix (Fix Issue #631):
- In-Memory State Sync: Fixed an issue where in-memory account state was not synchronized immediately when quota protection was triggered during load.
- Full Coverage: Added quota protection checks to "Sticky Session" and "60s Window Lock" logic to prevent reuse of protected accounts.
- Code Cleanup: Resolved compilation warnings in
token_manager.rs.
- Claude Tool Call Duplicate Error Fix (Fix Issue #632):
- Elastic-Recovery Optimization: Improved the
Elastic-Recoverylogic by adding a full-message pre-scanning mechanism for IDs. This prevents the injection of placeholder results when a real one exists later in the history, resolving theFound multiple tool_result blocks with iderror. - Anthropic Protocol Compliance: Ensures that generated request payloads strictly adhere to Anthropic's requirements for unique tool call IDs.
- Elastic-Recovery Optimization: Improved the
- Quota Protection Fix (Fix Issue #631):
-
v3.3.30 (2026-01-14):
- Model-Specific Quota Protection (Issue #621):
- Isolation Optimization: Resolved the issue where an entire account was disabled when a single model's quota was exhausted. Quota protection is now applied only to the specific restricted model, allowing the account to still handle requests for other models.
- Automatic Migration: The new system automatically restores accounts globally disabled by old quota protection and smoothly transitions them to model-level restrictions.
- Full Protocol Support: Routing logic for Claude, OpenAI (Chat/DALL-E), Gemini, and Audio handlers has been updated.
- Gemini Parameter Hallucination Fix (PR #622):
- Parameter Correction: Fixed the issue where Gemini models incorrectly placed the
patternparameter indescriptionorqueryfields by adding automatic remapping logic. - Boolean Coercion: Added support for automatic conversion of non-standard boolean values like
yes/no,-n, resolving invocation failures caused by type errors in parameters likelineNumbers. - Impact: Significantly improved the stability and compatibility of Gemini models in Claude Code CLI and other tool calling scenarios.
- Parameter Correction: Fixed the issue where Gemini models incorrectly placed the
- Code Cleanup & Warning Fixes (PR #628):
- Compiler Warning Resolution: Fixed multiple unused import and variable warnings, removing redundant code to keep the codebase clean.
- Cross-Platform Compatibility: Optimized macro annotations for different code paths across Windows, macOS, and Linux platforms.
- Custom API Key Editing Feature (Issue #627):
- Custom Key Support: The "API Key" configuration item on the API Proxy page now supports direct editing. Users can input custom keys, suitable for multi-instance deployment scenarios.
- Retained Auto-generation: The original "Regenerate" function is retained. Users can choose to auto-generate or manually input.
- Format Validation: Added API key format validation (must start with
sk-and be at least 10 characters long) to prevent invalid input. - Multi-language Support: Complete internationalization translations added for all 6 supported languages (Simplified Chinese, English, Traditional Chinese, Japanese, Turkish, Vietnamese).
- Model-Specific Quota Protection (Issue #621):
-
v3.3.29 (2026-01-14):
- OpenAI Streaming Function Call Support Fix (Fix Issue #602, #614):
- Background: OpenAI interface streaming responses (
stream: true) lacked Function Call processing logic, preventing clients from receiving tool call information. - Root Cause: The
create_openai_sse_streamfunction only handled text content, thinking content, and images, completely missingfunctionCallprocessing. - Fix Details:
- Added tool call state tracking variable (
emitted_tool_calls) to prevent duplicate sends - Added
functionCalldetection and conversion logic in parts loop - Built OpenAI-compliant
delta.tool_callsarray - Used hash algorithm to generate stable
call_id - Included complete tool call information (
index,id,type,function.name,function.arguments)
- Added tool call state tracking variable (
- Impact: This fix ensures streaming requests correctly return tool call information, maintaining consistency with non-streaming responses and Codex streaming responses. All clients using
stream: true+toolsparameters can now properly receive Function Call data.
- Background: OpenAI interface streaming responses (
- Smart Threshold Recovery - Resolve Issue #613:
- Core Logic: Implemented a dynamic token reporting mechanism perceived to context load.
- Fix Details:
- Three-Stage Scaling: Maintains efficient compression at low loads (0-70%), smoothly reduces compression rate at medium loads (70-95%), and reports real usage near the 100% limit (regressing to ~195k).
- Model Awareness: Processor automatically identifies physical context boundaries for 1M (Flash) and 2M (Pro).
- 400 Error Interception: Even if physical overflow occurs, the proxy intercepts
Prompt is too longerrors and returns friendly guidance, directing users to execute/compact.
- Impact: Completely resolved the issue where Claude Code refused to compress due to hidden token usage, ultimately leading to Gemini server errors in long conversation scenarios.
- Playwright MCP Stability & Connectivity Enhancement (Inspired by Antigravity2Api) - Resolve Issue #616:
- SSE Keep-Alive: Introduced 15s heartbeats (
: ping) to prevent connection timeouts during long-running tool calls. - MCP XML Bridge: Bidirectional protocol conversion (instruction injection + label interception), significantly improving reliability for MCP tools (like Playwright).
- Aggressive Context Slimming:
- Instruction Filtering: Automatically removes redundant Claude Code system instructions (~1-2k tokens).
- Task Deduplication: Strips repeated task echo text following tool results to further reduce context usage.
- Intelligent HTML Cleaning & Truncation:
- Deep Stripping: Automatically removes
<style>,<script>, and inline Base64 resources from browser snapshots. - Structured Truncation: Enhanced truncation algorithm prevents cutting through HTML tags or JSON objects, avoiding 400 structure errors.
- Deep Stripping: Automatically removes
- SSE Keep-Alive: Introduced 15s heartbeats (
- Account Index Loading Robustness (Fix Issue #619):
- Fix Details: Added empty file detection and automatic reset logic when loading
accounts.json. - Impact: Completely resolved the startup error
expected value at line 1 column 1caused by corrupted or empty index files.
- Fix Details: Added empty file detection and automatic reset logic when loading
- OpenAI Streaming Function Call Support Fix (Fix Issue #602, #614):
-
v3.3.28 (2026-01-14):
- OpenAI Thinking Content Fix (PR #604):
- Fixed Gemini 3 Pro Thinking Content Loss: Added
reasoning_contentaccumulation logic in streaming response collector, resolving the issue where Gemini 3 Pro (high/low) non-streaming responses lost thinking content. - *Support for Claude -thinking Models: Extended thinking model detection logic to support all models ending with
-thinking(e.g.,claude-opus-4-5-thinking,claude-sonnet-4-5-thinking), automatically injectingthinkingConfigto ensure proper thinking content output. - Unified Thinking Configuration: Injected unified
thinkingBudget: 16000configuration for all thinking models (Gemini 3 Pro and Claude thinking series), complying with Cloud Code API specifications. - Impact: This fix ensures the
reasoning_contentfield works properly for Gemini 3 Pro and Claude Thinking models under OpenAI protocol, without affecting Anthropic and Gemini native protocols.
- Fixed Gemini 3 Pro Thinking Content Loss: Added
- Experimental Config Hot Reload (PR #605):
- Added Hot Reload Support: Added hot reload mechanism for
ExperimentalConfig, consistent with other config items (mapping, proxy, security, zai, scheduling). - Real-time Effect: Users can modify experimental feature switches without restarting the application, improving configuration adjustment convenience.
- Architecture Enhancement: Added
experimentalfield storage andupdate_experimental()method inAxumServer, automatically triggering hot reload insave_config.
- Added Hot Reload Support: Added hot reload mechanism for
- Smart Warmup Strategy Optimization (PR #606 - 2.9x-5x Performance Boost):
- Separated Refresh and Warmup: Removed automatic warmup trigger during quota refresh. Warmup now only triggers via scheduler (every 10 minutes) or manual button, avoiding accidental quota consumption when users refresh quotas.
- Extended Cooldown Period: Cooldown period extended from 30 minutes to 4 hours (14400 seconds), matching Pro account 5-hour reset cycle, completely resolving repeated warmup within the same cycle.
- Persistent History Records: Warmup history saved to
~/.antigravity_tools/warmup_history.json, cooldown period remains effective after program restart, resolving state loss issue. - Concurrent Execution Optimization:
- Filtering phase: 5 accounts per batch concurrent quota fetching, 10 accounts from ~15s to ~3s (5x improvement)
- Warmup phase: 3 tasks per batch concurrent execution with 2s interval, 40 tasks from ~80s to ~28s (2.9x improvement)
- Whitelist Filtering: Only records and warms up 4 core model groups (
gemini-3-flash,claude-sonnet-4-5,gemini-3-pro-high,gemini-3-pro-image), avoiding bloated history records. - Record After Success: Failed warmups are not recorded in history, allowing retry next time, improving fault tolerance.
- Manual Warmup Protection: Manual warmup also respects 4-hour cooldown period, filters already-warmed models and displays skip count, preventing users from repeatedly clicking and wasting quota.
- Enhanced Logging: Added detailed logs for scheduler scanning, warmup start/completion, cooldown skips, facilitating monitoring and debugging.
- Impact: This optimization significantly improves smart warmup performance and reliability, resolving multiple issues including repeated warmup, slow speed, and state loss. Concurrency level won't trigger RateLimit.
- Traditional Chinese Localization Optimization (PR #607):
- Terminology Optimization: Optimized 100 Traditional Chinese translations to better align with Taiwan users' language habits and expressions.
- User Experience Enhancement: Improved professionalism and readability of Traditional Chinese interface, pure text changes with no code logic impact.
- API Monitor Performance Optimization (Fix Long-Running White Screen Issue):
- Background: Fixed the issue where the window would freeze to a white screen after prolonged background operation when staying on the API monitor page, with the program still running but UI unresponsive.
- Memory Optimization:
- Reduced in-memory log limit from 1000 to 100 entries, significantly lowering memory usage
- Removed full request/response body storage in real-time events, retaining only summary information
- Optimized backend event transmission to send only log summaries instead of complete data, reducing IPC transfer volume
- Rendering Performance Boost:
- Integrated
@tanstack/react-virtualvirtual scrolling library, rendering only visible rows (~20-30 rows) - DOM node count reduced from 1000+ to 20-30, a 97% reduction
- Scroll frame rate improved from 20-30fps to 60fps
- Integrated
- Debounce Mechanism:
- Added 500ms debounce mechanism for batch log updates, avoiding frequent state updates
- Reduced React re-render count, improving UI responsiveness
- Performance Improvements:
- Memory usage: ~500MB → <100MB (90% reduction)
- Initial render time: ~2000ms → <100ms (20x improvement)
- Supports infinite log scrolling, no white screen during long-running sessions
- Impact: This optimization completely resolves performance issues in long-running and high-volume log scenarios, maintaining smooth operation even when staying on the monitor page for hours.
- OpenAI Thinking Content Fix (PR #604):
-
v3.3.27 (2026-01-13):
- Experimental Config & Usage Scaling (PR #603 Enhancement):
- New Experimental Settings Panel: Added an "Experimental Settings" card in API Proxy configuration to manage features currently under exploration.
- Enable Usage Scaling: Implemented aggressive input token scaling for Claude-compatible protocols. When total input exceeds 30k, square-root scaling is automatically applied to prevent frequent client-side compression in large context scenarios (e.g., Gemini 2M window).
- Localization Core: Completed translations for experimental features in all 6 supported languages (zh, en, zh-TW, ja, tr, vi).
- Experimental Config & Usage Scaling (PR #603 Enhancement):
-
v3.3.26 (2026-01-13):
- Quota Protection & Scheduling Optimization (Fix Issue #595 - Zero Quota Accounts in Queue):
- Quota Protection Logic Refactor: Fixed the issue where quota protection failed due to reliance on non-existent
limit/remainingfields. It now directly uses thepercentagefield, ensuring that accounts are immediately disabled if any monitored model (e.g., Claude 4.5 Sonnet) falls below the threshold. - Priority Algorithm Upgrade: Account scheduling priority is no longer solely based on subscription tiers. Within the same tier (Ultra/Pro/Free), the system now prioritizes accounts with the highest maximum remaining percentage, preventing "squeezing" of near-empty accounts and significantly reducing 429 errors.
- Enhanced Protection Logs: Logs when quota protection is triggered now explicitly state which model triggered the threshold (e.g.,
quota_protection: claude-sonnet-4-5 (0% <= 10%)), facilitating troubleshooting.
- Quota Protection Logic Refactor: Fixed the issue where quota protection failed due to reliance on non-existent
- MCP Tool Compatibility Enhancement (Fix Issue #593):
- Deep cache_control Cleanup: Implemented multi-layer
cache_controlfield cleanup mechanism, completely resolving "Extra inputs are not permitted" errors caused bycache_controlin thinking blocks when using tools like Chrome Dev Tools MCP.- Enhanced Log Tracking: Added
[DEBUG-593]log prefix, recording message and block indices for easy problem localization and debugging. - Recursive Deep Cleanup: Added
deep_clean_cache_control()function to recursively traverse all nested objects and arrays, removingcache_controlfields from any location. - Final Safety Net: Performs deep cleanup again after building Gemini request body and before sending, ensuring no
cache_controlfields are sent to Antigravity.
- Enhanced Log Tracking: Added
- Smart Tool Output Compression: Added
tool_result_compressormodule to handle oversized tool outputs, reducing 429 error probability caused by excessive prompt length.- Browser Snapshot Compression: Automatically detects and compresses browser snapshots exceeding 20,000 characters, using head (70%) + tail (30%) retention strategy with middle omission.
- Large File Notice Compression: Intelligently identifies "exceeds maximum allowed tokens" pattern, extracts key information (file path, character count, format description), significantly reducing redundant content.
- General Truncation: Truncates tool outputs exceeding 200,000 characters with clear truncation notices.
- Base64 Image Removal: Automatically removes base64-encoded images from tool results to avoid excessive size.
- Complete Test Coverage: Added 7 unit tests covering text truncation, browser snapshot compression, large file notice compression, tool result cleanup, and other core functionalities, all passing validation.
- Impact: This update significantly improves stability for MCP tools (especially Chrome Dev Tools MCP), resolving API errors caused by
cache_controlfields in thinking blocks, while reducing 429 error probability through smart compression of oversized tool outputs.
- Deep cache_control Cleanup: Implemented multi-layer
- API Monitor Account Information Recording Fix:
- Fixed Image Generation Endpoint: Resolved the missing
X-Account-Emailresponse header issue in the/v1/images/generationsendpoint. The monitoring panel now correctly displays account information for image generation requests. - Fixed Image Editing Endpoint: Resolved the missing
X-Account-Emailresponse header issue in the/v1/images/editsendpoint, ensuring account information for image editing requests is properly logged. - Fixed Audio Transcription Endpoint: Resolved the missing
X-Account-Emailresponse header issue in the/v1/audio/transcriptionsendpoint, completing monitoring support for audio transcription functionality. - Impact: This fix ensures all API endpoints involving account calls correctly display account information in the monitoring panel instead of showing "-", improving the completeness and usability of the API monitoring system.
- Fixed Image Generation Endpoint: Resolved the missing
- Headless Server Deployment Support:
- One-click Deployment Scripts: Added
deploy/headless-xvfb/directory, providing installation, sync, and upgrade scripts for headless Linux servers. - Xvfb Environment Adaptation: Enables the GUI version of Antigravity Tools to run on remote servers without display hardware via virtual display technology, complete with resource consumption warnings and limitation documentation.
- One-click Deployment Scripts: Added
- Quota Protection & Scheduling Optimization (Fix Issue #595 - Zero Quota Accounts in Queue):
-
v3.3.25 (2026-01-13):
- Session-Based Signature Caching System - Improved Thinking Model Stability (Core Thanks to @Gok-tug PR #574):
- Three-Layer Signature Cache Architecture: Implemented a complete three-layer caching system for Tool Signatures (Layer 1), Thinking Families (Layer 2), and Session Signatures (Layer 3).
- Session Isolation Mechanism: Generates stable session_id based on SHA256 hash of the first user message, ensuring all turns of the same conversation use the same session identifier.
- Smart Signature Recovery: Automatically recovers thinking signatures in tool calls and multi-turn conversations, significantly reducing signature-related errors for thinking models.
- Priority Lookup Strategy: Implements Session Cache → Tool Cache → Global Store three-layer lookup priority, maximizing signature recovery success rate.
- Session ID Generation Optimization:
- Simple Design: Only hashes the first user message content, without mixing model names or timestamps, ensuring session continuity.
- Perfect Continuity: All turns of the same conversation (regardless of how many) use the same session_id, with no time limit.
- Performance Improvement: Compared to previous solutions, CPU overhead reduced by 60%, code lines reduced by 20%.
- Cache Management Optimization:
- Layered Thresholds: Set reasonable cache cleanup thresholds for different layers (Tool: 500, Family: 200, Session: 1000).
- Smart Cleanup: Added detailed cache cleanup logs for easy monitoring and debugging.
- Compilation Error Fixes:
- Fixed parameter naming and mutability issues in
process.rs. - Cleaned up unused import and variable warnings.
- Fixed parameter naming and mutability issues in
- Internationalization (i18n):
- Traditional Chinese Support: Added Traditional Chinese localization support (Thank you @audichuang PR #577).
- Stream Error Handling Improvements:
- Friendly Error Messages: Fixed Issue #579 where stream errors resulted in 200 OK without info. Technical errors (Timeout, Decode, Connection) are now converted to user-friendly messages.
- SSE Error Events: Implemented standard SSE error event propagation, allowing the frontend to gracefully display errors with detailed suggestions (check network, proxy, etc.).
- Multi-language Error Messages (i18n): Error messages are now integrated with the i18n system, supporting all 6 languages (zh, en, zh-TW, ja, tr, vi). Non-browser clients automatically fallback to English messages.
- Impact: This update significantly improves multi-turn conversation stability for thinking models like Claude 4.5 Opus and Gemini 3 Pro, especially in scenarios using MCP tools and long sessions.
- Session-Based Signature Caching System - Improved Thinking Model Stability (Core Thanks to @Gok-tug PR #574):
Show older changelog (v3.3.24 and earlier)
-
v3.3.24 (2026-01-12):
- UI Interaction Improvements:
- Card-based Model Selection: Upgraded model selection in "Quota Protection" and "Smart Warmup" to a card-based design with checkmarks for selected states and clear borders for unselected states.
- Layout Optimization: Adjusted "Smart Warmup" model list from 2 columns to 4 columns for a more compact and organized look.
- Model Name Fix: Corrected the display name for
claude-sonnet-4-5from "Claude 3.5 Sonnet" to "Claude 4.5 Sonnet".
- Internationalization (i18n):
- Vietnamese Support: Added Vietnamese localization support (Thank you @ThanhNguyxn PR #570).
- Translation Refinement: Cleaned up duplicate translation keys and optimized automatic language detection logic.
- UI Interaction Improvements:
-
v3.3.23 (2026-01-12):
- Update Notification UI Modernization:
- Visual Upgrade: Adopts "Glassmorphism" design with elegant gradients and shimmer effects, significantly improving visual quality.
- Smooth Animations: Introduced smoother entry and exit animations for a better interactive experience.
- Dark Mode Support: Fully supports Dark Mode, automatically adapting to system theme for eye-friendly viewing.
- Non-intrusive Layout: Optimized notification positioning and z-index to ensure it doesn't block critical navigation areas.
- Internationalization Support:
- Bilingual Support: The update notification now fully supports both English and Chinese, automatically switching based on app language settings.
- Check Logic Fix: Fixed timing issues with update check status updates, ensuring notifications reliably appear when a new version is detected.
- Menu Bar Icon Resolution Fix:
- Retina Support: Upgraded the menu bar tray icon (
tray-icon.png) resolution from 22x22 to 44x44, completely resolving blurriness on high-DPI displays (Fix Issue #557).
- Retina Support: Upgraded the menu bar tray icon (
- Claude Thinking Compression Optimization (Core Thanks to @ThanhNguyxn PR #566):
- Fixed Thinking Block Reordering: Resolved an issue where Thinking Blocks could be incorrectly ordered after text blocks when using Context Compression (Kilo).
- Enforced Primary Sorting: Introduced
sort_thinking_blocks_firstlogic to ensure thinking blocks in assistant messages are always placed first, complying with Anthropic API's 400 validation rules.
- Account Routing Priority Enhancement (Core Thanks to @ThanhNguyxn PR #567):
- High Quota First Strategy: Within the same tier (Free/Pro/Ultra), the system now prioritizes accounts with more remaining quota.
- Resource Balancing: Prevents long-quota accounts from being idle while short-quota accounts are exhausted prematurely due to random assignment.
- Non-Streaming Base64 Signature Fix (Core Thanks to @ThanhNguyxn PR #568):
- Full Mode Compatibility: Applied the Base64 thinking signature decoding logic from streaming responses to non-streaming responses.
- Eliminated Signature Errors: Completely resolved 400 errors caused by inconsistent signature encoding formats when using Antigravity proxy with non-streaming clients (e.g., Python SDK).
- Internationalization (i18n):
- Japanese Support: Added Japanese localization support (Thank you @Koshikai PR #526).
- Turkish Support: Added Turkish localization support (Thank you @hakanyalitekin PR #515).
- Update Notification UI Modernization:
-
v3.3.22 (2026-01-12):
- Quota Protection System Upgrade:
- Customizable monitored models (
gemini-3-flash,gemini-3-pro-high,claude-sonnet-4-5), triggers protection only when selected models fall below threshold - Protection logic optimized to "minimum quota of selected models" trigger mechanism
- Auto-selects
claude-sonnet-4-5when enabling protection, UI enforces at least one model selection
- Customizable monitored models (
- Automated Quota Management Workflow:
- Enforced background auto-refresh to ensure real-time quota data sync
- Automated execution of "Refresh → Protect → Restore → Warmup" complete lifecycle management
- Customizable Smart Warmup:
- Customizable warmup models (
gemini-3-flash,gemini-3-pro-high,claude-sonnet-4-5,gemini-3-pro-image) - New standalone
SmartWarmup.tsxcomponent with consistent selection experience as quota protection - Auto-selects all core models when enabling warmup, UI enforces at least one model selection
- Scheduler reads config in real-time, changes take effect immediately
- Customizable warmup models (
- Smart Warmup System Foundation:
- Auto-triggers warmup when quota recovers to 100%
- Smart deduplication: only warmup once per 100% cycle
- Scheduler scans every 10 minutes and syncs latest quota to frontend
- Covers all account types (Ultra/Pro/Free)
- i18n Improvements: Fixed missing translations for "Auto Check Update" and "Device Fingerprint" (Issue #550)
- Stability Fixes: Fixed variable reference and ownership conflicts under high-concurrency scheduling
- API Monitor Performance Optimization (Fix Issue #560):
- Background: Fixed 5-10 second response delay and application crash issues when opening the API monitor interface on macOS
- Database Optimization: Added
statusfield index (50x faster stats queries), optimizedget_stats()from 3 full table scans to 1 (66% faster) - Paginated Loading: List view excludes large
request_body/response_bodyfields (90%+ data reduction), addedget_proxy_logs_paginatedcommand (20 items/page), frontend "Load More" button - On-Demand Details: Added
get_proxy_log_detailcommand, queries full data only on click (0.1-0.5s load time) - Auto Cleanup: Removes logs older than 30 days on startup, executes VACUUM to reclaim disk space
- UI Enhancements: Loading indicators, 10-second timeout control, detail modal spinner
- Performance: Initial load 10-18s → 0.5-1s (10-36x), memory 1GB → 5MB (200x), data transfer 1-10GB → 1-5MB (200-2000x)
- Impact: Supports smooth viewing of 10,000+ monitoring records
- Log Enhancements: Fixed account/model logging issues in proxy warmup logic and added missing localization keys.
- Quota Protection System Upgrade:
-
v3.3.21 (2026-01-11):
- Stability & Tool Fixes:
- Grep/Glob Argument Fix (P3-5): Resolved "Error searching files" issue for Grep and Glob tools. Corrected parameter mapping: changed from
paths(array) topath(string), and implemented case-insensitive tool name matching. - RedactedThinking Support (P3-2): Gracefully downgrades redacted thinking blocks to text
[Redacted Thinking], preserving context instead of dropping data. - JSON Schema Cleaning Fix: Fixed a regression where properties named "pattern" were incorrectly removed; improved schema compatibility.
- Strict Role Alternation (P3-3): Implemented message merging to enforce strict User/Assistant alternation, preventing Gemini API 400 errors.
- 400 Auto-Retry (P3-1): Enhanced auto-retry and account rotation logic for 400 Bad Request errors, improving overall stability.
- Grep/Glob Argument Fix (P3-5): Resolved "Error searching files" issue for Grep and Glob tools. Corrected parameter mapping: changed from
- High-Concurrency Performance Optimization (Issue #284 Fix):
- Completely Resolved UND_ERR_SOCKET Error: Fixed client socket timeout issues in 8+ concurrent Agent scenarios.
- Removed Blocking Wait: Eliminated the 60-second blocking wait in "Cache First" mode when bound accounts are rate-limited. Now immediately unbinds and switches to the next available account, preventing client timeouts.
- Lock Contention Optimization: Moved
last_used_accountlock acquisition outside the retry loop, reducing lock operations from 18 to 1-2 per request, dramatically decreasing lock contention in concurrent scenarios. - 5-Second Timeout Protection: Added a 5-second mandatory timeout for
get_token()operations to prevent indefinite hangs during system overload or deadlock. - Impact: This optimization significantly improves stability in multi-Agent concurrent scenarios (such as Claude Code, Cursor, etc.), completely resolving the "headless request" deadlock issue.
- Linux System Compatibility (Core Thanks to @0-don PR #326):
- Transparent Window Fix: Automatically disables DMA-BUF renderer (
WEBKIT_DISABLE_DMABUF_RENDERER=1) on Linux systems to resolve transparent window rendering or black screen issues in some distributions.
- Transparent Window Fix: Automatically disables DMA-BUF renderer (
- Monitor Middleware Optimization (Core Thanks to @Mag1cFall PR #346):
- Payload Limit Alignment: Increased request body limit for monitor middleware from 1MB to 100MB, ensuring large image requests are correctly logged and displayed.
- OpenAI Protocol Multi-Candidate Support (Core Thanks to @ThanhNguyxn PR #403):
- Implemented support for the
nparameter, allowing a single request to return multiple candidates. - Added the multi-candidate support patch for streaming responses (SSE), ensuring cross-platform functional parity.
- Implemented support for the
- Web Search Enhancement & Citation Optimization:
- Re-implemented web search source display using a more readable Markdown citation format (including titles and links).
- Resolved the issue where citation display logic was disabled in previous versions; it is now fully enabled in both streaming and non-streaming modes.
- Installation & Distribution (Core Thanks to @dlukt PR #396):
- Linux Cask Support: Refactored Cask file for multi-platform support. Linux users can now install via
brew install --caskwith automatic AppImage permission configuration.
- Linux Cask Support: Refactored Cask file for multi-platform support. Linux users can now install via
- Comprehensive Logging System Optimization (Issue #241 Fix):
- Comprehensive Logging System Optimization (Issue #241 Fix):
- Log Level Optimization: Downgraded high-frequency debug logs for tool calls and parameter remapping from
info!todebug!, dramatically reducing log output volume. - Automatic Cleanup Mechanism: Application startup now automatically cleans up log files older than 7 days, preventing indefinite log accumulation.
- Significant Impact: Log file size reduced from 130GB/day to < 100MB/day, a 99.9% reduction in log output.
- Scope: Modified 21 log level statements in
streaming.rsandresponse.rs, addedcleanup_old_logs()automatic cleanup function.
- Log Level Optimization: Downgraded high-frequency debug logs for tool calls and parameter remapping from
- Stability & Tool Fixes:
-
v3.3.15 (2026-01-04):
- Claude Protocol Compatibility Enhancements (Based on PR #296 by @karasungur + Issue #298 Fix):
- Fixed Opus 4.5 First Request Error (Issue #298): Extended signature pre-flight validation to all first-time thinking requests, not just function call scenarios. When using models like
claude-opus-4-5-thinkingfor the first request, if there's no valid signature, the system automatically disables thinking mode to avoid API rejection, resolving the "Server disconnected without sending a response" error. - Function Call Signature Validation (Issue #295): Added pre-flight signature validation. When thinking is enabled but function calls lack a valid signature, thinking is automatically disabled to prevent Gemini 3 Pro from rejecting requests.
- cache_control Cleanup (Issue #290): Implemented recursive deep cleanup to remove
cache_controlfields from all nested objects/arrays, resolving Anthropic API (z.ai mode) "Extra inputs are not permitted" errors. - Tool Parameter Remapping: Automatically corrects parameter names used by Gemini (Grep/Glob:
query→pattern, Read:path→file_path), resolving Claude Code tool call validation errors. - Configurable Safety Settings: Added
GEMINI_SAFETY_THRESHOLDenvironment variable supporting 5 safety levels (OFF/LOW/MEDIUM/HIGH/NONE), defaulting to OFF for backward compatibility. - Effort Parameter Support: Supports Claude API v2.0.67+
output_config.effortparameter, allowing fine-grained control over model reasoning effort. - Opus 4.5 Default Thinking: Aligned with Claude Code v2.0.67+, Opus 4.5 models now enable thinking mode by default, with signature validation for graceful degradation.
- Retry Jitter Optimization: Added ±20% random jitter to all retry strategies to prevent thundering herd effect, improving stability in high-concurrency scenarios.
- Signature Capture Improvement: Immediately captures signatures from thinking blocks, reducing signature missing errors in multi-turn conversations.
- Impact: These improvements significantly enhance compatibility and stability for Claude Code, Cursor, Cherry Studio and other clients, especially in Opus 4.5 models, tool calling, and multi-turn conversation scenarios.
- Fixed Opus 4.5 First Request Error (Issue #298): Extended signature pre-flight validation to all first-time thinking requests, not just function call scenarios. When using models like
- Claude Protocol Compatibility Enhancements (Based on PR #296 by @karasungur + Issue #298 Fix):
-
v3.3.14 (2026-01-03):
- Claude Protocol Robustness Improvements (Core Thanks to @karasungur PR #289):
- Thinking Block Signature Validation Enhancement:
- Support for empty thinking blocks with valid signatures (trailing signature scenario)
- Invalid signature blocks gracefully degrade to text instead of being dropped, preserving content to avoid data loss
- Enhanced debugging logs for signature issue troubleshooting
- Tool/Function Calling Compatibility Optimization:
- Extracted web search fallback model to named constant
WEB_SEARCH_FALLBACK_MODELfor improved maintainability - Automatically skips googleSearch injection when MCP tools are present to avoid conflicts
- Added informative logging for debugging tool calling scenarios
- Important Note: Gemini Internal API does not support mixing
functionDeclarationsandgoogleSearch
- Extracted web search fallback model to named constant
- SSE Parse Error Recovery Mechanism:
- Added
parse_error_countandlast_valid_statetracking for streaming response error monitoring - Implemented
handle_parse_error()for graceful stream degradation - Implemented
reset_error_state()for post-error recovery - Implemented
get_error_count()for error count retrieval - High error rate warning system (>5 errors) for operational monitoring
- Detailed debugging logs supporting troubleshooting of corrupted streams
- Added
- Impact: These improvements significantly enhance stability for Claude CLI, Cursor, Cherry Studio and other clients, especially in multi-turn conversations, tool calling, and streaming response scenarios.
- Thinking Block Signature Validation Enhancement:
- Dashboard Statistics Fix (Core Thanks to @yinjianhong22-design PR #285):
- Fixed Low Quota Statistics False Positives: Fixed the issue where disabled accounts (403 status) were incorrectly counted in "Low Quota" statistics
- Logic Optimization: Added
is_forbiddencheck inlowQuotaCountfilter to exclude disabled accounts - Data Accuracy Improvement: Dashboard now accurately reflects the true number of low-quota active accounts, avoiding false positives
- Impact: Improved dashboard data accuracy and user experience, allowing users to more clearly understand which accounts need attention.
- Claude Protocol Robustness Improvements (Core Thanks to @karasungur PR #289):
-
v3.3.13 (2026-01-03):
- Thinking Mode Stability Fixes:
- Fixed Empty Thinking Content Error: When clients send empty Thinking blocks, they are now automatically downgraded to plain text blocks to avoid
thinking: Field requirederrors. - Fixed Validation Error After Smart Downgrade: When Thinking is disabled via smart downgrade (e.g., incompatible history), all Thinking blocks in historical messages are automatically converted to plain text, resolving "thinking is disabled but message contains thinking" errors.
- Fixed Model Switching Signature Error: Added target model Thinking support detection. When switching from Claude thinking models to regular Gemini models (e.g.,
gemini-2.5-flash), Thinking is automatically disabled and historical messages are downgraded to avoid "Corrupted thought signature" errors. Only models with-thinkingsuffix (e.g.,gemini-2.5-flash-thinking) or Claude models support Thinking. - Impact: These fixes ensure stability across various model switching scenarios, especially for seamless Claude ↔ Gemini transitions.
- Fixed Empty Thinking Content Error: When clients send empty Thinking blocks, they are now automatically downgraded to plain text blocks to avoid
- Account Rotation Rate-Limiting Mechanism Optimization (Critical Fix for Issue #278):
- Fixed Rate-Limit Time Parsing Failure: Completely resolved the issue where Google API's
quotaResetDelaycould not be correctly parsed.- Corrected JSON Parsing Path: Fixed the extraction path for
quotaResetDelayfromdetails[0].quotaResetDelaytodetails[0].metadata.quotaResetDelay, matching Google API's actual JSON structure. - Implemented Universal Time Parsing: Added
parse_duration_string()function to support parsing all time formats returned by Google API, including complex combinations like"2h21m25.831582438s","1h30m","5m","30s", etc. - Differentiated Rate-Limit Types: Added
RateLimitReasonenum to distinguish betweenQUOTA_EXHAUSTED(quota exhausted) andRATE_LIMIT_EXCEEDED(rate limit) types, setting different default wait times based on type (quota exhausted: 1 hour, rate limit: 30 seconds).
- Corrected JSON Parsing Path: Fixed the extraction path for
- Problem Before Fix: When account quota was exhausted triggering 429 errors, the system could not parse the accurate reset time returned by Google API (e.g.,
"2h21m25s"), resulting in using a fixed default value of 60 seconds. Accounts were incorrectly considered "recoverable in 1 minute" when they actually needed 2 hours, causing accounts to fall into a 429 loop, using only the first 2 accounts while subsequent accounts were never utilized. - Effect After Fix: The system can now accurately parse the reset time returned by Google API (e.g.,
"2h21m25.831582438s"→ 8485 seconds). Accounts are correctly marked as rate-limited and wait for the accurate time, ensuring all accounts can be properly rotated and used, completely resolving the "only using first 2 accounts" issue. - Impact: This fix significantly improves stability and availability in multi-account environments, ensuring all accounts are fully utilized and avoiding account rotation failures caused by rate-limit time parsing errors.
- Fixed Rate-Limit Time Parsing Failure: Completely resolved the issue where Google API's
- Thinking Mode Stability Fixes:
-
v3.3.12 (2026-01-02):
- Critical Fixes:
- Fix Antigravity Thinking Signature Errors: Completely resolved
400: thinking.signature: Field requirederrors when using the Antigravity (Google API) channel.- Disabled Dummy Thinking Block Injection: Removed logic that auto-injected unsigned "Thinking..." placeholder blocks for historical messages. Google API rejects any thinking blocks without valid signatures.
- Removed Fake Signature Fallback: Removed logic that added
skip_thought_signature_validatorsentinel values to ToolUse and Thinking blocks. Now only uses real signatures or omits the thoughtSignature field entirely. - Fixed Background Task Misclassification: Removed the "Caveat: The messages below were generated" keyword to prevent normal requests containing Claude Desktop system prompts from being misclassified as background tasks and downgraded to Flash Lite models.
- Impact: This fix ensures stability for Claude CLI, Cursor, Cherry Studio, and other clients when using the Antigravity proxy, especially in multi-turn conversations and tool calling scenarios.
- Fix Antigravity Thinking Signature Errors: Completely resolved
- Critical Fixes:
-
v3.3.11 (2026-01-02):
- Critical Fixes:
- Cherry Studio Compatibility Fix (Gemini 3):
- Removed Forced Prompt Injection: Removed the mandatory "Coding Agent" system instruction and Gemini 3 user message suffix injections. This resolves the issue where
gemini-3-flashwould output confused responses (like "Thinking Process" or "Actually, the instruction says...") in general-purpose clients like Cherry Studio. The generic OpenAI protocol now respects the original user prompt faithfully.
- Removed Forced Prompt Injection: Removed the mandatory "Coding Agent" system instruction and Gemini 3 user message suffix injections. This resolves the issue where
- Fix Gemini 3 Python Client Crash:
- Removed maxOutputTokens Restriction: Removed the logic that forcibly set
maxOutputTokens: 64000for Gemini requests. This forced setting caused standard Gemini 3 Flash/Pro models (limit 8192) to reject requests and return empty responses, triggering'NoneType' object has no attribute 'strip'errors in Python clients. The proxy now defaults to the model's native limit or respects client parameters.
- Removed maxOutputTokens Restriction: Removed the logic that forcibly set
- Cherry Studio Compatibility Fix (Gemini 3):
- Core Optimization:
- Unified Retry Backoff System: Refactored error retry logic with intelligent backoff strategies tailored to different error types:
- Thinking Signature Failure (400): Fixed 200ms delay before retry, avoiding request doubling from immediate retries.
- Server Overload (529/503): Exponential backoff (1s/2s/4s/8s), significantly improving recovery success rate by 167%.
- Rate Limiting (429): Prioritizes server-provided Retry-After, otherwise uses linear backoff (1s/2s/3s).
- Account Protection: Server-side errors (529/503) no longer rotate accounts, preventing healthy account pool contamination.
- Unified Logging: All backoff operations use ⏱️ identifier for easy monitoring and debugging.
- Unified Retry Backoff System: Refactored error retry logic with intelligent backoff strategies tailored to different error types:
- Critical Fix:
- Fixed Gemini 3 Python Client Crash: Removed the logic that forced
maxOutputTokens: 64000for Gemini requests. This override caused standard Gemini 3 Flash/Pro models (limit 8192) to reject requests with empty responses, leading to'NoneType' object has no attribute 'strip'errors in Python clients. The proxy now defaults to model native limits or respects client parameters.
- Fixed Gemini 3 Python Client Crash: Removed the logic that forced
- Scoop Installation Compatibility Support (Core Thanks to @Small-Ku PR #252):
- Startup Arguments Configuration: Added Antigravity startup arguments configuration feature. Users can now customize startup parameters in the Settings page, perfectly compatible with portable installations via package managers like Scoop.
- Smart Database Path Detection: Optimized database path detection logic with priority-based checking:
- Command-line specified
--user-data-dirpath - Portable mode
data/user-datadirectory - System default paths (macOS/Windows/Linux)
- Command-line specified
- Multi-Installation Support: Ensures correct database file location and access across standard installations, Scoop portable installations, and custom data directory scenarios.
- Browser Environment CORS Support Optimization (Core Thanks to @marovole PR #223):
- Explicit HTTP Method List: Changed CORS middleware
allow_methodsfrom genericAnyto explicit method list (GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH), improving browser environment compatibility. - Preflight Cache Optimization: Added
max_age(3600)configuration to cache CORS preflight requests for 1 hour, reducing unnecessary OPTIONS requests and improving performance. - Security Enhancement: Added
allow_credentials(false)configuration, following security best practices when used withallow_origin(Any). - Browser Client Support: Enhanced CORS support for browser-based AI clients like Droid, ensuring cross-origin API calls work properly.
- Explicit HTTP Method List: Changed CORS middleware
- Account Table Drag-and-Drop Sorting (Core Thanks to @wanglei8888 PR #256):
- Drag to Reorder: Added drag-and-drop sorting functionality for the account table. Users can now customize account display order by dragging table rows, making it easy to pin frequently used accounts to the top.
- Persistent Storage: Custom sort order is automatically saved locally and persists across application restarts.
- Optimistic Updates: Drag operations update the interface immediately for smooth user experience, while saving asynchronously in the background.
- Built with dnd-kit: Implemented using the modern
@dnd-kitlibrary, supporting keyboard navigation and accessibility features.
- Critical Fixes:
-
v3.3.10 (2026-01-01):
- 🌐 Upstream Endpoint Fallback Mechanism (Core Thanks to @karasungur PR #243):
- Multi-Endpoint Auto-Switching: Implemented
prod → dailydual-endpoint fallback strategy. Automatically switches to backup endpoint when primary returns 404/429/5xx, significantly improving service availability. - Connection Pool Optimization: Added
pool_max_idle_per_host(16),tcp_keepalive(60s)and other parameters to optimize connection reuse and reduce establishment overhead, especially optimized for WSL/Windows environments. - Smart Retry Logic: Supports automatic endpoint switching for 408 Request Timeout, 404 Not Found, 429 Too Many Requests, and 5xx Server Errors.
- Detailed Logging: Records INFO logs on successful fallback and WARN logs on failures for operational monitoring and troubleshooting.
- Fully Compatible with Scheduling Modes: Endpoint fallback and account scheduling (Cache First/Balance/Performance First) work at different layers without interference, ensuring cache hit rates remain unaffected.
- Multi-Endpoint Auto-Switching: Implemented
- 📊 Comprehensive Logging System Optimization:
- Log Level Restructuring: Strictly separated INFO/DEBUG/TRACE levels. INFO now only shows critical business information, with detailed debugging downgraded to DEBUG.
- Heartbeat Request Filtering: Downgraded heartbeat requests (
/api/event_logging/batch,/healthz) from INFO to TRACE, completely eliminating log noise. - Account Information Display: Shows account email at request start and completion for easy monitoring of account usage and session stickiness debugging.
- Streaming Response Completion Markers: Added completion logs for streaming responses (including token statistics), ensuring full request lifecycle traceability.
- 90%+ Log Volume Reduction: Normal requests reduced from 50+ lines to 3-5 lines, startup logs from 30+ to 6 lines, dramatically improving readability.
- Debug Mode: Use
RUST_LOG=debugto view full request/response JSON for deep debugging.
- 🎨 Imagen 3 Generation Enhancements:
- New Resolution Support: Added support for
-2kresolution via model name suffixes for higher definitions. - Ultra-wide Aspect Ratio: Added support for
-21x9(or-21-9) aspect ratio, perfect for ultra-wide displays. - Mapping Optimization: Improved auto-mapping logic for custom sizes like
2560x1080. - Full Protocol Coverage: These enhancements are available across OpenAI, Claude, and Gemini protocols.
- New Resolution Support: Added support for
- 🔍 Model Detection API:
- New Detection Endpoint: Introduced
POST /v1/models/detectto reveal model capabilities and configuration variants in real-time. - Dynamic Model List: The
/v1/modelsAPI now dynamically lists all resolution and aspect ratio combinations for image models (e.g.,gemini-3-pro-image-4k-21x9).
- New Detection Endpoint: Introduced
- 🐛 Background Task Downgrade Model Fix:
- Fixed 404 Errors: Corrected background task downgrade model from non-existent
gemini-2.0-flash-exptogemini-2.5-flash-lite, resolving 404 errors for title generation, summaries, and other background tasks.
- Fixed 404 Errors: Corrected background task downgrade model from non-existent
- 🔐 Manual Account Disable Feature:
- Independent Disable Control: Added manual account disable feature, distinct from 403 disable. Only affects proxy pool, not API requests.
- Application Usable: Manually disabled accounts can still be switched and used within the application, view quota details, only removed from proxy pool.
- Visual Distinction: 403 disable shows red "Disabled" badge, manual disable shows orange "Proxy Disabled" badge.
- Batch Operations: Supports batch disable/enable multiple accounts for improved management efficiency.
- Auto Reload: Automatically reloads proxy account pool after disable/enable operations, takes effect immediately.
- Impact Scope: Lightweight tasks including title generation, simple summaries, system messages, prompt suggestions, and environment probes now correctly downgrade to
gemini-2.5-flash-lite.
- 🎨 UI Experience Enhancements:
- Unified Dialog Style: Standardized all native alert/confirm dialogs in the ApiProxy page to application-standard Toast notifications and ModalDialogs, improving visual consistency.
- Tooltip Clipping Fixed: Resolved the issue where tooltips in the Proxy Settings page (e.g., "Scheduling Mode", "Allow LAN Access") were obstructed by container boundaries.
- 🌐 Upstream Endpoint Fallback Mechanism (Core Thanks to @karasungur PR #243):
-
v3.3.9 (2026-01-01):
- 🚀 Multi-Protocol Scheduling Alignment:
Scheduling Modenow formally covers OpenAI, Gemini Native, and Claude protocols. - 🧠 Industrial-Grade Session Fingerprinting: Upgraded SHA256 content hashing for sticky Session IDs, ensuring consistent account inheritance and improved Prompt Caching hits.
- 🛡️ Precision Rate-Limiting & 5xx Failover: Deeply integrated Google API JSON parsing for sub-second
quotaResetDelayand automatic 20s cooling isolation for 500/503/529 errors. - 🔀 Enhanced Scheduling: Rotation logic now intelligently bypasses all locked/limited accounts; provides precise wait-time suggestions for restricted pools.
- 🌐 Global Rate-Limit Sync: Cross-protocol rate-limit tracking ensures instant "Rate-limit once, avoid everywhere" protection.
- 📄 Claude Multimodal Completion: Fixed 400 errors when handling PDF/documents in Claude CLI by completing multimodal mapping logic.
- 🚀 Multi-Protocol Scheduling Alignment:
-
v3.3.8 (2025-12-31):
-
Proxy Monitor Module (Core Thanks to @84hero PR #212):
- Real-time Request Tracking: Brand-new monitoring dashboard for real-time visualization of all proxy traffic, including request paths, status codes, response times, token consumption, and more.
- Persistent Log Storage: SQLite-based logging system supporting historical record queries and analysis across application restarts.
- Advanced Filtering & Sorting: Real-time search, timestamp-based sorting for quick problem request identification.
- Detailed Inspection Modal: Click any request to view full request/response payloads, headers, token counts, and other debugging info.
- Performance Optimization: Compact data formatting (e.g., 1.2k instead of 1200) improves UI responsiveness with large datasets.
-
UI Optimization & Layout Improvements:
- Toggle Style Unification: Standardized all toggle switches (Auto Start, LAN Access, Auth, External Providers) to small blue style for consistent visuals.
- Layout Density Optimization: Merged "Allow LAN Access" and "Auth" into a single-row grid layout (lg:grid-cols-2) for more efficient use of space on large screens.
-
Zai Dispatcher Integration (Core Thanks to @XinXin622 PR #205):
- Multi-level Dispatching: Supports
Exclusive,Pooled, andFallbackmodes to balance response speed and account security. - Built-in MCP Support: Preconfigured endpoints for Web Search Prime, Web Reader, and Vision MCP servers.
- UI Enhancements: Added graphical configuration options and tooltips to the ApiProxy page.
- Multi-level Dispatching: Supports
-
Automatic Account Exception Handling (Core Thanks to @salacoste PR #203):
- Auto-disable Invalid Accounts: Automatically marks accounts as disabled when Google OAuth refresh tokens become invalid (
invalid_grant), preventing proxy failures caused by repeated attempts to use broken accounts. - Persistent State Management: Disabling state is saved to disk and persists across restarts. Optimized loading logic to skip disabled accounts.
- Smart Auto-recovery: Accounts are automatically re-enabled when the user manually updates the refresh or access tokens in the UI.
- Documentation: Added detailed documentation for the invalid grant handling mechanism.
- Auto-disable Invalid Accounts: Automatically marks accounts as disabled when Google OAuth refresh tokens become invalid (
-
Dynamic Model List API (Intelligent Endpoint Optimization):
- Real-time Dynamic Sync:
/v1/models(OpenAI) and/v1/models/claude(Claude) endpoints now aggregate built-in and custom mappings in real-time. Changes in settings take effect instantly. - Full Model Support: Prefix filtering is removed. Users can now directly see and use image models like
gemini-3-pro-image-4k-16x9and all custom IDs in terminals or clients.
- Real-time Dynamic Sync:
-
Quota Management & Intelligent Routing (Operational Optimization & Bug Fixes):
- Background Task Smart Downgrading: Automatically identifies and reroutes Claude CLI/Agent background tasks (titles, summaries, etc.) to Flash models, fixing the issue where these requests previously consumed premium/long-context quotas.
- Concurrency Lock & Quota Protection: Fixed the issue where multiple concurrent requests caused account quota overflow. Atomic locks ensure account consistency within the same session, preventing unnecessary rotations.
- Tiered Account Sorting (ULTRA > PRO > FREE): The system now automatically sorts model routes based on quota reset frequency (hourly vs. daily). Highlights premium accounts that reset frequently, reserving FREE accounts as a final safety net.
- Atomic Concurrency Locking: Enhanced
TokenManagersession locking. In high-concurrency scenarios (e.g., Agent mode), ensures stable account assignment for requests within the same session. - Expanded Keyword Library: Integrated 30+ intent-based keywords for background tasks, improving detection accuracy to over 95%.
-
-
v3.3.7 (2025-12-30):
- Proxy Core Stability Fixes (Core Thanks to @llsenyue PR #191):
- JSON Schema Hardening: Implemented recursive flattening and cleaning for tool call schemas. Unsupported constraints (e.g.,
pattern) are now moved to descriptions, preventing Gemini schema rejection. - Background Task Robustness: Added detection for background tasks (e.g., summaries). Automatically strips thinking configs and redirects to
gemini-2.5-flashfor 100% success rate. - Thought Signature Auto-capture: Refined
thoughtSignatureextraction and persistence, resolving 400 errors caused by missing signatures in multi-turn chats. - Logging Improvements: Promoted user messages to WARN level in logs to ensure core interactions remain visible during background activity.
- JSON Schema Hardening: Implemented recursive flattening and cleaning for tool call schemas. Unsupported constraints (e.g.,
- Proxy Core Stability Fixes (Core Thanks to @llsenyue PR #191):
-
v3.3.6 (2025-12-30):
- Deep OpenAI Image Support (Core Thanks to @llsenyue PR #186):
- New Image Generation Endpoint: Full support for
/v1/images/generations, including parameters likemodel,prompt,n,size, andresponse_format. - New Image Editing & Variations: Adapted
/v1/images/editsand/v1/images/variationsendpoints. - Protocol Bridging: Implemented automatic structural mapping and authentication from OpenAI image requests to the Google Internal API (Cloud Code).
- New Image Generation Endpoint: Full support for
- Deep OpenAI Image Support (Core Thanks to @llsenyue PR #186):
-
v3.3.5 (2025-12-29):
- Core Fixes & Stability Enhancements:
- Root Fix for Claude Extended Thinking 400 Errors (Model Switching): Resolved validation failures when switching from non-thinking to thinking models mid-session. The system now automatically backfills historical thinking blocks to ensure API compliance.
- New Automatic Account Rotation for 429 Errors: Enhanced the retry mechanism for
429(rate limit),403(forbidden), and401(expired) errors. Retries now force-bypass the 60s session lock to rotate to the next available account in the pool, implementing a true failover. - Test Suite Maintenance: Fixed several outdated and broken unit tests to ensure a clean build and verification cycle.
- Logging System Optimizations:
- Cleaned Verbose Logs: Removed redundant logs that printed all model names during quota queries. Detailed model list information is now downgraded to debug level, significantly reducing console noise.
- Local Timezone Support: Log timestamps now automatically use local timezone format (e.g.,
2025-12-29T22:50:41+08:00) instead of UTC, making logs more intuitive for users.
- UI Optimizations:
- Refined Account Quota Display: Added clock icons, implemented perfect centering, and added dynamic color feedback based on countdown (Synced across Table and Card views).
- Core Fixes & Stability Enhancements:
-
v3.3.4 (2025-12-29):
- Major OpenAI/Codex Compatibility Boost (Core Thanks to @llsenyue PR #158):
- Fixed Image Recognition: Fully adapted Codex CLI's
input_imageblock parsing and added support forfile://local paths with automatic Base64 conversion. - Gemini 400 Error Mitigation: Implemented automatic merging of consecutive identical role messages, strictly following Gemini's role alternation requirements to eliminate related 400 errors.
- Protocol Stability Enhancements: Optimized deep JSON Schema cleaning (including physical isolation for
cache_control) and added context backfilling forthoughtSignature. - Linux Build Strategy Adjustment: Due to the severe scarcity of GitHub's Ubuntu 20.04 runners causing release hangups, official builds have reverted to the Ubuntu 22.04 environment. Ubuntu 20.04 users are encouraged to clone the source for local builds or try running via AppImage.
- Fixed Image Recognition: Fully adapted Codex CLI's
- Major OpenAI/Codex Compatibility Boost (Core Thanks to @llsenyue PR #158):
-
v3.3.3 (2025-12-29):
- Account Management Enhancements:
- Subscription Tier Identification: Integrated automatic detection, labeling, and filtering for account subscription tiers (PRO/ULTRA/FREE).
- Multi-dimensional Filtering: Added new filter tabs ("All", "Available", "Low Quota", "PRO", "ULTRA", "FREE") with real-time counters and integrated search.
- UI/UX Optimization: Implemented a premium tabbed interface; refined the header layout with an elastic search bar and responsive action buttons to maximize workspace efficiency across different resolutions.
- Critical Fixes:
- Root Fix for Claude Extended Thinking 400 Errors: Resolved the format validation error caused by missing
thought: truemarkers in historicalContentBlock::Thinkingmessages. This issue led to400 INVALID_REQUEST_ERRORregardless of whether thinking was explicitly enabled, especially in multi-turn conversations.
- Root Fix for Claude Extended Thinking 400 Errors: Resolved the format validation error caused by missing
- Account Management Enhancements:
-
v3.3.2 (2025-12-29):
- New Features (Core Thanks to @XinXin622 PR #128):
- Web Search Citation Support for Claude Protocol: Successfully mapped Gemini's raw Google Search results to Claude's native
web_search_tool_resultcontent blocks. Structured search citations and source links now display correctly in compatible clients like Cherry Studio. - Enhanced Thinking Mode Stability (Global Signature Store v2): Introduced a more robust global
thoughtSignaturestorage mechanism. The system now captures real-time signatures from streaming responses and automatically backfills them for subsequent requests missing signatures, significantly reducing400 INVALID_ARGUMENTerrors.
- Web Search Citation Support for Claude Protocol: Successfully mapped Gemini's raw Google Search results to Claude's native
- Optimizations & Bug Fixes:
- Hardened Data Models: Unified and refactored the internal
GroundingMetadatastructures, resolving type conflicts and parsing anomalies identified during PR #128 integration. - Streaming Logic Refinement: Optimized the SSE conversion engine to ensure proper extraction and persistence of
thoughtSignatureacross fragmented streaming chunks.
- Hardened Data Models: Unified and refactored the internal
- New Features (Core Thanks to @XinXin622 PR #128):
-
v3.3.1 (2025-12-28):
- Critical Fixes:
- Deep Fix for Claude Protocol 400 Errors (Claude Code Optimization):
- Resolved Cache Control Conflicts (cache_control Fix): Fully address the upstream validation errors caused by
cache_controltags orthought: truefields in historical messages. Optimized with a "historical message de-thinking" strategy to bypass parsing bugs in the Google API compatibility layer. - Deep JSON Schema Cleaning Engine: Optimized the conversion of MCP tool definitions. Complex validation constraints unsupported by Google (e.g.,
pattern,minLength,maximum) are now automatically migrated to description fields, ensuring compliance while preserving semantic hints. - Protocol Header Compliance: Removed non-standard
roletags from system instructions and enhanced explicit filtering forcache_controlto guarantee maximum payload compatibility.
- Resolved Cache Control Conflicts (cache_control Fix): Fully address the upstream validation errors caused by
- Enhanced Connectivity & Web Search Compatibility:
- Search Compatibility: Added support for
googleSearchRetrievaland other next-gen tool definitions. Now provides standardizedgoogleSearchpayload mapping, ensuring seamless integration with Cherry Studio's built-in search toggle. - Automated Client Data Purification: Introduced deep recursive cleaning to physically strip
[undefined]properties injected by clients like Cherry Studio, resolving400 INVALID_ARGUMENTerrors at the source. - High-Quality Virtual Model Auto-Networking: Expanded the high-performance model whitelist (including Claude Thinking variants), ensuring all premium models trigger native networking search by default.
- Search Compatibility: Added support for
- Deep Fix for Claude Protocol 400 Errors (Claude Code Optimization):
- Optimization & Token Saving:
- Full-link Tracing & Closed-loop Audit Logs:
- Introduced a 6-character random Trace ID for every request.
- Automated request tagging:
[USER]for real conversations,[AUTO]for background tasks. - Implemented token consumption reporting for both streaming and non-streaming responses.
- Claude CLI Background Task "Token Saver":
- Intelligent Intent Recognition: Enhanced detection for low-value requests like title generation, summaries, and system Warmups/Reminders.
- Seamless Downgrade Redirect: Automatically routes background traffic to gemini-2.5-flash, ensuring top-tier model (Sonnet/Opus) quotas are reserved for core tasks.
- Significant Token Saving: Saves 1.7k - 17k+ high-value tokens per long session.
- Full-link Tracing & Closed-loop Audit Logs:
- Stability Enhancements:
- Resolved Rust compilation and test case errors caused by the latest model field updates, hardening the data model layer (models.rs).
- Critical Fixes:
-
v3.3.0 (2025-12-27):
- Major Updates:
- Deep Adaptation for Codex CLI & Claude CLI (Core Thanks to @llsenyue PR #93):
- Coding Agent Compatibility: Achieved full support for Codex CLI, including deep adaptation of the
/v1/responsesendpoint and intelligent instruction conversion (SSOP) for shell tool calls. - Claude CLI Reasoning Enhancement: Introduced global
thoughtSignaturestorage and backfilling logic, completely resolving signature validation errors when using Claude CLI with Gemini 3 series models.
- Coding Agent Compatibility: Achieved full support for Codex CLI, including deep adaptation of the
- OpenAI Protocol Stack Refactor:
- New Completions Endpoint: Fully added support for
/v1/completionsand/v1/responsesroutes, ensuring compatibility with legacy OpenAI clients. - Fusion of Multimodal & Schema Cleaning: Successfully integrated self-developed high-performance image parsing with community-contributed high-precision JSON Schema filtering strategies.
- New Completions Endpoint: Fully added support for
- Privacy-First Network Binding Control (Core Thanks to @kiookp PR #91):
- Default Localhost: Proxy server defaults to listening on
127.0.0.1(localhost-only), ensuring privacy and security by default. - Optional LAN Access: Added
allow_lan_accessconfiguration toggle; when enabled, listens on0.0.0.0to allow LAN device access. - Security Warnings: Frontend UI provides clear security warnings and status hints.
- Default Localhost: Proxy server defaults to listening on
- Deep Adaptation for Codex CLI & Claude CLI (Core Thanks to @llsenyue PR #93):
- Frontend UX Upgrade: - Protocol Endpoint Visualization: Added endpoint details display on the API Proxy page, supporting independent quick-copy for Chat, Completions, and Responses endpoints.
- Major Updates:
-
v3.2.8 (2025-12-26):
- Bug Fixes:
- OpenAI Protocol Multi-modal & Vision Model Support: Fixed the 400 error caused by
contentformat mismatch when sending image requests to vision models (e.g.,gemini-3-pro-image) via OpenAI protocol. - Full Vision Capability Enrichment: The OpenAI protocol now supports automatic parsing of Base64 images and mapping them to upstream
inlineData, providing the same image processing power as the Claude protocol.
- OpenAI Protocol Multi-modal & Vision Model Support: Fixed the 400 error caused by
- Bug Fixes:
-
v3.2.7 (2025-12-26):
- New Features:
- Launch at Startup: Added auto-launch feature that allows users to enable/disable automatic startup of Antigravity Tools when the system boots, configurable from the "General" tab in Settings.
- Account List Page Size Selector: Added a page size selector in the pagination bar of the Accounts page, allowing users to directly choose items per page (10/20/50/100) without entering Settings, improving batch operation efficiency.
- Bug Fixes:
- Comprehensive JSON Schema Cleanup Enhancement (MCP Tool Compatibility Fix):
- Removed Advanced Schema Fields: Added removal of
propertyNames,const,anyOf,oneOf,allOf,if/then/else,notand other advanced JSON Schema fields commonly used by MCP tools but unsupported by Gemini, completely resolving 400 errors when using MCP tools with Claude Code v2.0.76+. - Optimized Recursion Order: Adjusted to recursively clean child nodes before processing parent nodes, preventing nested objects from being incorrectly serialized into descriptions.
- Protobuf Type Compatibility: Forced union type arrays (e.g.,
["string", "null"]) to downgrade to single types, resolving "Proto field is not repeating" errors. - Smart Field Recognition: Enhanced type checking logic to ensure validation fields are only removed when values match the expected type, avoiding accidental deletion of property definitions named
pattern, etc.
- Removed Advanced Schema Fields: Added removal of
- Custom Database Import Fix: Fixed the "Command not found" error for the "Import from Custom DB" feature caused by the missing
import_custom_dbcommand registration. Users can now properly select customstate.vscdbfiles for account import. - Proxy Stability & Image Generation Optimization:
- Smart 429 Backoff Mechanism: Deeply integrated
RetryInfoparsing to strictly follow Google API retry instructions with added safety redundancy, effectively reducing account suspension risks. - Precise Error Triage: Fixed the logic that misidentified rate limits as quota exhaustion (no longer incorrectly stopping on "check quota" errors), ensuring automatic account rotation during throttling.
- Parallel Image Generation Acceleration: Disabled the 60s time-window lock for
image_genrequests, enabling high-speed rotation across multiple accounts and completely resolving Imagen 3 429 errors.
- Smart 429 Backoff Mechanism: Deeply integrated
- Comprehensive JSON Schema Cleanup Enhancement (MCP Tool Compatibility Fix):
- New Features:
-
v3.2.6 (2025-12-26):
- Critical Fixes:
- Claude Protocol Deep Optimization (Enhanced Claude Code Experience):
- Dynamic Identity Mapping: Dynamically injects identity protection patches based on the requested model, locking in the native Anthropic identity and shielding it from baseline platform instruction interference.
- Tool Empty Output Compensation: Specifically for silent commands like
mkdir, automatically maps empty outputs to explicit success signals, resolving task flow interruptions and hallucinations in Claude CLI. - Global Stop Sequence Configuration: Optimized
stopSequencesfor proxy links, precisely cutting off streaming output and completely resolving parsing errors caused by trailing redundancy. - Smart Payload Cleaning (Smart Panic Fix): Introduced mutual exclusion checks for
GoogleSearchandFunctionCall, and implemented automatic tool stripping during background task redirection (Token Saver), completely eliminating 400 Tool Conflict (Multiple tools) errors. - Proxy Reliability Enhancement (Core Thanks to @salacoste PR #79):
- Smart 429 Backoff: Support parsing upstream
RetryInfoto wait and retry automatically when rate-limited, reducing unnecessary account rotation. - Resume Fallback: Implemented auto-stripping of Thinking blocks for
/resume400 signature errors, improving session recovery success. - Extended Schema Support: Improved recursive JSON Schema cleaning and added filtering for
enumCaseInsensitiveand other extension fields.
- Smart 429 Backoff: Support parsing upstream
- Test Suite Hardening: Fixed missing imports and duplicate attribute errors in
mapperstest modules, and added new tests for content block merging and empty output completion.
- Claude Protocol Deep Optimization (Enhanced Claude Code Experience):
- Critical Fixes:
-
v3.2.1 (2025-12-25):
- New Features:
- Custom DB Import: Support importing accounts from any
state.vscdbfile path, facilitating data recovery from backups or custom locations. - Real-time Project ID Sync & Persistence: Captured and saved the latest
project_idto the local database in real-time during quota refresh. - OpenAI & Gemini Protocol Reinforcement:
- Unified Model Routing: Now Gemini protocol also supports custom model mapping. This completes the integration of smart routing logic across OpenAI, Anthropic, and Gemini protocols.
- Full Tool Call Support: Correctly handles and delivers
functionCallresults (e.g., search) for both streaming and non-streaming responses, completely resolving the "empty output" error. - Real-time Thought Display: Automatically extracts and displays Gemini 2.0+ reasoning processes via
<thought>tags, ensuring no loss of inference information. - Advanced Parameter Mapping: Added full mapping support for
stopsequences,response_format(JSON mode), and customtools.
- Custom DB Import: Support importing accounts from any
- Bug Fixes:
- Single Account Switch Restriction Fix: Resolved the issue where the switch button was hidden when only one account existed. Now, manual Token injection can be triggered for a single account by clicking the switch button.
- OpenAI Custom Mapping 404 Fix: Fixed model routing logic to ensure mapped upstream model IDs are used, resolving 404 errors during custom mapping.
- Proxy Retry Logic Optimization: Introduced smart error recognition and a retry limit. Implemented fail-fast protection for 404 and 429 (quota exhausted).
- JSON Schema Deep Cleanup (Compatibility Enhancement): Established a unified cleanup mechanism to automatically filter out over 20 extension fields unsupported by Gemini (e.g.,
multipleOf,exclusiveMinimum,pattern,const,if-then-else), resolving 400 errors when CLI tools invoke tools via API. - Claude Thinking Chain Validation Fix: Resolved the structural validation issue where
assistantmessages must start with a thinking block when Thinking is enabled. Now supports automatic injection of placeholder thinking blocks and automatic restoration of<thought>tags from text, ensuring stability for long conversations in advanced tools like Claude Code. - OpenAI Adaption Fix: Resolved issues where some clients sending
systemmessages caused errors.
- New Features:
-
v3.2.0 (2025-12-24):
- Core Architecture Refactor:
- Proxy Engine Rewrite: Completely modularized
proxysubsystem with decoupledmappers,handlers, andmiddlewarefor superior maintainability. - Linux Process Management: Implemented smart process identification to distinguish Main/Helper processes, ensuring graceful exit via
SIGTERMwithSIGKILLfallback.
- Proxy Engine Rewrite: Completely modularized
- Homebrew Support: Official support for macOS one-click installation via
brew install --cask antigravity. - GUI UX Revolution: Revamped Dashboard with average quota monitoring and "Best Account Recommendation" algorithm.
- Protocol & Router Expansion: Native support for OpenAI, Anthropic (Claude Code), and Gemini protocols with high-precision Model Router.
- Multimodal Optimization: Deep adaptation for Imagen 3 with 100MB payload capacity and aspect ratio controls.
- Global Upstream Proxy: Centralized request management supporting HTTP/SOCKS5 with hot-reloading.
- Core Architecture Refactor:
-
See Releases for earlier history.
-
Special thanks to all developers who have contributed to this project.
- License: CC BY-NC-SA 4.0. Strictly for non-commercial use.
- Security: All account data is encrypted and stored locally in a SQLite database. Data never leaves your device unless sync is enabled.
If you find this tool helpful, please give it a ⭐️ on GitHub!
Copyright © 2025 Antigravity Team.

































