Professional AI Account Management & Protocol Proxy System (v4.1.28)
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.
| Sponsor | Description |
|---|---|
![]() |
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. |
![]() |
Thanks to AICodeMirror for sponsoring this project! AICodeMirror provides official high-stability relay services for Claude Code / Codex / Gemini CLI, supporting enterprise-grade concurrency, fast invoicing, and 24/7 dedicated technical support. Claude Code / Codex / Gemini official channels at 38% / 2% / 9% of original price, with extra discounts on top-ups! AICodeMirror offers special benefits for Antigravity-Manager users: register via this link to enjoy 20% off your first top-up, and enterprise customers can get up to 25% off! |
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 (configurable), 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
Automatically detects your OS, architecture, and package manager — one command to download and install.
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.28/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iexSupported formats: Linux (
.deb/.rpm/.AppImage) | macOS (.dmg) | Windows (NSIS.exe)Advanced usage: Install a specific version
curl -fsSL ... | bash -s -- --version 4.1.28,dry-run modecurl -fsSL ... | bash -s -- --dry-run
If you have Homebrew installed, you can also install via:
# 1. Tap the repository
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
# 2. Install the app
brew install --cask antigravity-toolsTip: If you encounter permission issues, add the
--no-quarantineflag.
You can choose to install via the one-click script or Homebrew:
Option 1: One-click script (Recommended)
curl -sSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/deploy/arch/install.sh | bashOption 2: via Homebrew (If you have Linuxbrew installed)
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-toolsThe 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
If you prefer running in a containerized environment, we provide a native Docker image. This image supports the v4.0.3 Native Headless architecture, automatically hosts frontend static resources, and allows for direct browser-based management.
# Option 1: Direct Run (Recommended)
# - API_KEY: Required. Used for AI request authentication.
# - WEB_PASSWORD: Optional. Used for Web UI login. Defaults to API_KEY if NOT set.
docker run -d --name antigravity-manager \
-p 8045:8045 \
-e API_KEY=sk-your-api-key \
-e WEB_PASSWORD=your-login-password \
-e ABV_MAX_BODY_SIZE=104857600 \
-v ~/.antigravity_tools:/root/.antigravity_tools \
lbjlaq/antigravity-manager:latest
# Forgot keys? Run `docker logs antigravity-manager` or `grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json`
#### 🔐 Authentication Scenarios
* **Scenario A: Only `API_KEY` is set**
- **Web Login**: Use `API_KEY` to access the dashboard.
- **API Calls**: Use `API_KEY` for AI request authentication.
* **Scenario B: Both `API_KEY` and `WEB_PASSWORD` are set (Recommended)**
- **Web Login**: **Must** use `WEB_PASSWORD`. Using API Key will be rejected (more secure).
- **API Calls**: Continue to use `API_KEY`. This allows you to share the API Key with team members while keeping the password for administrative access only.
#### 🆙 Upgrade Guide for Older Versions
If you are upgrading from v4.0.1 or earlier, your installation won't have a `WEB_PASSWORD` set by default. You can add one using any of these methods:
1. **Web UI (Recommended)**: Log in using your existing `API_KEY`, go to the **API Proxy Settings** page, find the **Web UI Management Password** section below the API Key, set your new password, and save.
2. **Environment Variable (Docker)**: Stop the old container and start the new one with the added parameter `-e WEB_PASSWORD=your_new_password`. **Note: Environment variables have the highest priority and will override any changes in the UI.**
3. **Config File (Persistent)**: Directly edit `~/.antigravity_tools/gui_config.json` and add/modify `"admin_password": "your_new_password"` inside the `proxy` object.
- *Note: `WEB_PASSWORD` is the environment variable name, while `admin_password` is the JSON key in the config file.*
> [!TIP]
> **Priority Logic**:
> - **Environment Variable** (`WEB_PASSWORD`) has the highest priority. If set, the application will always use it and ignore values in the configuration file.
> - **Configuration File** (`gui_config.json`) is used for persistent storage. When you change the password via Web UI and save, it is written here.
> - **Fallback**: If neither is set, it falls back to `API_KEY`; if even `API_KEY` is missing, a random one is generated.
# Option 2: Use Docker Compose
# 1. Enter the Docker directory
cd docker
# 2. Start the service
docker compose up -dAccess URL:
http://localhost:8045(Admin Console) |http://localhost:8045/v1(API Base) System Requirements:
- RAM: 1GB recommended (minimum 256MB).
- Persistence: Mount
/root/.antigravity_toolsto persist your data.- Architecture: Supports x86_64 and ARM64. See: Docker Deployment Guide (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"
claude- Go to API Proxy → External Providers → click the OpenCode Sync card.
- Click Sync to generate
~/.config/opencode/opencode.json:- Creates a dedicated provider
antigravity-manager(does not overwrite google/anthropic providers) - Optional: Check Sync accounts to export
antigravity-accounts.json(plugin-compatible v3 format) for the OpenCode plugin
- Creates a dedicated provider
- Click Clear Config to remove Manager configuration and clean up legacy entries; click Restore to revert from backup.
- On Windows, the path is
C:\Users\<User>\.config\opencode\(same~/.config/opencoderule).
Quick verification commands:
# Test antigravity-manager provider (supports --variant)
opencode run "test" --model antigravity-manager/claude-sonnet-4-5-thinking --variant high
# If opencode-antigravity-auth is installed, verify google provider still works independently
opencode run "test" --model google/antigravity-claude-sonnet-4-5-thinking --variant maximport 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:
- v4.1.28 (2026-03-03):
- [IMPORTANT WARNING] Google Risk Control & Third-Party Tool Risks:
- Due to tightened Google risk control, third-party tools may be suspended for violating Terms of Service when used with Antigravity, Gemini CLI, or Gemini Code Assist.
- Accessing Antigravity, Gemini CLI, or Gemini Code Assist using third-party software, tools, or services (e.g., using OpenClaw and Antigravity OAuth) violates applicable terms and policies. Such actions may lead to account suspension or termination.
- Appeal Link: If you believe your account was suspended by mistake, please submit an appeal via this link.
- Future Plan & Roadmaps:
- New versions will be pushed in the future (potentially separating account switching and proxy features into independent modules).
- However, due to work commitments, there may be delays. We appreciate your understanding.
- Stay tuned to our WeChat Official Account Ctrler or Telegram channel AntigravityManager.
- Please use this project with caution.
- [Core Fix] Normalized Rate Limit Locking Across All Model Series (Fix Issue #2209):
- Unified Normalization: Fixed an issue where Claude and Gemini models' 429 (Too Many Requests) errors failed to trigger proper locking due to non-normalized limit keys.
- Enhanced Circuit Breaker Integration: Ensured the built-in circuit breaker accurately intercepts exhausted accounts using normalized model IDs (e.g.,
claude,gemini-3-flash), eliminating redundant 90s wait times even when "Quota Protection" is disabled.
- [Core Fix] Resolve 400 Errors from Erroneous thinkingLevel Injection in Gemini Adaptive Mode (Fix Issue #2208):
- Root Cause: Adaptive recognition logic in 4.1.27 misidentified Gemini models (e.g.,
gemini-3.1-pro-high) as supportingthinkingLevel, which is exclusive to Vertex AI Claude. Gemini models only acceptthinkingBudget, causing Google API to reject requests with400 INVALID_ARGUMENT. - Narrowed Triggers: Corrected the
thinkingLevelinjection trigger fromcontains("gemini-3")tocontains("claude"), ensuring it only applies to Claude protocols. Gemini models now correctly fallback to a safethinkingBudget: 24576in adaptive mode.
- Root Cause: Adaptive recognition logic in 4.1.27 misidentified Gemini models (e.g.,
- [Core Fix] Resolve Claude Code 4.1.27+ Web Search (Internal Tool) Failure (Issue #2224):
- Hybrid Tool Support: Overcame Gemini v1internal API limitations regarding concurrent use of
googleSearchand customfunctionDeclarations. - Intelligent Perception Injection: Refactored the tool injection engine to automatically enable both built-in search and developer tools on Gemini 2.0+ and 3.0 models.
- Across-Protocol Alignment: Applied the fix across OpenAI and Gemini Native protocols to ensure consistent search capabilities for high-performance models.
- Hybrid Tool Support: Overcame Gemini v1internal API limitations regarding concurrent use of
- [Core Fix] Resolve 400 Errors from Missing thought_signature in gemini-3-flash Function Calls (Fix Issue #2167):
- Root Cause: Model recognition failed to include
gemini-3-flashin the "thinking model" category, leading to missingthoughtSignaturein initial function calls (no session cache) and causing400 INVALID_ARGUMENT. - Protocol Fixes: Added
is_gemini_flash_thinkinglogic across OpenAI, Claude, and Gemini Native mappers to automatically inject theskip_thought_signature_validatorsentinel when the session cache is empty.
- Root Cause: Model recognition failed to include
- [Core Fix] Token Statistics Timezone Fix (Fix Issue #2214):
- Automatic Timezone Alignment: Switched the base time for Token statistics from UTC to system Local Time.
- Global Multi-timezone Support: Introduced SQLite
'localtime'conversion mechanism. Regardless of the user's location, the timeline on statistics charts will automatically align with their system clock, completely resolving data misalignment issues for Beijing Time or other non-UTC timezones.
- [IMPORTANT WARNING] Google Risk Control & Third-Party Tool Risks:
- v4.1.27 (2026-03-01):
- [Core Fix] Proxy Config Initialization & Tool Image Preservation (Issue #2156):
- Default Initialization: Fixed compilation errors caused by missing
global_system_prompt,proxy_pool, andimage_thinking_modefields inProxyConfig's default initialization. - Exhaustive Pattern Matching: Added a catch-all branch (
_ => {}) in theOpenAIContentBlockenum matching, eliminating potential non-exhaustive match compilation errors. - Unconditional Image Preservation: Removed the redundant
preserve_tool_result_imagesswitch. The image data structure intool_resultis now unconditionally retained and formatted asinlineDatafor downstream models, significantly simplifying the underlying logic.
- Default Initialization: Fixed compilation errors caused by missing
- [Feature Enhancement] Update docker-compose.yml namespace and default vars (PR #2185):
- Namespace Update: Changed the default built image name from
antigravity-managertolbjlaq/antigravity-manager. - Env Vars Placeholder: Added default value placeholders syntax for environment variables to allow overriding via host env vars or
.envfiles.
- Namespace Update: Changed the default built image name from
- [Core Fix] Full Compatibility for OpenCode Thinking Budget Parameters (Issue #2186):
- Architecture Support: Resolved the issue where Vercel AI SDK (
@ai-sdk/anthropic) combined with OpenCode would fail to start and throwAI_UnsupportedFunctionalityError: 'thinking requires a budget'due to the native snake_casebudget_tokensnaming. - Dual-field Output: Automatically outputs both standard
budget_tokensand camelCasebudgetTokensfields when syncing model configurations to externals like OpenCode / Claude CLI. - Server-side Adaptation: Backend config parser now natively supports both variants.
- Architecture Support: Resolved the issue where Vercel AI SDK (
- [Core Fix] Resolve Infinite Retry and Routing Deadlock for Depleted Free Accounts (Issue #2184):
- Root Cause: Addressed a defect where the Google API
fetchAvailableModelsdid not correctly returnremainingFractionunder specific payloads. Due to a missingprojectidentifier, the endpoint inaccurately reported1.0(100%) for quota-exhausted accounts (HTTP 429). This caused the smart routing algorithm to persistently assign requests to disabled accounts, leading to prolonged retries and incorrect quota dashboard displays. - Payload Correction: Reconstructed the quota refresh request to accurately inject the
{"project": project_id}structure into the payload. This restores accurate quota perception and achieves 100% API compatibility without breaking native metadata fields likesupportsThinking. - Smart Self-healing: By precisely reading accurate quotas, the system now identifies the depleted status of free accounts in real-time, zeroing their availability and seamlessly triggering the multi-account Smart Status Self-healing mechanism to eliminate hangs and timeout issues.
- Root Cause: Addressed a defect where the Google API
- [Core Fix] Resolve Gemini Image Average Quota Displaying as 0 on Dashboard (Issue #2160):
- Matching Update: Updated the image model matching logic in the Dashboard from hardcoded
gemini-3-pro-imageto include the latestgemini-3.1-flash-image. - Config Sync: Added UI definitions for the new image model version in
modelConfig.ts, ensuring icons and labels are rendered correctly.
- Matching Update: Updated the image model matching logic in the Dashboard from hardcoded
- [Core Fix] Proxy Config Initialization & Tool Image Preservation (Issue #2156):
- v4.1.26 (2026-02-27):
- [Feature Enhancement] Improved Quota Refresh Logic to Include Disabled Accounts:
- Relaxed Filtering: Both "Refresh All" and batch refresh operations no longer skip accounts marked as
disabledorproxy_disabled. - Auto-Recovery: Enables users to attempt re-activating and syncing accounts that were disabled due to token expiration or temporary errors directly from the UI.
- Relaxed Filtering: Both "Refresh All" and batch refresh operations no longer skip accounts marked as
- [Core Fix] Resolve cmd Black Window Flashing on Windows During Background Tasks:
- Silent Execution: Encapsulated and injected the
CREATE_NO_WINDOWflag intostd::process::Command, eliminating the visual distraction of command prompt windows flashing briefly when the app invokes system components (e.g., version probes, auto-updates) on Windows, ensuring completely borderless and silent execution.
- Silent Execution: Encapsulated and injected the
- [Feature Enhancement] Improved Quota Refresh Logic to Include Disabled Accounts:
- v4.1.25 (2026-02-27):
- [Core Feature] Dynamic Image Model & New Architecture Support:
- Dynamic Parsing: Removed hardcoded restrictions for
gemini-3-pro-image. Introduced aclean_image_model_nameutility to intelligently strip suffixes (e.g.,-4k,-16x9), fully supporting future models likegemini-3.1-flash-image. - Adaptive Quota: Optimized
normalize_to_standard_idto broadly match theimagekeyword, ensuring new models correctly trigger quota protection mechanisms.
- Dynamic Parsing: Removed hardcoded restrictions for
- [Core Feature] Chat Completions Image Interception Support:
- Seamless Integration: Chat streams in OpenAI and Claude protocols now intelligently detect image generation intent. When an
imagemodel is requested, standard text completion requests are silently redirected to the advanced image engine. - Streaming Echo: Upon completion, the image URL is streamed back in Markdown format (
), perfectly adapting to all Markdown-supported chat clients.
- Seamless Integration: Chat streams in OpenAI and Claude protocols now intelligently detect image generation intent. When an
- [Core Fix] Resolve Redirect 404 and Parameter Passthrough Failure:
- 404 Elimination: Removed residual hardcoded legacy models in underlying calls, eradicating
404 Not Foundcrashes and account exhaustion caused by model inconsistencies. - Precise Parameter Inheritance: Fixed the behavior where the system forced a default
1024x1024when parameters were omitted. Now, if the model has a suffix (e.g.,gemini-3-pro-image-16x9-4k), the backend strictly parses and prioritizes the suffix resolution for image generation.
- 404 Elimination: Removed residual hardcoded legacy models in underlying calls, eradicating
- [Core Feature] Dynamic Image Model & New Architecture Support:
- v4.1.24 (2026-02-26):
- [Feature Adjustment] Disabled Automatic Warmup Scheduler, Retained Manual Warmup:
- Change Summary: To reduce unnecessary background resource usage, the background scheduler for Automatic Warmup (Smart Warmup) has been commented out in this version.
- UI Hidden: The "Smart Warmup" configuration section in the Settings page has been hidden.
- Manual Retained: Manual warmup functionality in the Account Management page remains fully functional.
- Restoration Guide: Users who require automatic warmup can clone the repository and uncomment the
start_schedulercalls insrc-tauri/src/lib.rsand the related UI inSettings.tsxbefore rebuilding.
- [Core Fix] Smart Version Fingerprint Selection & Startup Panic Fix (Issue #2123):
- Root Cause: 1)
KNOWN_STABLE_VERSIONinconstants.rswas hardcoded to an outdated version. When local detection failed, this old version was used asx-client-version, causing Google to reject Gemini 3.1 Pro requests. 2) The new remote version fetching logic was executed within itsLazyLockinitializer on the main thread (Tokio async context), triggering aCannot block the current threadpanic. - Fix: 1) Implemented a "Smart Max Version" strategy:
max(local_version, remote_version, 4.1.27). 2) Refactored the network probe to run in a dedicated OS thread overmpscchannels, safely bypassing async runtime restrictions. This ensures that the client fingerprint always meets upstream requirements and the application starts reliably.
- Root Cause: 1)
- [Core Fix] Dynamic Model maxOutputTokens Limit System (Replaces hardcoded approach in PR #2119):
- Root Cause: Some clients send
maxOutputTokensexceeding the physical limits of models (e.g., Flash capped at 64k), causing400 INVALID_ARGUMENTfrom the upstream API. - Three-Tier Limit Architecture:
- Tier 1 (Dynamic Priority): Reads real-time quota data from accounts.
- Tier 2 (Static Default Table):
model_limits.rswith known defaults (e.g., Flash: 65536). - Tier 3 (Global Fallback): Default 131072.
- Implementation Details: Injected clamping logic in
wrap_request()to ensure parameter compliance.
- Root Cause: Some clients send
- [Feature Adjustment] Disabled Automatic Warmup Scheduler, Retained Manual Warmup:
- v4.1.23 (2026-02-25):
- [Security Enhancement] Aligned application-layer and low-level protocol fingerprints with native clients to improve request stability and anti-interception capabilities.
- [Core Fix] Resolve Account Data Corruption and Background Task Infinite Loops (PR #2094):
- Root Cause: When a user enters an excessively large interval value (e.g., 999999999),
interval * 60 * 1000exceeds the JS engine's signed 32-bit integer limit (2,147,483,647ms). The browser silently clamps thesetIntervaldelay to 1ms, causing the frontend to firerefreshAllQuotas/syncAccountFromDbthousands of times per second, flooding the backend with concurrent writes to the same[uuid].jsonfile, interleaving byte streams, and permanently corrupting account data. - Atomic File Writes (
account.rs):save_accountnow writes to a UUID-suffixed temp file first, then atomically replaces the target viafs::rename(POSIX) /MoveFileExW(Windows), consistent with the existingsave_account_indeximplementation, eliminating race-condition corruption at the source. - setInterval Overflow Guard (
BackgroundTaskRunner.tsx): AppliedMath.min(..., 2147483647)to the computed delay for both the refresh and sync timers, preventing INT32_MAX overflow from silently clamping intervals to 1ms. - Input Validation (
Settings.tsx): Updated themaxattribute forrefresh_intervalandsync_intervalinputs from60to35791(35791 min × 60000 < INT32_MAX), and addedNaNfallback (defaults to 1) with range clamping[1, 35791]inonChangeto block invalid values at the source.
- Root Cause: When a user enters an excessively large interval value (e.g., 999999999),
- [Core Optimization] OAuth Token Exchange Only: Remove JA3 Fingerprinting and Dynamic User-Agent Masking:
- Pure Requests: Specifically for
exchange_code(initial authorization) andrefresh_access_token(silent renewal) requests, the Chrome JA3 fingerprint emulation has been removed to revert to standard pure TLS characteristics. - Dynamic UA: During token exchange, the system automatically extracts the compiled version (
CURRENT_VERSION) to construct a dedicatedUser-Agent(e.g.,vscode/1.X.X (Antigravity/4.1.27)), matching the pure TLS connection.
- Pure Requests: Specifically for
- [Feature Enhancement] API Proxy Page and Settings Model Lists Now Fully Dynamic:
- Root Cause: The "API Proxy → Supported Models & Integration" list, the target model dropdown in "Model Router", and the "Settings → Pinned Quota Models" list all previously read only from the static
MODEL_CONFIG, causing dynamically issued models (e.g.,GPT-OSS 120B,Gemini 3.1 Pro (High)) to never appear in these lists. - Fix:
- Refactored the
useProxyModelsHook: accountquota.modelsdynamic data is now the primary data source, aggregatingdisplay_name(as the primary label) andname(as the model ID) across all accounts;MODEL_CONFIGis used only for icon/group styling and as a static fallback when no account data is available. - Added automatic lazy-loading: since
ApiProxyitself does not callfetchAccounts, the Hook now auto-triggers a fetch when the store is empty, ensuring dynamic models appear regardless of the navigation path. - Refactored
PinnedQuotaModelscomponent: applies the same strategy and fixes the issue where previously-pinned "thinking" models displayed as "Unknown", now correctly resolving their realdisplay_name.
- Refactored the
- Deduplication: All lists deduplicate by original
name(lowercase) and additionally filter out-thinkingsuffix entries fromMODEL_CONFIG(these variants are already covered by thesupports_thinkingflag in account data).
- Root Cause: The "API Proxy → Supported Models & Integration" list, the target model dropdown in "Model Router", and the "Settings → Pinned Quota Models" list all previously read only from the static
- v4.1.22 (2026-02-21):
- [Important Warning] 2api Risk Control Alert:
- Due to recent Google risk control measures, utilizing 2api features significantly increases the probability of your account being flagged.
- Highly Recommended: To ensure account safety and interaction stability, we strongly advise reducing or discontinuing the use of 2api features. Support for the more native and stable gRPC (
application/grpc) or gRPC-Web (application/grpc-web) protocols is currently under active testing. If you have any testing experience, ideas, or suggestions, please feel free to reach out for a discussion, or create a new branch to explore with us!
- [Core Optimization] Claude Sonnet 4.5 to 4.6 Migration (PR #2014):
- Model Upgrade: Introduced
claude-sonnet-4-6andclaude-sonnet-4-6-thinkingas primary models. - Seamless Transition: Automatically redirect
claude-sonnet-4-5(legacy) to4.6. - Universal Alignment: Updated all 12 locale files, UI labels (Sonnet 4.6, Sonnet 4.6 TK, Opus 4.6 TK), and proxy presets.
- Model Upgrade: Introduced
- [Core Optimization] Gemini Pro Model Migration (PR #2063): Migrated
gemini-pro-high/lowtogemini-3.1-proto align with the latest Google API naming conventions. - [Core Architecture] i18n Framework & Structured Model Configuration (PR #2040):
- Reconstruction: Introduced a new i18n translation framework, decoupling hardcoded model display logic into a structured
MODEL_CONFIG. - Logic Adaptation: Integrated dynamic deduplication based on i18n tags across account tables, detail dialogs, and settings, resolving the persistent Gemini 3.1 Pro quota duplication issue.
- Localization Polish: Optimized and corrected version descriptions across all 12 locales, upgrading
Claude 4.5to the official4.6version and unifyingG3references toG3.1.
- Reconstruction: Introduced a new i18n translation framework, decoupling hardcoded model display logic into a structured
- [Core Fix] Claude Opus 4.6 Thinking Mode 400 Error (Claude Protocol):
- Parameter Alignment: Fixed the
400 INVALID_ARGUMENTerror return forclaude-opus-4-6-thinkingunder the Claude protocol. By enforcing alignment ofthinkingBudget(24576) andmaxOutputTokens(57344), and removing incompatiblestopSequencesin this mode, ensuring request parameters are 100% consistent with the successful OpenAI protocol. This improves compatibility with native Claude protocol clients.
- Parameter Alignment: Fixed the
- [Important Warning] 2api Risk Control Alert:
- v4.1.21 (2026-02-17):
- [Core Fix] Cherry Studio / Claude Protocol Compatibility (Fix Issue #2007):
- maxOutputTokens Capping: Fixed
400 INVALID_ARGUMENTerrors caused by Cherry Studio sending excessivemaxOutputTokens(128k). The system now automatically caps Claude protocol output to 65536, ensuring requests remain within Gemini's limits. - Adaptive Thinking Alignment: Optimized
thinking: { type: "adaptive" }behavior for Gemini models in Claude protocol. It now maps to a fixed thinking budget of 24576 (aligned with OpenAI protocol), resolving Gemini Vertex AI incompatibility withthinkingBudget: -1and significantly improving stability in Cherry Studio.
- maxOutputTokens Capping: Fixed
- [Core Fix] Enable Custom Protocol in Production (PR #2005):
- Protocol Fix: Enabled
custom-protocolfeature by default, resolving issues with custom protocols (e.g.,tauri://) failing to load in production builds, ensuring stability for local resources.
- Protocol Fix: Enabled
- [Core Optimization] Tray Icon & Window Lifecycle Management:
- Smart Tray: Introduced
AppRuntimeFlagsfor state management, linking window close behavior with tray status. - Behavior Polish: When the tray is enabled, closing the window now hides it instead of exiting; when disabled, the application exits normally, providing a more intuitive desktop experience.
- Smart Tray: Introduced
- [Core Enhancement] Linux Version Detection & HTTP Client Robustness:
- Version Parsing: Enhanced Linux version extraction logic (
extract_semver) to accurately identify semantic versions from complex command outputs, improving auto-update and environment detection accuracy. - Client Fallback: Added automatic fallback mechanisms for HTTP client construction. If proxy configuration fails, the system automatically reverts to no-proxy mode or default settings, preventing total application failure due to network misconfiguration.
- Version Parsing: Enhanced Linux version extraction logic (
- [Core Fix] Cherry Studio Web Search Empty Response (/v1/responses):
- SSE Event Completion: Rewrote
create_codex_sse_streamto emit the complete SSE event lifecycle required by the OpenAI Responses API specification (response.output_item.added,content_part.added/done,output_item.done,response.completed), resolving the issue where Cherry Studio failed to assemble response content due to missing events. - Web Search Injection Fix: Filtered out
builtin_web_searchtool declarations sent by Cherry Studio to prevent conflicts withinject_google_search_tool, ensuring the Google Search tool is correctly injected. - Search Citation Echo: Added
groundingMetadataparsing to the Codex streaming response, enabling search query and source citation echo in web search results.
- SSE Event Completion: Rewrote
- [Optimization] Claude Protocol Web Search & Thinking Stability (PR #2007):
- Remove Web Search Downgrade: Removed the aggressive model fallback logic for web search in the Claude protocol mapper, preventing unnecessary model downgrades.
- Remove Thinking History Downgrade: Removed the
should_disable_thinking_due_to_historycheck that could permanently disable thinking mode due to imperfect message history, now relying onthinking_recoverymechanism for automatic repair.
- UI Improvement (Fix #2008): Enhanced the readability of cooldown times by changing the text color to blue.
- [Core Fix] Cherry Studio / Claude Protocol Compatibility (Fix Issue #2007):
- v4.1.20 (2026-02-16):
- Fixed
400 INVALID_ARGUMENTerror in Claude Proxy during tool calls. - Removed redundant
role: "user"fields in protocol translation for better Google API compatibility. - Enhanced JSON Schema cleaning with
anyOf/oneOfbest-match selection and constraint-to-description migration. - Optimized token budget capping logic for Gemini Thinking models (strict 24576 limit).
- Improved model name detection for experimental Gemini models containing
-thinking. - [Core Fix] Resolve Image Generation Quota Sync Issue (Issue #1995):
- Relaxed Model Filtering: Optimized the quota fetching logic to include
imageandimagenkeywords, ensuring image model quota info is correctly synchronized. - Instant Refresh Mechanism: Added an asynchronous global quota refresh trigger immediately after successful image generation, providing real-time feedback for remaining quotas in the UI.
- Relaxed Model Filtering: Optimized the quota fetching logic to include
- [Core Fix] Resolve OpenAI Stream Collector Tool Call Merging Bug (PR #1994):
- ID Conflict Validation: Introduced ID checking during stream aggregation to prevent multiple tool calls from being incorrectly merged due to index overlap.
- Index Stability Optimization: Enhanced index assignment in streaming output to ensure tool call indices remain monotonically increasing across multiple data chunks.
- [Core Optimization] Ultimate Request Identity Camouflage:
- Dynamic Version Spoofing: Implemented an intelligent version detection mechanism. Antigravity now automatically reads the locally installed version to construct the User-Agent, saying goodbye to the hardcoded "1.0.0" era.
- Docker Fallback Strategy: For headless environments (Docker/Linux Server), a "Known Stable Version" fingerprint library is built-in. When a local client cannot be detected, it automatically masquerades as the latest stable client (e.g., v1.16.5), ensuring the server always sees a legitimate official client.
- Full-Dimensional Header Injection: Completed the injection of critical fingerprint headers such as
X-Client-Name,X-Client-Version,X-Machine-Id, andX-VSCode-SessionId, achieving pixel-level camouflage from the network layer to the application layer, further reducing the probability of 403 risk controls.
- [Core Feature] Background Refresh Toggle & Settings Hot-Save:
- Independent Toggle: Added a dedicated toggle for "Background Auto Refresh" in settings, allowing finer control over background tasks.
- Hot-Save: Implemented hot-save mechanism for settings (Auto Refresh, Smart Warmup, Quota Protection), applying changes instantly without manual saving.
- [Logic Optimization] Decoupled Smart Warmup from Quota Protection:
- Unlocked: Completely removed the forced binding between "Quota Protection" and "Smart Warmup". Enabling Quota Protection now only enforces "Background Auto Refresh" (for quota monitoring) and no longer forces warmup requests.
- [Important Recommendation]: It is recommended to temporarily disable "Quota Protection" and "Background Auto Refresh" features in this version to avoid potential issues caused by frequent requests.
- Fixed
- v4.1.19 (2026-02-15):
- [Core Fix] Resolve Claude Code CLI Empty Text Block Error (Fix #1974):
- Field Missing Fix: Resolved the
Field requirederror from upstream APIs caused by empty text blocks (text: "") sent by Claude Code CLI during tool use. - Empty Value Filtering: Added automatic filtering and cleanup for invalid empty text blocks in the protocol translation layer.
- Field Missing Fix: Resolved the
- [Core Feature] Gemini Model MCP Tool Name Fuzzy Matching:
- Hallucination Fix: Implemented an intelligent fuzzy matching algorithm to address the issue where Gemini models often hallucinate incorrect MCP tool names (e.g., calling
mcp__puppeteer_navigateinstead of the registeredmcp__puppeteer__puppeteer_navigate). - Triple Matching Strategy: Introduced suffix matching, containment matching, and Token overlap scoring mechanisms, significantly improving the success rate of MCP tool calls by Gemini models.
- Hallucination Fix: Implemented an intelligent fuzzy matching algorithm to address the issue where Gemini models often hallucinate incorrect MCP tool names (e.g., calling
- [Core Fix] Opencode Sync Logic Correction (Fix #1972):
- Missing Model Fix: Resolved the issue where the
claude-opus-4-6-thinkingmodel definition was missing during Opencode CLI synchronization, ensuring proper recognition and invocation by the client.
- Missing Model Fix: Resolved the issue where the
- [Core Fix] Resolve Claude Code CLI Empty Text Block Error (Fix #1974):
- v4.1.18 (2026-02-14):
- [Core Upgrade] Full Implementation of JA3 Fingerprint Spoofing (Chrome 123):
- Anti-Bot Evasion: Integrated
rquestwith BoringSSL to perfectly mimic Chrome 123's TLS fingerprint (JA3/JA4), effectively resolving 403/Captchas issues from strict upstream providers. - Global Application: Applied spoofing to both global shared clients and the proxy pool manager, ensuring all outbound traffic (from quota fetching to chat completion) appears as legitimate browser requests.
- Anti-Bot Evasion: Integrated
- [Refactor] Universal Stream Handling (Issue #1955):
- Dual-Core Compatibility: Refactored SSE handling and debug logging to support
Box<dyn Stream>, enabling unified compatibility for bothreqwest(standard) andrquest(spoofed) response streams and resolving underlying type conflicts.
- Dual-Core Compatibility: Refactored SSE handling and debug logging to support
- [Core Feature] Account Error Details Expansion:
- In-depth Insights: Introduced a detailed error modal for "Disabled" and "403 Forbidden" accounts, automatically displaying underlying API error reasons (e.g.,
invalid_grant). - Verification Link Detection: [New] Intelligently detects Google verification/appeal links in error messages, supporting direct one-click navigation within the modal to accelerate recovery.
- Time Calibration: Fixed a bug where "Detection Time" was incorrectly displayed as a future date due to unit conversion errors.
- In-depth Insights: Introduced a detailed error modal for "Disabled" and "403 Forbidden" accounts, automatically displaying underlying API error reasons (e.g.,
- [i18n] Full Multilingual Localization Completion:
- All Languages Supported: Synchronized account details and error status entries across all 12 supported languages (AR, ES, JA, KO, MY, PT, RU, TR, VI, EN, and ZH-Hans/Hant).
- Localization Refinement: Optimized terminology for various locales (especially Japanese, Turkish, and Traditional Chinese), ensuring a professional native experience for users worldwide.
- [Core Fix] Resolve Quota Matching Failure for Image Model Suffixes (Issue #1955):
- Normalization Optimization: Fixed an issue where
gemini-3-pro-imagevariants with resolution or aspect-ratio suffixes (e.g.,-4k,-16x9) failed to normalize correctly, leading to precise matching failures in the quota system. - Quota Alignment: Ensures all image model variants are correctly mapped to their standard IDs, accurately triggering account quota protection and resolving the "No accounts available with quota" error.
- Normalization Optimization: Fixed an issue where
- [Core Upgrade] Full Implementation of JA3 Fingerprint Spoofing (Chrome 123):
- v4.1.17 (2026-02-13):
- [UX] Auto-Update Experience Upgrade (PR #1923):
- Background Download: Implemented silent background downloading of updates, no longer blocking user operations during the process.
- Progress Feedback: Added a download progress bar to provide real-time status feedback.
- Restart Prompt: A more user-friendly restart prompt appears after download completion, supporting "Restart Now" or "Restart Later".
- Logic Optimization: Prioritized checking
updater.jsonto reduce direct dependency on GitHub API, improving check speed.
- [Documentation] Cross-Platform Install Scripts (PR #1931):
- One-Click Install: Updated Option A in README to recommend the cross-platform one-click installation script.
- [Community] Added Telegram Channel Entry:
- Community Card: Added a Telegram Channel card to the "Settings -> About" page, allowing users to quickly join the official channel for the latest updates.
- Layout Optimization: Adjusted the grid layout of cards on the About page to fit 5 columns, ensuring a clean and organized interface.
- [UX] Auto-Update Experience Upgrade (PR #1923):
- v4.1.16 (2026-02-12):
- [Core Fix] Resolve Claude Protocol (Thinking Model) 400 Errors (V4 Scheme):
- Protocol Alignment: Completely fixed the
400 Invalid Argumenterror caused by parameter structure mismatch when calling models like Claude 3.7/4.5 Thinking via proxy. - Unified Injection: Deprecated the conflicting root-level
thinkingfield injection. Now uniformly uses thegenerationConfig.thinkingConfignested structure recommended by Google's native protocol. - Budget Adaptation: Adapted a default 16k Thinking Budget for Claude models and resolved compilation/runtime exceptions caused by Rust borrow checker conflicts.
- Protocol Alignment: Completely fixed the
- [Bug Fix] Resolve OpenAI Streaming Usage Duplication (Issue #1915):
- Token Explosion Fix: Fixed an issue in
stream=truemode where theusagefield was incorrectly appended to every data chunk, causing clients (like Cline/Roo Code) to report exponentially inflated token usage.
- Token Explosion Fix: Fixed an issue in
- [Core Feature] Enable Native Auto-Update for Linux Platform (PR #1891):
- Full Platform Coverage: Added support for
linux-x86_64andlinux-aarch64platforms inupdater.json, enabling Linux AppImage users to receive auto-update notifications. - Workflow Optimization: Automatically detects and reads
.AppImage.sigsignature files for Linux builds, completing the auto-update loop for macOS, Windows, and Linux.
- Full Platform Coverage: Added support for
- [New Feature] Cross-Platform One-Line Install Scripts (PR #1892):
- Simplified Installation: Added
install.sh(Linux/macOS) andinstall.ps1(Windows), supporting fully automated download, installation, and configuration via simplecurlorirmcommands. - Smart Detection: Automatically identifies OS, architecture, and package managers (DEB/RPM/AppImage/DMG/NSIS), with support for specific version pinning and Dry-Run mode.
- Simplified Installation: Added
- [Core Optimization] Decouple OpenCode Config from Local Binary & Custom Network Support (Issue #1869):
- Environment Decoupling: The backend no longer enforces the presence of the
opencodebinary, allowing sync status management via configuration files in isolated environments like Docker. - Custom BaseURL: Added a "Custom Manager BaseURL" setting in the frontend, supporting manual specification of the Manager access address, perfectly resolving connection issues in Docker Compose networking and custom reverse proxy scenarios.
- Full Localization: Added English and Chinese i18n support for the new features and fixed JSX rendering exceptions in the OpenCode sync modal.
- Environment Decoupling: The backend no longer enforces the presence of the
- [UI Fix] Resolve indentation inconsistency in API proxy Python templates (PR #1879):
- Display Optimization: Removed redundant leading spaces from Python code integration snippets to ensure copied code is immediately runnable without manual indentation adjustments.
- [Core Fix] Resolve effortLevel conflict in Gemini Image Generation caused by keyword matching (PR #1873):
- Logic Conflict Fix: Completely fixed the HTTP 400 error where
gemini-3-pro-imageand its 4k/2k variants were incorrectly identified as supporting Adaptive Thinking due to thegemini-3-prokeyword, leading to the erroneous injection ofeffortLevel.
- Logic Conflict Fix: Completely fixed the HTTP 400 error where
- [Docs Update] Full Guide for Gemini 3 Pro (Imagen 3) Image Generation:
- Deep Dive: Added Gemini 3 Pro Image Generation Guide, providing detailed technical specs for aspect ratio mapping, quality levels, Image-to-Image API support, and magic suffix usage.
- [Installation] Official Homebrew Cask Maintenance:
- Version Sync: Updated
antigravity-tools.rbCask to v4.1.16, ensuring macOS and Linux users get the latest stable build viabrew install. - Parameter Scrubbing: Added specific filtering for image generation models at the proxy layer to ensure incompatible generation parameters are no longer injected into non-thinking models.
- Version Sync: Updated
- [Core Fix] Resolve Claude Protocol (Thinking Model) 400 Errors (V4 Scheme):
- v4.1.15 (2026-02-11):
- [Core Feature] Enable Native Auto-Update for macOS and Windows (PR #1850):
- End-to-End Auto-Update: Enabled the native Tauri updater plugin, supporting in-app update checks, downloads, and installations.
- Release Workflow Fix: Completely fixed the logic for generating update metadata (
updater.json) in the Release workflow. The system now automatically builds a complete update index from.sigsignature files, supporting darwin-aarch64, darwin-x86_64, and windows-x86_64 architectures. - Seamless Experience: Integrated with the existing frontend update notification components to achieve a fully automated update loop from release to installation.
- [Core Fix] Resolve 400 Errors Caused by Empty Project ID During Account Switching (PR #1852):
- Empty Value Filtering: Added filtering logic for empty
project_idstrings at the Proxy layer. - Self-Correction: Detecting an empty
project_idnow triggers an automatic re-fetch process, effectively resolving the "Invalid project resource name projects/" error mentioned in Issue #1846 and #1851.
- Empty Value Filtering: Added filtering logic for empty
- [Troubleshooting] Resolving HTTP 404 "Resource projects/... not found" Errors (Issue #1858):
- Verify Project ID: Log in to the Google Cloud Console and search for the specific Project ID (e.g.,
bold-spark-xxx) mentioned in the error. If the project is missing, create a new one and enable the necessary Vertex AI APIs. - Reset Account Session: Try removing and re-adding your account within the Antigravity app to clear any stale session data.
- CLI-Based Verification: We recommend re-authenticating via the Gemini CLI (
gcloud auth login) and ensuring that your project is correctly configured usinggcloud config set project.
- Verify Project ID: Log in to the Google Cloud Console and search for the specific Project ID (e.g.,
- [Troubleshooting] Resolving HTTP 403 "Forbidden" Errors (Issue #1834):
- Check Verification Link: Look for a message in the API response like "To continue, verify your account at...". If present, follow the link to complete Google's verification process.
- Verify Plan Eligibility: Check our FAQ page to ensure your account meets the requirements for Google One AI or Gemini Code Assist plans.
- Self-Recovery: Some 403 errors (e.g., triggered by risk controls or quota adjustments) may resolve automatically after waiting for a period of time.
- [Core Feature] Enable Native Auto-Update for macOS and Windows (PR #1850):
- v4.1.15 (2026-02-11):
- [Core Fix] Cloudflared Persistence Support (Issue #1805):
- Persistence: Resolved the issue where Cloudflared (CF Tunnel) settings, including Tunnel Token, Mode, and HTTP/2 preference, were lost after restarting the app.
- Hot-Sync Implementation: Integrated real-time persistence for all Cloudflared settings. Mode switching, Token updates (on blur), and HTTP/2 toggles are now immediately saved to the configuration file.
- [Core Fix] Fix 403 Forbidden Marking During Warmup (PR #1803):
- Forbidden Detection: Resolved the issue where accounts returning 403 during the Warmup process were not marked as
is_forbidden. - Automatic Skip: Detecting a 403 during Warmup now immediately marks and persists the forbidden status, ensuring the account is skipped in subsequent scheduling, warmup, and quota checks.
- Forbidden Detection: Resolved the issue where accounts returning 403 during the Warmup process were not marked as
- [UI Optimization] Mini View Status Display & Interaction Enhancement (PR #1816):
- Status Indicator Dot: added a request status dot at the bottom of the Mini View. Shows green for success (200-399) and red for failure, providing instant feedback on the latest request.
- Model Name Fallback: improved model name display logic. When
mapped_modelis empty, it now falls back to the original model ID instead of showing "Unknown", increasing clarity. - Refresh Animation: optimized the refresh button animation, applying the spin effect directly to the
RefreshCwicon for a more refined interactive experience.
- [Core Feature] Image Generation imageSize Parameter Support:
- Direct Parameter Support: Added direct support for Gemini native
imageSizeparameter, available across all protocols (OpenAI/Claude/Gemini). - Parameter Priority: Implemented clear parameter priority logic:
imageSizeparameter >qualityparameter inference > model suffix inference. - Full Protocol Compatibility: OpenAI Chat API, Claude Messages API, and Gemini native protocol all support directly specifying resolution ("1K"/"2K"/"4K") via the
imageSizefield. - Backward Compatibility: Fully compatible with existing
qualityparameter and model suffix methods, without affecting existing code.
- Direct Parameter Support: Added direct support for Gemini native
- [Core Feature] Opencode Provider Isolation & Cleanup Workflow (PR #1820):
- Isolated Sync Logic: Implemented isolated synchronization for Opencode provider to prevent state pollution and ensure data integrity.
- Cleanup Workflow: Added resource cleanup workflow for better resource management and system efficiency.
- Enhanced Stability: Improved the stability and reliability of the synchronization process.
- [Core Fix] Cloudflared Persistence Support (Issue #1805):
- v4.1.15 (2026-02-11):
- [Core Feature] Homebrew Cask Installation Detection & Support (PR #1673):
- App Upgrade: Added detection logic for Homebrew Cask installations. If the app was installed via Cask, users can now trigger the
brew upgrade --caskflow directly within the app for a seamless upgrade experience.
- App Upgrade: Added detection logic for Homebrew Cask installations. If the app was installed via Cask, users can now trigger the
- [Core Fix] Gemini Image Generation Quota Protection (PR #1764):
- Protection Active: Fixed an issue where text requests could wrongly consume image quota, and ensured correct interception for
gemini-3-pro-imagewhen the image quota is exhausted.
- Protection Active: Fixed an issue where text requests could wrongly consume image quota, and ensured correct interception for
- [UI Optimization] Fix Navbar Boundaries & Display Issues (PR #1636):
- Boundary Fix: Fixed issues where the right-side menu in the navigation bar could exceed boundaries or display incompletely at specific window widths.
- Compatibility: This merge preserves new features like Mini View from the main branch, applying only necessary style corrections.
- Responsive Enhancement: Adjusted navigation menu breakpoints, raising the text capsule threshold to 1120px. This ensures long English labels automatically switch to a compact icon mode on narrower viewports, maintaining a clean and balanced layout.
- [Core Fix] Resolve Stack Overflow in Complex JSON Schema Processing (Issue #1781):
- Security Hardening: Introduced
MAX_RECURSION_DEPTH(10) for deep recursive logic likeflatten_refs, effectively preventing crashes caused by circular references or excessively deep nesting.
- Security Hardening: Introduced
- [Core Fix] Resolve Incorrect Concatenation of Multiple Tool Calls in Streaming Output (Issue #1786):
- Index Correction: Fixed the index assignment logic for
tool_callsincreate_openai_sse_stream, ensuring multiple tool calls within the same chunk have independent and sequentialindexvalues, preventing parsing failures caused by concatenated arguments.
- Index Correction: Fixed the index assignment logic for
- [Core Fix] Resolve Thinking Signature Errors in Claude Multi-Turn Conversations (Issue #1790):
- Signature Injection & Downgrade: Added automatic signature injection for historical thought blocks in the OpenAI translation layer. When no valid signature is available, thought blocks are automatically downgraded to plain text blocks, resolving the HTTP 400 errors encountered with Claude-opus-thinking models during multi-turn chats.
- [Core Fix] Resolve 503 Error Caused by Google Cloud Project ID Fetch Failure (Issue #1794):
- Automatic Fallback: Fixed a bug where accounts with insufficient permissions were skipped during official project ID retrieval. The system now safely falls back to a verified stable Project ID (
bamboo-precept-lgxtn), ensuring uninterrupted API requests.
- Automatic Fallback: Fixed a bug where accounts with insufficient permissions were skipped during official project ID retrieval. The system now safely falls back to a verified stable Project ID (
- [i18n] Enhanced Internationalization for Settings and ApiProxy (PR #1789):
- Refactoring: Replaced hardcoded Chinese strings in
Settings.tsxandApiProxy.tsxwitht()internationalization calls. - Translation Expansion: Synchronized localization entries for Korean, Myanmar, Portuguese, Russian, Turkish, Vietnamese, Traditional Chinese, and Simplified Chinese.
- Refactoring: Replaced hardcoded Chinese strings in
- [Core Fix] Resolve IP Whitelist Deletion Failure (Issue #1797):
- Parameter Normalization: Fixed the issue where whitelisted IPs could not be deleted due to parameter naming convention mismatches (snake_case vs camelCase) between the frontend and backend. Also unified parameters for blacklist management and IP access logs to ensure system-wide consistency.
- [Core Feature] Homebrew Cask Installation Detection & Support (PR #1673):
- v4.1.12 (2026-02-10):
- [Core Feature] OpenCode CLI Deep Integration (PR #1739):
- Auto Detection: Added automatic detection and configuration sync support for OpenCode CLI environment variables.
- One-Click Sync: Supports seamless injection of Antigravity configurations into the OpenCode CLI environment via the "External Providers" card.
- [Core Fix] Claude Opus Thinking Budget Injection (PR #1747):
- Budget Correction: Fixed an issue where the default Thinking Budget was not correctly injected when Opus models automatically enabled thinking mode, preventing upstream errors due to missing budget.
- [Core Optimization] Claude Opus 4.6 Thinking Upgrade (Issue #1741, #1742, #1743):
- Model Iteration: Officially added support for
claude-opus-4-6-thinkingwith enhanced reasoning capabilities. - Seamless Migration: Implemented automatic redirection from
claude-opus-4.5/claude-opus-4to4.6, allowing legacy configurations to use the new model without changes.
- Model Iteration: Officially added support for
- [Core Fix] Account Index Self-Healing Mechanism (PR #1755):
- Fault Tolerance: Fixed an issue where the account index could not be automatically rebuilt in some extreme cases (e.g., file corruption). The system now automatically triggers a self-healing process upon detecting index anomalies, ensuring account data availability.
- [Core Fix] Fix IP Blacklist Deletion & Timezone Issues (PR #1748):
- Parameter Correction: Fixed IP blacklist deletion failure caused by parameter naming convention mismatch (snake_case vs camelCase).
- Logic Fix: Corrected the issue where the wrong parameter (ip_pattern instead of id) was passed when clearing the blacklist.
- Timezone Calibration: Fixed Curfew logic to enforce Beijing Time (UTC+8), resolving discrepancies when server local time is not UTC+8.
- Rejection Alignment: Optimized token rejection response to return 403 status code with JSON error details, aligning with the unified error response standard.
- [Core Feature] Added Mini View Mode (PR #1750):
- Quick Access: Introduced a mini window mode with bidirectional toggling. This mode stays on top of the desktop, providing streamlined shortcuts for instant status checking and monitoring.
- [Core Fix] Gemini Protocol 400 Error Self-Healing (PR #1756):
- Token Bumping: Fixed the 400 error occurring when using thinking models (e.g., Claude Opus 4.6 Thinking) via the Gemini native protocol, where
maxOutputTokenswas less thanthinkingBudget. The system now automatically adjusts and aligns token limits to ensure request compliance.
- Token Bumping: Fixed the 400 error occurring when using thinking models (e.g., Claude Opus 4.6 Thinking) via the Gemini native protocol, where
- [Core Fix] Fix Claude CLI Path Detection for Bun on macOS (PR #1765):
- Path Enhancement: Added detection for
~/.bun/binand global install paths, resolving issues where Bun users could not automatically sync Claude CLI configurations.
- Path Enhancement: Added detection for
- [Core Optimization] Optimize Logo Text Hiding & Showing (PR #1766):
- Display Optimization: Leveraged Tailwind CSS container logic to control logo text visibility, preventing text wrapping in small containers.
- [Core Fix] Google Cloud Code API 404 Retry & Account Rotation (PR #1775):
- Smart Retry: Added automatic retry and account rotation for 404 errors from the Google Cloud Code API, commonly caused by phased rollouts or permission discrepancies. The system retries with a short 300ms delay and automatically switches to the next available account.
- Short Lockout: Applied a 5-second soft lockout for 404 errors (vs. 8 seconds for other server errors), minimizing user wait time while protecting accounts.
- [Core Feature] OpenCode CLI Deep Integration (PR #1739):
- v4.1.11 (2026-02-09):
- [Core Optimization] Refactored Token Routing Logic (High-End Model Routing Optimization):
- Strict Capability Filtering: Implemented strict Capability Filtering for high-end models like
claude-opus-4-6. The system now verifies the actualmodel_quotasheld by the account. Only accounts that explicitly possess the quota for the target model can participate in the rotation, thoroughly resolving the "Soft Priority" issue where Pro/Free accounts were incorrectly selected. - Strict Tier Prioritization: Established an absolute priority sorting strategy:
Ultra > Pro > Free. As long as an Ultra account is available, the system will always prioritize scheduling Ultra accounts, preventing downgrade to Pro accounts and ensuring service quality for high-end models. - [Configuration Warning]: Please check
Settings -> Custom Model Mappingorgui_config.jsonto ensure there is NO wildcard configuration like"claude-opus-4-*": "claude-opus-4-5-thinking". This could causeclaude-opus-4-6-thinkingto be incorrectly mapped toclaude-opus-4-5-thinking. We recommend adding an explicit exact mapping forclaude-opus-4-6-thinking.
- Strict Capability Filtering: Implemented strict Capability Filtering for high-end models like
- [Core Fix] Configuration Hot-Reload Restoration (PR #1713):
- Instant Effect: Fixed an issue where proxy pool configuration changes in memory were not updated when saving settings in WebUI or Docker environments. Modifications now take effect immediately without requiring a restart.
- [Docker Optimization] New Local Binding Restriction Option:
- Network Security: Introduced the
ABV_BIND_LOCAL_ONLYenvironment variable. When set totrue, Docker/Headless mode will strictly bind to127.0.0.1and no longer expose services to0.0.0.0by default, meeting specific security network requirements.
- Network Security: Introduced the
- [Core Feature] Custom Expiration Time for User Tokens (PR #1722):
- Flexible Control: Creating user tokens now supports selecting a custom expiration time precise to the minute, no longer limited to preset fixed durations.
- [Core Fix] Token Editing Sync & Parameter Encapsulation (PR #1720, #1722):
- Data Sync: Fixed an issue where some fields were not correctly reflected when editing tokens.
- Refactoring: Optimized the parameter structure for token creation and updates, improving code maintainability.
- [Core Fix] Fix Proxy Authentication Persistence Failure (Issue #1738):
- Magic Prefix Mechanism: Introduced
ag_enc_prefix to explicitly identify encrypted password fields. - Double Encryption Prevention: Thoroughly resolved the issue where the backend could not distinguish between "plaintext input" and "encrypted ciphertext," preventing double encryption during multiple saves or import/export operations.
- Compatibility: Fully compatible with legacy configurations (no prefix), automatically migrating them to the new format upon the next save. Also enhanced the robustness of batch import functionality.
- Magic Prefix Mechanism: Introduced
- [Core Fix] Resolve User Creation/Loading Failure (Issue #1719):
- Data Cleaning: Implemented automatic data cleaning in database initialization to reset NULL values in legacy records to defaults, preventing list interface crashes.
- Robustness: Enhanced backend data reading logic with defensive default values for critical fields.
- [Frontend Fix] Fix User Token Renewal Failure:
- Parameter Correction: Corrected the parameter naming convention (snake_case -> camelCase) in the renewal API call, resolving the "missing required key" error.
- [Core Fix] Resolve Google Cloud Project 404 Error (Issue #1736):
- Remove Invalid Mock Logic: Completely removed the legacy logic for generating random Project IDs (e.g.,
useful-flow-g3dts), which are now rejected by the Google API with a 404 error. - Smart Fallback Strategy: The system now safely falls back to a verified stable Project ID (
bamboo-precept-lgxtn) when an account fails to retrieve a valid project ID automatically, ensuring service continuity and reliability.
- Remove Invalid Mock Logic: Completely removed the legacy logic for generating random Project IDs (e.g.,
- [Core Fix] Enhance Streaming Stability Under Unstable Network (Issue #1732):
- Mandatory Buffer Flush: Resolved hangs and "Zero I/O" issues caused by missing trailing newlines in SSE streams due to network fragmentation.
- Timeout Resilience: Extended streaming timeout to 60s to better handle high-latency network environments.
- Session ID Stability: Optimized the session identifier algorithm to prevent ID drift and subsequent thinking model signature failures during reconnections.
- [Core Optimization] Refactored Token Routing Logic (High-End Model Routing Optimization):
- v4.1.10 (2026-02-08):
- [Core Feature] Expand CLI Detection Paths to Support Volta (PR #1695):
- Path Enhancement: Added automatic detection support for
.volta/binand its internal binaries in bothcli_syncandopencode_sync, ensuring a "zero-config" experience for Volta users when syncing CLI configurations.
- Path Enhancement: Added automatic detection support for
- [Core Fix] Smart Resolution Protection for Image Generation (Issue #1694):
- Priority Logic: Refactored the image configuration merging algorithm to prioritize high-resolution settings from model suffixes (e.g.,
-4k,-2k) or explicit parameters (quality: "hd"). This prevents accidental downgrades caused by default parameters in the request body. - Capability Boost: Supports concurrent high-resolution image generation and full Thinking process display.
- Priority Logic: Refactored the image configuration merging algorithm to prioritize high-resolution settings from model suffixes (e.g.,
- [Core Feature] Deep Optimization for Advanced Thinking & Global Config:
- Image Thinking Mode: Added a new global toggle. When enabled, it provides dual-image output (draft + final) and full thinking chains; when disabled, the system explicitly enforces
includeThoughts: falseto prioritize single-image generation quality. - UI Refactoring: Compressed the "Advanced Thinking" module layout using row-based alignment and compact controls, reducing vertical space usage by 50% for better information density.
- Global Prompt Enhancements: Improved the input experience with real-time character counting and long-context warnings.
- Image Thinking Mode: Added a new global toggle. When enabled, it provides dual-image output (draft + final) and full thinking chains; when disabled, the system explicitly enforces
- [i18n] Synchronized Support for 10+ Languages:
- Multilingual Completion: Fully synchronized translation keys for the Advanced Thinking module across Traditional Chinese, Japanese, Korean, Arabic, Spanish, Russian, Vietnamese, Turkish, Portuguese, and Myanmar.
- [Core Fix] Full Protocol Support & Stability Enhancements:
- Unified Coverage: Image Thinking controls are now synchronized across Gemini Native, OpenAI-Compatible, and Claude (Anthropic) protocols.
- DevOps Cleanup: Resolved global state race conditions in backend unit tests and updated GitHub Release CI configurations to support asset overwriting.
- [Core Feature] Claude 4.6 Adaptive Thinking Support:
- Dynamic Effort: Full support for the
effortparameter (low/medium/high), allowing dynamic adjustment of thinking depth and budget. - Adaptive Token Limits: Fixed an issue where
maxOutputTokenswas incorrectly truncated in Adaptive mode due to missing Budget perception, ensuring long thought chains are preserving.
- Dynamic Effort: Full support for the
- [Documentation] Added Adaptive Mode Test Examples:
- Included
docs/adaptive_mode_test_examples.md, providing a comprehensive guide for validating multi-turn conversations, complex tasks, and budget mode switching.
- Included
- [Core Fix] Persistent Bindings & Reliable Quota Protection (Issue #1700):
- Binding Persistence: Fixed a regression where
account_bindingswere overwritten during settings save, ensuring persistent mappings across restarts. - Protection Boost: Enhanced model normalization to recognize physical API model names and perfected instant sync and scheduler filtering to prevent low-quota account leakage.
- Binding Persistence: Fixed a regression where
- [Core Feature] Optimize Global Upstream Proxy I18n & Styling (Issue #1701):
- I18n Synchronization: Completed proxy configuration strings for all 12 supported languages, resolving missing content in
zh.jsonand inconsistent translations across locales. - Styling Refined: Reconstructed the global proxy configuration card with gradient backgrounds and micro-animations, ensuring visual consistency with Proxy Pool settings.
- SOCKS5H Support: Added a protocol suggestion hint for
socks5h://in the UI and unified backend proxy URL normalization logic to improve guidance for remote DNS resolution.
- I18n Synchronization: Completed proxy configuration strings for all 12 supported languages, resolving missing content in
- [Core Feature] Expand CLI Detection Paths to Support Volta (PR #1695):
- v4.1.9 (2026-02-08):
- [Core Feature] Expand CLI Config Quick Sync Support (PR #1680, #1685):
- Multi-Tool Integration: Now supports syncing configurations to Claude Code, Gemini CLI, Codex AI, OpenCode, and Droid.
- Custom Model Selection: Added model selection dropdowns for single-model CLIs (Claude, Codex, Gemini) and drag-and-drop management for multi-model CLIs (OpenCode, Droid).
- Logic Calibration: Deeply adapted the preset logic for each CLI (e.g., root-level
modelfield and mirror environment cleanup for Claude) to ensure post-sync compatibility. - Interaction Optimization: Synced panel now supports default collapse with smooth animations and improved UI feedback.
- Backup & Security: Automatically generates
.antigravity.bakbackups before syncing, with one-click restore support.
- [Core Feature] Global System Prompt Support (PR #1669):
- Unified Instruction Injection: Added a new configuration in System Settings to inject custom system instructions into all OpenAI, Claude, and Gemini protocol requests.
- Frontend UI: Introduced the
GlobalSystemPromptcomponent with one-click enable and multi-line content editing.
- [Core Fix] Resolve Floating-point Precision Loss (PR #1669):
- Precision Upgrade: Upgraded
temperatureandtop_pdata types fromf32tof64in the backend. - Accuracy Calibration: Completely eliminated minor deviations (e.g.,
0.95becoming0.949999...) during proxy serialization, improving upstream compatibility.
- Precision Upgrade: Upgraded
- [Core Refactoring] Implement App Name Internationalization (PR #1662):
- UI Upgrade: Removed hardcoded "Antigravity Tools" from
NavLogoandSettingspages, utilizing theapp_nametranslation key for consistent UI language switching.
- UI Upgrade: Removed hardcoded "Antigravity Tools" from
- [Core Fix] Correct Misidentification of gemini-3-pro-image as a Thinking Model (Issue #1675):
- Root Cause:
gemini-3-pro-imageand its 4k/2k variants were incorrectly identified as "Thinking Models" because they contain thegemini-3-prokeyword. - Conflict Resolved: Fixed the conflict caused by the incorrect injection of
thinkingConfigalongsideimageConfig, which led to backend resolution downgrades (to 1k). - Token Optimization: Resolved the "Token limit exceeded (131072)" 400 errors triggered by placeholders or specific limits injected for thinking models.
- Root Cause:
- [i18n] Synchronize Japanese Translations to 100% (PR #1662):
- Translation Completion: Synchronized all missing keys from
en.json, covering new features like Cloudflared, Circuit Breaker, and OpenCode Sync.
- Translation Completion: Synchronized all missing keys from
- [Refactoring] Restructured UpstreamClient Response Logic:
- Structured Results: Introduced
UpstreamCallResultto unify upstream request management and optimize streaming/non-streaming response paths.
- Structured Results: Introduced
- [Core Feature] Expand CLI Config Quick Sync Support (PR #1680, #1685):
- v4.1.8 (2026-02-07):
- [Core Feature] Integrated Claude Opus 4.6 Thinking Model Support (PR #1641):
- Hybrid Architecture: Implemented a "Static Config + Dynamic Fetch" dual-mode architecture. Model lists are dynamically fetched via Antigravity API, while advanced metadata like Thinking Mode is supplemented by the local registry, perfectly balancing flexibility and stability.
- Zero-Config Access:
claude-opus-4-6series models automatically enable Thinking Mode with preset Budgets, allowing users to enjoy the latest reasoning capabilities without manual intervention. - Cutting-edge Mapping: Added support for
claude-opus-4-6-thinkingand its aliases (claude-opus-4-6,20260201), managing them under theclaude-sonnet-4.5quota group.
- [Core Optimization] Improve OpenCode CLI Detection Logic (PR #1649):
- Path Expansion: Added automatic scanning for common global installation paths on Windows (e.g.,
npm,pnpm,Yarn,NVM,FNM). - Reliability Boost: Fixed detection failures when
PATHenvironment is incomplete and enhanced support for.cmdand.batfiles on Windows.
- Path Expansion: Added automatic scanning for common global installation paths on Windows (e.g.,
- [Core Fix] Resolve missing tool call content in monitoring logs:
- Multi-Protocol Support: Refactored SSE parsing logic to fully support OpenAI
tool_callsand Claudetool_use. - Incremental Accumulation: Implemented streaming accumulation for tool parameters, ensuring long tool calls are correctly captured and displayed in the monitoring panel.
- Multi-Protocol Support: Refactored SSE parsing logic to fully support OpenAI
- [UI Optimization] Navbar & Link Interaction Improvements (PR #1648):
- Dragging Restricted: Added
draggable="false"to all links and icons in the navigation bar and Logo to prevent accidental browser default dragging behavior, improving interaction stability. - SmartWarmup Hover Enhancement: Refined the hover color transition logic for the SmartWarmup component icon in its disabled state for better UI consistency.
- Dragging Restricted: Added
- [Core Feature] Enhanced Account Custom Label Support (PR #1620):
- Length Limit: Optimized label length limit from 20 to 15 characters, synchronized across frontend and backend.
- Backend Validation: Enhanced Rust command validation with Unicode character support and improved error handling.
- Frontend Alignment: Synchronized
maxLength={15}for edit inputs in both account list and card views.
- [Core Fix] Fix Clipboard Error in UserToken Page (PR #1639):
- Logic Fix: Resolved exceptions that could be triggered when attempting to access or write to the clipboard on the UserToken page.
- UX Optimization: Improved the robustness of clipboard interactions to ensure consistent behavior across various environments.
- [Core Optimization] Optimize Token Sorting Performance & Reduce Disk I/O (PR #1627):
- In-Memory Quota Cache: Introduced model quota caching within the
ProxyTokenstruct to eliminate disk reads during theget_tokensorting hot path. - Throughput Improvement: Completely removed blocking synchronous I/O (
std::fs::read_to_string) from request processing, significantly improving latency and throughput under high concurrency.
- In-Memory Quota Cache: Introduced model quota caching within the
- [i18n] Fixed missing translations for custom label feature (PR #1630):
- Translation Completion: Completed missing i18n keys for editing labels, custom label placeholders, and update success messages in Traditional Chinese and other locales.
- [UI Fix] Fixed missing hover effect for SmartWarmup icon (PR #1568):
- Hover Effect: Added hover background and text color changes for the disabled icon state, aligning it with other setting components.
- [Core Fix] Fix Missing Signature for Vertex AI Thinking Models in OpenAI Protocol (Issue #1650):
- Sentinel Injection: Removed the restriction on sentinel signature injection for Vertex AI (
projects/...) models. The system now automatically injectsskip_thought_signature_validatoreven if a real signature is missing, preventing theField required for thinking signatureerror.
- Sentinel Injection: Removed the restriction on sentinel signature injection for Vertex AI (
- [Core Feature] Integrated Claude Opus 4.6 Thinking Model Support (PR #1641):
- v4.1.7 (2026-02-06):
-
[Core Fix] Fixed Image API Account Rotation on 429/500/503 Errors (Issue #1622):
- Automatic Retry: Implemented automatic retry and account rotation logic for
images/generationsandimages/edits, aligning with the robustness of the Chat API. - Consistent Experience: Requests now automatically failover to the next available account when quota is exhausted or upstream service is unavailable, ensuring high availability.
- Automatic Retry: Implemented automatic retry and account rotation logic for
-
[Core Feature] Add Custom Label Support for Accounts (PR #1620):
- Label Management: Supports setting personalized labels for each account for easier identification in multi-account environments.
- UI Optimization: Directly view and edit labels inline in both account list and card views.
- I18n Support: Full support for both Chinese and English localization.
-
[Core Fix] Handle NULL values in
get_statswhen database is empty (PR #1578):- NULL Handling: Wrapped
SUM()calls withCOALESCE(..., 0)to ensure numeric values are always returned, fixing type conversion errors inrusqlitewhen no logs exist. - Performance Retention: Preserved the optimized single-query architecture from the local branch for statistical data retrieval.
- NULL Handling: Wrapped
-
[Core Fix] Claude 403 Error Handling & Account Rotation Optimization (PR #1616):
- 403 Status Mapping: Mapped 403 (Forbidden) errors to 503 (Service Unavailable) to prevent clients (e.g., Claude Code) from automatically logging out.
- Auto-Disable Logic: Automatically marks accounts as
is_forbiddenand removes them from the active memory pool upon encountering 403 errors. - Temporary Risk Control detection: Identifies
VALIDATION_REQUIREDerrors and implements a 10-minute temporary block for affected accounts. - Rotation Stability: Fixed premature returns during
QUOTA_EXHAUSTEDerrors, ensuring the system correctly attempts to rotate to the next available account.
-
[Core Feature] OpenCode CLI Configuration Sync Integration (PR #1614):
- One-click Sync: Automatically generates
~/.config/opencode/opencode.jsonwith proper provider settings for Anthropic and Google. - Account Export: Optionally syncs accounts to
antigravity-accounts.jsonfor OpenCode plugin compatibility. - Backup & Restore: Automatically creates a backup before syncing, with the ability to restore previous configurations.
- Cross-platform Support: Consistent support across Windows, macOS, and Linux.
- Experience Optimization: Fixed RPC parameter wrapping, completed i18n translations, and optimized view state when the configuration file is missing.
- One-click Sync: Automatically generates
-
[Core Feature] Allow Hiding Unused Menu Items (PR #1610):
- Visibility Control: Added "Menu Item Visibility Settings" in the settings page, allowing users to customize sidebar navigation items.
- UI Refinement: Provides a cleaner interface for minimalist users by hiding unused feature entries.
-
[Core Fix] Gemini Native Protocol Image Generation Full Fix (Issue #1573, #1625):
- 400 Error Fix: Resolved
INVALID_ARGUMENTerrors in Gemini native image generation caused by the missingrole: "user"field in thecontentsarray. - Parameter Passthrough: Ensured
generationConfig.imageConfig(e.g.,aspectRatio,imageSize) is correctly passed to the upstream API without getting filtered. - Error Code Optimization: Optimized error mapping for image generation services, ensuring 429/503 statuses correctly trigger client-side retries.
- 400 Error Fix: Resolved
-
[Core Enhancement] Custom Mapping Supports Manual Input for Any Model ID:
- Flexible Input: Added manual input functionality to the custom mapping target model selector. Users can now directly enter any model ID at the bottom of the dropdown menu.
- Unreleased Model Experience: Supports experiencing models not yet officially released by Antigravity, such as
claude-opus-4-6. Users can route requests to these experimental models through custom mappings. - Important Notice: Not all accounts support calling unreleased models. If your account lacks access to a specific model, requests may return errors. It is recommended to test with a small number of requests first to confirm account permissions before large-scale use.
- Quick Operation: Supports Enter key for quick submission of custom model IDs, improving input efficiency.
-
- v4.1.6 (2026-02-06):
- [Core Fix] Deep Refactor of Claude/Gemini Thinking Model Interruptions & Tool Loop Recovery (#1575):
- Thinking Recovery: Introduced
thinking_recoverymechanism. Automatically strips stale thinking blocks and guides the model when status loops or interruptions are detected, enhancing stability in complex tool-calling scenarios. - Complete Fix for Signature Binding Errors: Corrected the logic that incorrectly injected cached signatures into custom client-side thinking content. Since signatures are strictly bound to specific text, this completely resolves common
Invalid signature(HTTP 400) errors after session interruptions or resets. - Full Session Isolation: Removed the global signature singleton, ensuring all thinking signatures are strictly isolated at the Session level, eliminating signature pollution across multiple accounts or concurrent sessions.
- Thinking Recovery: Introduced
- [Core Fix] Resolve HTTP 400 "thinking_budget out of range" error for Gemini Series (#1592, #1602):
- Full-Path Hard Capping: Fixed the missing quota protection in OpenAI and Claude protocol mappers when using "Custom" mode. Regardless of the selected mode (Auto/Custom/Passthrough), the backend now enforces a mandatory limit of 24576 for all Gemini models to ensure request success.
- Auto Adaptation & UI Sync: Refactored the protocol conversion logic to dynamically apply limits based on the final mapped model; updated settings UI hints to clearly specify the physical limits of the Gemini protocol.
- [Core Fix] Web Mode Login Validation Fix & Logout Button (PR #1603):
- Login Validation: Fixed exceptions in the Web mode login validation logic, ensuring stability of user authentication.
- Logout Support: Added/fixed the logout button in the UI, completing the account management loop for Web mode.
- [Core Fix] Deep Refactor of Claude/Gemini Thinking Model Interruptions & Tool Loop Recovery (#1575):
Show older changelog (v4.1.5 and earlier)
-
v4.1.5 (2026-02-05):
- [Security Fix] Frontend API Key Storage Migration (LocalStorage -> SessionStorage):
- Storage Upgrade: Migrated the storage of the Admin API Key from persistent
localStorageto session-basedsessionStorage, significantly reducing security risks on shared devices. - Seamless Auto-Migration: Implemented automatic detection and migration logic. The system identifies legacy
localStoragekeys, automatically transfers them tosessionStorage, and securely wipes the old data, ensuring a seamless transition and eliminating security vulnerabilities for existing users.
- Storage Upgrade: Migrated the storage of the Admin API Key from persistent
- [Core Fix] Fix Account Addition Failure in Docker Environment (Issue #1583):
- Account Context Fix: Fixed the proxy selection issue caused by
account_idbeingNonewhen adding new accounts. The system now generates a temporary UUID for new accounts to ensure all OAuth requests have a clear account context. - Enhanced Logging: Optimized logging in
refresh_access_tokenandget_effective_clientto provide more detailed proxy selection information, helping diagnose network issues in Docker environments. - Impact Scope: Resolved the long hang or failure issue when adding accounts via Refresh Token in Docker deployment environments.
- Account Context Fix: Fixed the proxy selection issue caused by
- [Core Fix] Web Mode Compatibility Fixes & 403 Account Rotation Optimization (PR #1585):
- Security API Web Mode Compatibility Fix (Issue: 400/422 Errors):
- Added default values for
pageandpage_sizeinIpAccessLogQuery, resolving 400 Bad Request errors from/api/security/logs - Removed
AddBlacklistWrapperandAddWhitelistWrapperstructs, fixing 422 Unprocessable Content errors from/api/security/blacklistand/api/security/whitelistPOST requests - Fixed frontend component parameter naming:
ipPattern→ip_pattern, ensuring consistency with backend API parameters
- Added default values for
- 403 Account Rotation Optimization (Issue: Accounts Not Properly Skipped After 403):
- Added
set_forbiddenmethod intoken_manager.rsto support marking accounts as disabled - Account selection now checks
quota.is_forbiddenstatus, automatically skipping disabled accounts - Clears sticky session bindings for 403 accounts, ensuring immediate switch to other available accounts
- Added
- Web Mode Request Processing Optimization:
- Fixed
request.tsto remove used parameters from body after path parameter replacement, avoiding duplicate parameters - Added PATCH method body handling, completing HTTP method support
- Automatic unpacking of
requestfield, simplifying request structure
- Fixed
- Debug Console Web Mode Support:
- Added
isTaurienvironment detection inuseDebugConsole.ts, distinguishing between Tauri and Web environments - Web mode uses
request()instead ofinvoke(), ensuring proper calls in Web environment - Added polling mechanism, automatically refreshing logs every 2 seconds in Web mode
- Added
- Docker Build Optimization:
- Added
--legacy-peer-depsflag, resolving frontend dependency conflicts - Enabled BuildKit cache to accelerate Cargo builds, improving build speed
- Completed
@lobehub/iconspeer dependencies, fixing build failures caused by missing frontend dependencies
- Added
- Impact Scope: This update significantly improves stability and usability in Docker/Web mode, resolving Security API errors, 403 account rotation failures, Debug Console unavailability, and optimizing the Docker build process.
- Security API Web Mode Compatibility Fix (Issue: 400/422 Errors):
- [Core Fix] Fix Debug Console Crash and Log Sync in Web/Docker Mode (Issue #1574):
- Web Compatibility: Fixed
TypeErrorcrashes caused by direct calls to nativeinvokeAPIs in non-Tauri environments. Communication now flows through the compatibility request layer. - Fingerprint Binding Fix: Resolved
HTTP Error 422when generating and binding fingerprints by aligning the parameter structure between frontend and backend (nestedprofileobject support). - Log Polling Mechanism: Introduced automatic log polling (every 2 seconds) for Web mode, overcoming the limitation where browser clients cannot receive Rust event pushes, ensuring logs are correctly displayed.
- Web Compatibility: Fixed
- [Core Optimization] Complete Tauri Command to HTTP API Mappings:
- Full Adaptation: Aligned 30+ native Tauri commands with HTTP APIs, completing mappings for cache management, system paths, proxy pool configuration, and user token management, ensuring full functional parity between Desktop and Web modes.
- [Security Fix] Arbitrary File Write Vulnerability Hardening:
- API Security Layer: Completely removed the high-risk endpoint
/api/system/save-fileand its associated handlers. Added path traversal prevention (..check) to the database import interface. - Tauri Security Hardening: Introduced a unified path validator for
save_text_fileandread_text_filecommands, strictly forbidding directory traversal and blocking access to sensitive system paths.
- API Security Layer: Completely removed the high-risk endpoint
- [Security Fix] Frontend API Key Storage Migration (LocalStorage -> SessionStorage):
-
v4.1.4 (2026-02-05):
- [Core Feature] Proxy Pool Persistence & Account Filtering Optimization (PR #1565):
- Persistence Enhancement: Fixed an issue where proxy pool bindings were not correctly restored after proxy service restart or reload, ensuring strict persistence of binding relationships.
- Intelligent Filtering: Optimized account acquisition logic in
TokenManager. Added deep validation fordisabledandproxy_disabledstatuses in loading, syncing, and scheduling paths to prevent disabled accounts from being mistakenly selected. - Validation Block Support: Introduced the
validation_blockedfield system to handle Google'sVALIDATION_REQUIRED(403 temporary risk control) scenarios, implementing intelligent automatic bypass based on expiration time. - State Cleanup Fortification: Synchronized cleanup of memory tokens, rate limit records, session bindings, and preferred account flags when an account becomes invalid, ensuring consistency of the internal state machine.
- [Core Fix] Fix Critical Compatibility Issues in Web/Docker Mode (Issue #1574):
- Debug Mode Fix: Corrected frontend debug console URL mapping errors (removed redundant
/proxypath), resolving the issue where debug mode could not be enabled in Web mode. - Fingerprint Binding Fix: Added
BindDeviceProfileWrapperstructure for theadmin_bind_device_profile_with_profileinterface, fixing HTTP 422 errors caused by nested parameters sent from the frontend. - Backward Compatibility: Used
serde aliasfeature to support both camelCase (frontend) and snake_case (backend files) at the API layer, ensuring old account files load correctly.
- Debug Mode Fix: Corrected frontend debug console URL mapping errors (removed redundant
- [Code Optimization] Simplified API Handling Structure:
- Removed redundant
Wrapperlayers in multiple management API routes (e.g., IP blacklist/whitelist management, security setting updates), directly destructuring business models to improve code conciseness and development efficiency.
- Removed redundant
- [Core Fix] Resolve OpenCode Thinking Model Interruption Issue (Issue #1575):
- finish_reason Enforcement: Fixed the issue where
finish_reasonwas incorrectly set tostopduring tool calls, causing OpenAI clients to prematurely terminate conversations. The system now forcibly setsfinish_reasontotool_callswhen tool calls are present, ensuring proper tool loop execution. - Tool Parameter Standardization: Implemented automatic standardization of shell tool parameter names, converting non-standard names like
cmd/code/script(which Gemini may generate) to the standardcommandparameter, improving tool call compatibility. - Impact Scope: Fixed the tool call workflow for Thinking models (e.g.,
claude-sonnet-4-5-thinking) under the OpenAI protocol, resolving interruption issues in clients like OpenCode.
- finish_reason Enforcement: Fixed the issue where
- [Core Feature] Proxy Pool Persistence & Account Filtering Optimization (PR #1565):
-
v4.1.3 (2026-02-05):
- [Core Fix] Resolve Security Config and IP Management Failures in Web/Docker Mode (Issue #1560):
- Protocol Alignment: Fixed the issue where the backend Axum interface could not parse nested parameter formats (e.g.,
{"config": ...}) wrapped by the frontendinvokemethod, ensuring security configurations are correctly persisted. - Parameter Normalization: Added
camelCaserenaming support for IP management interfaces, resolving failures in adding or deleting entries caused by case mismatches in Web-mode Query parameters.
- Protocol Alignment: Fixed the issue where the backend Axum interface could not parse nested parameter formats (e.g.,
- [Core Fix] Restore Gemini Pro Thinking Blocks (Issue #1557):
- Cross-Protocol Alignment: Resolved the issue where
gemini-3-proand other reasoning models were missing thinking blocks in OpenAI, Claude, and Gemini protocols since v4.1.0. - Smart Injection Logic: Implemented automatic
thinkingConfiginjection and default-enablement mechanisms, ensuring thinking features are correctly activated even when not explicitly requested by clients. - Robustness Enhancement: Optimized internal type handling in
wrapper.rsto prevent configuration conflicts in high-concurrency scenarios.
- Cross-Protocol Alignment: Resolved the issue where
- [Core Fix] Resolve Security Config and IP Management Failures in Web/Docker Mode (Issue #1560):
-
v4.1.2 (2026-02-05):
- [Core Feature] ClientAdapter Framework (Issue #1522):
- Architecture Refactor: Introduced
ClientAdapterframework withArcreference counting to fully decouple handler logic from downstream client specifics, ensuring thread-safe sharing. - Full Protocol Compatibility: Achieved seamless integration for 4 protocols (Claude/OpenAI/Gemini/OA-Compatible) specifically for third-party clients like
opencode, eliminatingAI_TypeValidationError. - Smart Strategies: Implemented FIFO signature buffering and
let_it_crashfail-fast mechanism to significantly improve stability and error feedback in high-concurrency scenarios. - Standardized Error Responses: Unified error formats across all protocols (SSE
event: error/ Non-stream JSON), ensuring clients can correctly parse upstream exceptions.
- Architecture Refactor: Introduced
- [Core Fix] Unified Account Disable Status Check Logic (Issue #1512):
- Logic Alignment: Fixed an issue where the manual disable status (
proxy_disabled) was ignored in batch quota refresh and auto-warmup logic. - Background Noise Reduction: Ensured that accounts marked as "Disabled" or "Proxy Disabled" no longer trigger any background network requests, enhancing privacy and resource efficiency.
- Logic Alignment: Fixed an issue where the manual disable status (
- [Core Fix] Resolve 400 Invalid Argument Errors in OpenAI Protocol (Issue #1506):
- Session-level Signature Isolation: Integrated
SignatureCacheto physically isolate thinking signatures usingsession_id, preventing signature cross-contamination in multi-turn or concurrent sessions. - Enhanced Robustness: Added logic to recognize and automatically clean invalid thinking placeholders (e.g.,
[undefined]), improving compatibility with various clients like Cherry Studio. - Full-link Context Propagation: Refactored request mapping and streaming chains to ensure precise Session context propagation across both non-streaming and streaming requests.
- Session-level Signature Isolation: Integrated
- [UI Enhancement] Model Logo Support & Automatic Sorting (PR #1535):
- Visual Excellence: Integrated
@lobehub/iconsto display brand-specific logos for models in account cards, tables, and dialogs. - Smart Sorting: Implemented a weight-based model sorting algorithm (Series > Tier > Suffix) to prioritize primary models like Gemini 3 Pro.
- Configuration Centralization: Decoupled model metadata (Labels, Short Names, Icons, and Weights), improving codebase maintainability.
- i18n Synchronization: Updated model display names across 13 languages.
- Visual Excellence: Integrated
- [Core Fix] Enhanced Account Disable Status & Real-time Disk State Verification (PR #1546):
- Deep Disk Verification: Introduced a
get_account_state_on_diskmechanism that adds a second-layer status confirmation on the token acquisition path, completely resolving issues with disabled accounts being selected due to memory cache latency. - Smart Fixed Account Sync: Optimized the
toggle_proxy_statuscommand to automatically disable fixed account mode when an account is disabled and trigger an immediate proxy pool reload. - Auth Failure Self-healing: When the backend detects an
invalid_granterror and auto-disables an account, it now physically purges in-memory tokens, rate limit records, and session bindings, ensuring immediate offline status for faulty accounts. - End-to-end Filtering: Integrated disable status checks into the Warmup logic and Scheduler, significantly reducing redundant background network requests.
- Deep Disk Verification: Introduced a
- [Core Optimization] Concurrent Proxy Pool Health Checks (PR #1547):
- Performance Boost: Integrated a concurrent execution mechanism based on
futuresstreams, refactoring sequential checks into parallel processing (concurrency limit: 20). - Efficiency Enhancement: Significantly reduced the total duration of health checks for large proxy pools, improving the system's responsiveness to proxy status changes.
- Performance Boost: Integrated a concurrent execution mechanism based on
- [Core Fix] Resolve crypto.randomUUID Compatibility in Docker/HTTP (Issue #1548):
- Crash Fix: Resolved application crashes ("Unexpected Application Error") and batch import failures in non-secure contexts (e.g., HTTP or partial Docker environments) where the browser disables the
crypto.randomUUIDAPI. - Compatibility: Introduced a cross-platform compatible UUID generation fallback mechanism, ensuring ID generation stability in any deployment environment.
- Crash Fix: Resolved application crashes ("Unexpected Application Error") and batch import failures in non-secure contexts (e.g., HTTP or partial Docker environments) where the browser disables the
- [Core Feature] ClientAdapter Framework (Issue #1522):
-
v4.1.1 (2026-02-04):
- [Core Feature] Update Checker Enhanced (Update Checker 2.0) (PR #1494):
- Proxy Support: The update checker now fully respects the global upstream proxy configuration.
- Multi-layer Fallback: Implemented a 3-layer fallback strategy:
GitHub API -> GitHub Raw -> jsDelivr, significantly improving update detection reliability. - Observability: The update notification now displays the source of the detection.
- [Core Optimization] Antigravity Database Compatibility Improvement (>= 1.16.5):
- Smart Version Detection: Added a cross-platform version detection module (macOS/Windows/Linux) to automatically identify the Antigravity client version.
- Format Adaptation: Supported the new
antigravityUnifiedStateSync.oauthTokenformat for v1.16.5+ while maintaining backward compatibility for legacy formats. - Smart Injection: Implemented a version-aware injection strategy with a dual-format fallback mechanism to ensure seamless account switching.
- [Core Fix] Resolve react-router SSR XSS Vulnerability (CVE-2026-21884) (PR #1500):
- Security Fix: Upgraded
react-routerdependency to a safe version, addressing a cross-site scripting (XSS) risk in theScrollRestorationcomponent during server-side rendering (SSR).
- Security Fix: Upgraded
- [i18n] Enhanced Japanese Translation Support (PR #1524):
- Improvement: Completed Japanese localization for critical modules including Proxy Pool, streaming error messages, and User-Agent configurations.
- [Core Feature] Update Checker Enhanced (Update Checker 2.0) (PR #1494):
-
v4.1.0 (2026-02-04):
- [Major Update] Proxy Pool 2.0 & Stability Enhancements:
- Account-level Exclusive IP Isolation: Implemented strong binding between accounts and proxies. Bound proxies are automatically isolated from the public pool.
- Protocol Auto-completion: Backend now automatically handles short-hand inputs (e.g.,
ip:port) by prependinghttp://. - Intelligent Health Check: Added browser-like User-Agent to prevent blocks and switched default fallback check URL to
cloudflare.com. - Responsive Status Sync: Fixed the "sleep-before-check" logic, ensuring immediate UI status updates on startup.
- Persistence Bug Fix: Resolved race conditions where high-frequency polling could rollback manual proxy additions.
- Proxy Pool 2.0 Logic Breakdown:
- Scene 1: Full-chain Locking — Once Account A is bound to Node-01, all requests (Token refresh, Quota sync, AI inference) are forced through Node-01. Google sees a consistent IP for the account.
- Scene 2: Auto-Isolation for Public Pool — Account B has no binding. Node-01 is automatically excluded from the public rotation as it's exclusively used by A, eliminating association risks.
- Scene 3: Self-healing & Failover — If Node-01 fails and "Auto failover" is on, Account A temporarily borrows from the public pool for urgent tasks (e.g., Token refresh) with audit logs.
- [New Feature] UserToken Page & Monitoring Enhancements (PR #1475):
- Page Navigation: Added dedicated UserToken management page for granular token control.
- Monitoring: Enhanced system monitoring and routing integration for better observability.
- [Core Fix] Warmup API Field Missing Fix:
- Compilation Fix: Resolved compilation error caused by missing
usernamefield inProxyRequestLoginitialization.
- Compilation Fix: Resolved compilation error caused by missing
- [Core Fix] Docker Warmup 401/502 Error Fix (PR #1479):
- Network Optimization: Used a client with
.no_proxy()for Warmup requests in Docker environments, preventing localhost requests from being incorrectly routed to external proxies causing 502/401 errors. - Auth Update: Exempted
/internal/*paths from authentication, ensuring internal warmup requests are not intercepted.
- Network Optimization: Used a client with
- [Core Fix] Debug Console & Binding in Docker/Headless:
- Debug Console: Fixed uninitialized log bridge in Docker and added HTTP API mappings for Web UI log access.
- Fingerprint Binding: Enhanced device fingerprint binding logic for better Docker container compatibility and API support.
- [Core Fix] Account Deletion Cache Sync Fix (Issue #1477):
- Sync Mechanism: Introduced a global deletion signal synchronization queue, ensuring accounts are purged from memory cache immediately after disk deletion.
- Thorough Cleanup: TokenManager now synchronizes the cleanup of tokens, health scores, rate limits, and session bindings for deleted accounts, completely resolving "ghost account" scheduling issues.
- [UI Optimization] Localize Update Notification (PR #1484):
- i18n Adaptation: Completely removed hardcoded strings in the update notification dialog, achieving full support for all 12 languages.
- [UI Upgrade] Navbar Refactor & Responsive Optimization (PR #1493):
- Component Deconstruction: Split the monolithic Navbar into smaller modular components for better maintainability.
- Responsive Optimization: Optimized layout breakpoints and the "Refresh Quota" button's responsive behavior.
- [Major Update] Proxy Pool 2.0 & Stability Enhancements:
-
v4.0.15 (2026-02-03):
- [Core Optimization] Enhanced Warmup Functionality & False-Positive Fixes (PR #1466):
- Logic Optimization: Removed the hardcoded model whitelist, enabling automatic warmup for all models reaching 100% quota based on account data.
- Accuracy Fix: Fixed false-positive warmup status reporting, ensuring success records are only committed when the process truly completes.
- Extended Features: Optimized traffic logging for warmup requests and implemented skip logic for 2.5 series models.
- [Core Optimization] Thinking Budget Global i18n & UX Polishing:
- Multi-language Support: Completed and optimized translations for English, Japanese, Korean, Russian, Spanish, Traditional Chinese, and Arabic.
- UX Refinement: Polished settings hints (Auto Hint / Passthrough Warning) to guide users in configured optimal thinking token depth for diverse models.
- [Core Optimization] Enhanced Warmup Functionality & False-Positive Fixes (PR #1466):
-
v4.0.14 (2026-02-02):
- [Core Fix] Fix API Key Regeneration in Web/Docker (Issue #1460):
- Resolution: Resolved the bug where the API Key was regenerated on every page refresh when no config file existed.
- Consistency: Improved the configuration loading flow to ensure the initial random key is persisted and environment variable overrides are correctly reflected in the Web UI.
- [Core Feature] Configurable Thinking Budget (PR #1456):
- Budget Control: Added a "Thinking Budget" configuration setting in System Settings.
- Smart Adaptation: Supports customizing the maximum thinking token limit for models like Claude 4.6+ and Gemini 2.0 Flash Thinking.
- Default Optimization: The default setting is optimized to provide a complete thinking process in most scenarios while strictly adhering to upstream budget limits.
- [Core Fix] Fix API Key Regeneration in Web/Docker (Issue #1460):
-
v4.0.13 (2026-02-02):
- [Core Optimization] Load Balancing Algorithm Upgrade (P2C Algorithm) (PR #1433):
- Algorithm Upgrade: Upgraded the scheduling algorithm from Round-Robin to P2C (Power of Two Choices).
- Performance Boost: Significantly reduced request latency in high-concurrency scenarios and optimized load distribution across backend instances, preventing single-node overloads.
- [UI Upgrade] Responsive Navbar & Layout (PR #1429):
- Mobile Adaptation: Redesigned responsive navigation bar, perfectly adapting to mobile devices and small screens.
- Visual Enhancement: Added intuitive icons to navigation items, improving the overall visual experience and usability.
- [New Feature] Enhanced Account Quota Visibility (PR #1429):
- Show All Quotas: Added a "Show all quotas" toggle in the Accounts page. When enabled, it displays real-time quota information for all dimensions (Ultra/Pro/Free/Image), not just the primary quota.
- [i18n] Comprehensive Language Support Update:
- Coverage Boost: Completed missing translation keys for 10 languages including Traditional Chinese, Japanese, Korean, Spanish, Arabic, etc.
- Polishing: Fixed missing translations for "Show all quotas" and OAuth authorization prompts.
- [i18n] Background Task Translation Fix (PR #1421):
- Translation Fix: Resolved missing translations for background tasks (e.g., title generation), ensuring proper localization across all supported languages.
- Root Cause: Resolved a
refconflict introduced during merge that caused incorrect click detection on mobile/desktop. - Outcome: The language switcher menu now opens and interacts correctly.
- [Docker/Web Fix] Web IP Management Support (IP Security for Web):
- Feature Completion: Fixed an issue where IP security features (Logs, Blacklist/Whitelist) were unavailable in Docker/Web mode due to missing backend routes.
- API Implementation: Implemented proper RESTful management endpoints, ensuring the Web frontend can fully interact with the security module.
- UX Polish: Optimized parameter handling for deletion operations, resolving issues where deleting blacklist/whitelist entries failed in certain browsers.
- [Core Optimization] Load Balancing Algorithm Upgrade (P2C Algorithm) (PR #1433):
-
v4.0.12 (2026-02-01):
- [Code Refactoring] Connector Service Optimization:
- Deep Optimization: Rewrote the core logic of the connector service (
connector.rs) to eliminate inefficient legacy code. - Performance Boost: Optimized the connection establishment and handling process, improving overall system stability and response speed.
- Deep Optimization: Rewrote the core logic of the connector service (
- [Code Refactoring] Connector Service Optimization:
-
v4.0.11 (2026-01-31):
- [Core Fix] Endpoint Reordering & Auto-Blocking (Fix 403 VALIDATION_REQUIRED):
- Endpoint Optimization: Prioritized API endpoints as
Sandbox -> Daily -> Prod. Using lenient environments first to reduce the occurrence of 403 errors. - Smart Blocking: Upon detecting
VALIDATION_REQUIRED(403), the system temporarily blocks the account for 10 minutes. Requests will skip this account during the block period to prevent further flagging. - Auto-Recovery: The system automatically attempts to restore the account after the block period expires.
- Endpoint Optimization: Prioritized API endpoints as
- [Core Fix] Account Hot-Reloading:
- Unified Architecture: Eliminated duplicate
TokenManagerinstances, ensuring the Admin Dashboard and Proxy Service share a single account manager. - Real-time Updates: Fixed the issue where manual enabling/disabling, reordering, or bulk operations required an app restart. Changes now take effect immediately.
- Unified Architecture: Eliminated duplicate
- [Core Fix] Quota Protection Logic Optimization (PR #1344 Patch):
- Refined the differentiation between "Disabled" status and "Quota Protected" status in the quota protection logic, ensuring accurate logging and real-time state synchronization.
- [Core Fix] Restore Health Check Endpoint (PR #1364):
- Route Restoration: Fixed the missing
/healthand/healthzroutes that were lost during the 4.0.0 architecture migration. - Enhanced Response: The endpoint now returns a JSON containing
"status": "ok"and the current application version, facilitating version matching and liveness checks for monitoring systems.
- Route Restoration: Fixed the missing
- [Core Fix] Fix Gemini Flash Thinking Budget Limit (Fix PR #1355):
- Automatic Capping: Resolved an issue where the default or upstream
thinking_budget(e.g., 32k) exceeded the limit (24k) for Gemini Flash thinking models (e.g.,gemini-2.0-flash-thinking), resulting in400 Bad Requesterrors. - Multi-Protocol Coverage: This protection now covers OpenAI, Claude, and Native Gemini protocols, ensuring comprehensive safety against invalid budget configurations.
- Smart Truncation: The system now automatically detects Flash series models and forcibly caps the thinking budget within safe limits (24,576), ensuring successful requests without requiring manual client configuration adjustments.
- Automatic Capping: Resolved an issue where the default or upstream
- [Core Feature] IP Security & Risk Control System (PR #1369 by @大黄):
- Visual Policy Management: New "Security Monitor" module for graphical management of IP blacklists and whitelists.
- Smart Ban Policies: Implemented CIDR-based subnet banning, auto-release scheduling, and ban reason annotation.
- Real-time Audit Logs: Integrated IP-level real-time access log auditing, supporting filtering by IP and time range for quick anomaly detection.
- [UI Optimization] Premium Visual Experience:
- Dialog Polish: Completely upgraded button styles in IP Security module dialogs, adopting solid colors and shadow designs for clearer operation guidance.
- Layout Fixes: Resolved scrollbar anomalies and layout misalignments in the Security Config page, optimizing the tab switching experience.
- [Core Feature] Debug Console (PR #1385):
- Real-time Log Streaming: Introduced a full-featured debug console for real-time capture and display of backend logs.
- Filtering & Searching: Supports filtering by log levels (Info, Debug, Warn, Error) and global keyword search.
- Interaction Polish: Features one-click log clearing, auto-scroll toggle, and full support for both light and dark modes.
- Backend Bridge: Implemented a high-performance log bridge to ensure log capture without impacting proxy performance.
- [Core Fix] Endpoint Reordering & Auto-Blocking (Fix 403 VALIDATION_REQUIRED):
-
v4.0.9 (2026-01-30):
- [Core Feature] User-Agent Customization & Version Spoofing (PR #1325):
- Dynamic Override: Allows users to customize the
User-Agentheader for upstream requests in "Service Configuration". This enables simulation of any client version (Cheat Mode), effectively bypassing version blocks or risk controls in certain regions. - Smart Fallback: Implemented a three-tier version fetching mechanism (Remote Fetch -> Cargo Version -> Hardcoded). When the primary version API is unavailable, the system automatically parses the official Changelog page to retrieve the latest version, ensuring the UA always masquerades as the latest client.
- Hot Reload: UA configuration changes take effect immediately without requiring a service restart.
- Dynamic Override: Allows users to customize the
- [Core Fix] Resolve Quota Protection State Sync Defect (Issue #1344):
- Real-time State Sync: Fixed a logic defect where
check_and_protect_quota()would exit early when processing disabled accounts. Now, even if an account is disabled, the system still scans and updates itsprotected_models(model-level protection list) in real-time, ensuring accounts with insufficient quota cannot bypass protection mechanisms after being re-enabled. - Log Path Separation: Extracted manual disable checks from the quota protection function to the caller, logging accurate messages based on different skip reasons (manual disable/quota protection) to eliminate user confusion.
- Real-time State Sync: Fixed a logic defect where
- [Core Feature] Cache Management & One-click Clearing (PR #1346):
- Backend Integration: Introduced
src-tauri/src/modules/cache.rsto calculate and manage temporary file distributions (e.g., translation cache, log fingerprints). - UI Implementation: Added a "Clear Cache" feature in "System Settings". Users can view real-time cache size and perform one-click cleanup to reclaim disk space.
- Backend Integration: Introduced
- [i18n] New Language Support (PR #1346):
- Added complete translation support for Spanish (es) and Malay (my).
- [i18n] Full Language Coverage:
- Added complete translation support for the new feature across 10 languages including En, Zh, Zh-TW, Ar, Ja, Ko, Pt, Ru, Tr, Vi.
- [i18n] Localize remaining UI strings (PR #1350):
- Full Coverage: Localized the remaining hardcoded strings and untranslated items in the UI, achieving full localization of the interface.
- Removed Redundancy: Removed all English fallbacks from the code, forcing all components to use i18n keys for localization.
- Language Enhancement: Improved translation accuracy for Japanese (ja) and ensured consistent display of new UI components across multiple languages.
- [Core Feature] User-Agent Customization & Version Spoofing (PR #1325):
-
v4.0.8 (2026-01-30):
- [Core Feature] Window State Persistence (PR #1322): Automatically restores the window size and position from the previous session.
- [Core Fix] Graceful Shutdown for Admin Server (PR #1323): Fixed the port 8045 binding failure issue on Windows when restarting the app after exit.
- [Core Feature] Implement Full-link Debug Logging (PR #1308):
- Backend Integration: Introduced
debug_logger.rsto capture and record raw request, transformed payload, and complete streaming response for OpenAI, Claude, and Gemini handlers. - Dynamic Configuration: Supports hot-reloading for logging settings; enable/disable logging or change output directory without restarting the service.
- Frontend Interaction: Added a "Debug Log" toggle and a custom output directory selector in "Advanced Settings" for easier troubleshooting of protocol conversion and upstream communication.
- Backend Integration: Introduced
- [UI Optimization] Optimize Chart Tooltip Floating Behavior (Issue #1263, PR #1307):
- Overflow Defense: Optimized the tooltip positioning algorithm in
TokenStats.tsxto ensure floating information stays within the viewport on small windows or high zoom levels, preventing content from being buried by window boundaries.
- Overflow Defense: Optimized the tooltip positioning algorithm in
- [Core Optimization] Robustness: Dynamic User-Agent Version Fetching with Multi-tier Fallback (PR #1316):
- Dynamic Fetching: Supports fetching the version dynamically from a remote endpoint for real-time UA accuracy.
- Robust Fallback Chain: Implements a three-tier fallback strategy (Remote Endpoint -> Cargo.toml -> Hardcoded), significantly improving initialization robustness.
- Regex Pre-compilation: Utilizes
LazyLockfor efficient version parsing, boosting performance and reducing memory jitter. - Enhanced Observability: Added structured logging and a
VersionSourceenum, allowing developers to trace versioning origins and troubleshoot fetch failures effortlessly.
- [Core Fix] Resolve Gemini CLI "Response stopped due to malformed function call." Error (PR #1312):
- Parameter Field Alignment: Renamed
parametersJsonSchematoparametersin tool declarations to align with the latest Gemini API specifications. - Alignment Engine Enhancement: Removed redundant parameter wrapping layers for more transparent and direct parameter passing.
- Robustness Check: Improved resilience against tool-call responses, effectively preventing output interruptions caused by parameter schema mismatches.
- Parameter Field Alignment: Renamed
- [Core Fix] Resolve Issue where Port shows as 'undefined' in Docker/Headless Mode (Issue #1305): Fixed missing 'port' field and incorrect 'base_url' construction in the management API '/api/proxy/status', ensuring the frontend correctly displays the listening address.
- [Core Fix] Resolve Web Password Bypass in Docker/Headless Mode (Issue #1309):
- Enhanced Default Auth: Changed the default
auth_modetoauto. In Docker or LAN-access environments, the system now automatically activates authentication to ensureWEB_PASSWORDis enforced. - Environment Variable Support: Added support for
ABV_AUTH_MODEandAUTH_MODEenvironment variables, allowing users to explicitly override the authentication mode at startup (supportsoff,strict,all_except_health,auto).
- Enhanced Default Auth: Changed the default
-
v4.0.7 (2026-01-29):
-
[Performance] Optimize Docker Build Process (Fix Issue #1271):
- Native Architecture Build: Split AMD64 and ARM64 build tasks into independent parallel jobs and removed the QEMU emulation layer, switching to native GitHub Runners for each architecture. This drastically reduces cross-platform build time from 3 hours to under 10 minutes.
-
[Performance] Resolve Docker Version Lag and Crash with Large Datasets (Fix Issue #1269):
- Asynchronous DB Operations: Migrated all time-consuming database queries (traffic logs, token stats, etc.) to the background blocking thread pool (
spawn_blocking). This eliminates UI freezes and proxy unavailability when viewing large log files (800MB+). - Smooth Monitoring Logic: Optimized the monitoring state toggle logic to remove redundant restart logs, improving stability in Docker environments.
- Asynchronous DB Operations: Migrated all time-consuming database queries (traffic logs, token stats, etc.) to the background blocking thread pool (
-
[Core Fix] Resolve OpenAI Protocol 400 Invalid Argument Error (Fix Issue #1267):
- Remove Aggressive Default: Rolled back the default
maxOutputTokens: 81920setting introduced in v4.0.6 for OpenAI/Claude protocols. This value exceeded the hard limits of many standard models (e.g.,gemini-3-pro-previewor native Claude 3.5), causing immediate request rejection. - Smart Thinking Config: Refined the thinking model detection logic to only inject
thinkingConfigfor models explicitly ending with-thinking. This prevents side effects on standard models (likegemini-3-pro) that do not support this parameter.
- Remove Aggressive Default: Rolled back the default
-
[Compatibility] Fix OpenAI Codex (v0.92.0) Error (Fix Issue #1278):
- Field Scrubbing: Automatically filters out the non-standard
external_web_accessfield injected by Codex clients in tool definitions, eliminating the 400 Invalid Argument error from Gemini API. - Enhanced Robustness: Added mandatory validation for the tool
namefield. Invalid tool definitions missing a name will now be automatically skipped with a warning instead of failing the request.
- Field Scrubbing: Automatically filters out the non-standard
-
[Core Feature] Adaptive Circuit Breaker:
- Model-level Isolation: Implemented compound key (
account_id:model) rate limit tracking, ensuring that quota exhaustion of a single model does not lock the entire account. - Dynamic Backoff Strategy: Supports user-defined multi-level backoff steps (e.g.,
[60, 300, 1800, 7200]), automatically increasing lock duration based on consecutive failures. - Live Configuration Refresh: Integrated with
TokenManagermemory cache to apply configuration changes instantly to the proxy service without requiring a restart. - Management UI Integration: Added a comprehensive control panel in the API Proxy page, supporting one-click toggle and manual clearing of rate limit records.
- Model-level Isolation: Implemented compound key (
-
[Core Optimization] Improved Log Cleanup & Reduction (Fix Issue #1280):
- Automatic Space Recovery: Introduced a size-based cleanup mechanism that triggers when the log directory exceeds 1GB, purging old logs until usage is below 512MB. This fundamentally prevents disk exhaustion from runaway logs.
- Log Verbosity Reduction: Downgraded high-frequency logs (OpenAI request/call bodies, TokenManager account pool polling) from INFO to DEBUG. INFO level now only contains concise request summaries.
-
-
v4.0.6 (2026-01-28):
- [Core Fix] Resolve Google OAuth "Account already exists" Error:
- Persistence Upgrade: Upgraded the authorization saving logic from "add only" to
upsert(update or insert) mode. Re-authorizing an existing account now smoothly updates its tokens and project info without error.
- Persistence Upgrade: Upgraded the authorization saving logic from "add only" to
- [Core Fix] Fix Manual OAuth Code Backfill Failure in Docker/Web Mode:
- Flow State Pre-initialization: The backend now synchronizes and initializes the OAuth flow state when generating auth links in web mode. This ensures that manually pasted auth codes or URLs are correctly recognized and processed in environments like Docker where auto-redirect is unavailable.
- [UX Improvement] Unified OAuth Persistence Path: Refactored
TokenManagerto ensure all platforms share the same robust account verification and storage logic. - [Performance] Optimize Rate Limit Recovery Mechanism (PR #1247):
- Auto-Cleanup Frequency: Shortened the background auto-cleanup interval for rate limit records from 60s to 15s, significantly speeding up business recovery after 429 or 503 errors.
- Smart Sync Clearing: Optimized account refresh logic to immediately clear local rate limit locks when refreshing single or all accounts, allowing updated quotas to be used instantly.
- Progressive Capacity Backoff: Optimized the retry strategy for
ModelCapacityExhaustederrors (e.g., 503) from a fixed 15s wait to a tiered[5s, 10s, 15s]approach, significantly reducing wait times for transient capacity fluctuations.
- [Core Fix] Window Titlebar Dark Mode Adaptation (PR #1253): Fixed an issue where the titlebar did not follow the system theme when switching to dark mode, ensuring visual consistency.
260: - [Core Fix] Raise Default Output Limit for Opus 4.5 (Fix Issue #1244):
261: - Limit Breakthrough: Increased the default
max_tokensfor Claude and OpenAI protocols from 16k to 81,920 (80k). 262: - Resolve Truncation: Completely resolved the truncation issue where Opus 4.5 and similar models were capped at around 48k tokens when thinking mode was enabled due to default budget constraints. Users can now enjoy full long-context output capabilities without any configuration. - [Core Fix] Fix Ghost Account Issue After Deletion:
- Sync Reload: Fixed a critical bug where deleted accounts would persist in the proxy service's memory cache.
- Immediate Effect: Now, deleting single or multiple accounts triggers a mandatory reload of the proxy service, ensuring the deleted accounts are immediately removed from the active pool and no longer participate in request rotation.
- [Core Fix] Cloudflared Tunnel Startup Fixes (Fix PR #1238):
- Startup Crash Fix: Removed unsupported command-line arguments (
--no-autoupdate/--loglevel) that caused the cloudflared process to exit immediately. - URL Parsing Correction: Fixed an offset error in named tunnel URL extraction, ensuring correctly formatted access links.
- Windows Experience: Added
DETACHED_PROCESSflags for Windows, enabling fully silent background execution without popup windows.
- Startup Crash Fix: Removed unsupported command-line arguments (
- [Core Fix] Resolve Google OAuth "Account already exists" Error:
-
v4.0.5 (2026-01-28):
- [Core Fix] Resolve Google OAuth 400 Error in Docker/Web Mode (Google OAuth Fix):
- Protocol Alignment: Forced
localhostas the OAuth redirect URI for all modes (including Docker/Web) to bypass Google's security restrictions on private IPs and non-HTTPS environments. - Workflow Optimization: Leveraged the existing "Manual Auth Code Submission" feature to ensure successful account authorization even in remote server deployments.
- Protocol Alignment: Forced
- [Enhancement] Arabic Language Support & RTL Layout Adaptation (PR #1220):
- i18n Expansion: Added full Arabic (
ar) language support. - RTL Layout: Implemented automatic detection and adaptation for Right-to-Left (RTL) UI layouts.
- Typography: Integrated the Effra font family to significantly enhance the readability and aesthetics of Arabic text.
- i18n Expansion: Added full Arabic (
- [Enhancement] Manual Clear Rate Limit Records:
- Management UI Integration: Added a "Clear Rate Limit Records" button in the "Proxy Settings -> Account Rotation & Session Scheduling" section, allowing manual clearing of local rate limit locks (429/503 records) across both Desktop and Web modes.
- Smart Sync Linkage: Implemented smart synchronization of quotas and limits. Refreshing account quotas (single or all) now automatically clears local rate limit states, ensuring immediate effect for updated quotas.
- Backend Core: Implemented manual and automatic clearing logic within
RateLimitTrackerandTokenManagerto ensure state consistency under high concurrency. - API Support: Added corresponding Tauri commands and Admin API (
DELETE /api/proxy/rate-limits) to facilitate programmatic management and integration. - Force Retry: Enables forcing the next request to ignore previous backoff times and attempt to connect to the upstream directly, facilitating immediate business recovery after network restoration.
- [Core Fix] Resolve Google OAuth 400 Error in Docker/Web Mode (Google OAuth Fix):
-
v4.0.4 (2026-01-27):
- [Enhancement] Deep Integration of Gemini Image Generation & Multi-Protocol Support (PR #1203):
- OpenAI Compatibility: Added support for calling Gemini 3 image models via the standard OpenAI Images API (
/v1/images/generate), supporting parameters likesizeandquality. - Multi-Protocol Integration: Enhanced Claude and OpenAI Chat interfaces to support direct image generation parameters, implementing automatic aspect ratio calculation and 4K/2K quality mapping.
- Documentation: Added
docs/gemini-3-image-guide.mdproviding a complete guide for Gemini image generation integration. - Stability Optimization: Optimized common utility functions (
common_utils.rs) and Gemini/OpenAI mapping logic to ensure stable transmission of large payloads.
- OpenAI Compatibility: Added support for calling Gemini 3 image models via the standard OpenAI Images API (
- [Core Fix] Align OpenAI Retry & Rate Limit Logic (PR #1204):
- Logic Alignment: Refactored the retry, rate limiting, and account rotation logic for the OpenAI handler to align with the Claude handler, significantly improving stability under high concurrency.
- Hot Reload Optimization: Ensured that OpenAI requests can accurately execute backoff strategies and automatically switch available accounts when triggering 429 or 503 errors.
- [Core Fix] Web OAuth Account Persistence Fix:
- Index Sync: Resolved an issue where accounts added via Web OAuth were saved as files but not updated in the global account index (
accounts.json), causing them to disappear after restart or be invisible to the desktop app. - Lock Unification: Refactored
TokenManagerpersistence logic to reusemodules::accountcore methods, ensuring atomicity of file locks and index updates.
- Index Sync: Resolved an issue where accounts added via Web OAuth were saved as files but not updated in the global account index (
- [Core Fix] Resolve Google OAuth Non-Localhost Callback Restriction (Fix Issue #1186):
- Issue Context: Google does not support using non-localhost private IPs as callback URLs in OAuth flows, triggering "Unsafe App" warnings even with
device_idinjection. - Solution: Introduced a standardized "Manual OAuth Submission" flow. When the browser cannot auto-redirect to localhost (e.g., remote deployment), users can manually paste the callback URL or auth code to complete authorization.
- Enhancement: Refactored the manual submission UI with full i18n support (9 languages) and polished interactions, ensuring successful account addition in any network environment.
- Issue Context: Google does not support using non-localhost private IPs as callback URLs in OAuth flows, triggering "Unsafe App" warnings even with
- [Core Fix] Resolve Google Cloud Code API 429 Errors (Fix Issue #1176):
- Smart Fallback: Migrated default API traffic to the more stable Daily/Sandbox environments, bypassing frequent 429 errors currently affecting the production environment (
cloudcode-pa.googleapis.com). - Enhanced Robustness: Implemented a three-level fallback strategy (Sandbox -> Daily -> Prod) to ensure high availability of core business flows under extreme network conditions.
- Smart Fallback: Migrated default API traffic to the more stable Daily/Sandbox environments, bypassing frequent 429 errors currently affecting the production environment (
- [Core Optimization] Account Scheduling Algorithm Upgrade:
- Health Score System: Introduced a real-time health score (0.0 to 1.0). Failures (e.g., 429/5xx) significantly penalize the score to demote impaired accounts, while successful requests gradually restore scores for intelligent self-healing.
- Tiered Smart Prioritization: Re-engineered scheduling priority to
Subscription Tier > Remaining Quota > Health Score. Ensures that among accounts with the same tier and quota, the most stable one is always prioritized. - Throttle Delay Mechanism: In extreme rate-limiting scenarios, if all accounts are locked but one is due to recover within 2s, the system will automatically suspend the thread to wait instead of erroring out. This markedly improves high-concurrency stability and session stickiness.
- Full Protocol Integration: Refactored the
TokenManagercore interface and completed synchronized adaptation for all handlers (Claude, Gemini, OpenAI, Audio, Warmup), ensuring scheduling changes are transparent to business logic.
- [Core Fix] Persist Fixed Account Mode Setting (PR #1209):
- Issue: The Fixed Account Mode setting was reset after service restart in previous versions.
- Fix: Implemented persistent storage for the setting, ensuring user preference remains effective after restart.
- [Core Fix] Millisecond Parsing for Rate Limits (PR #1210):
- Issue: Some upstream services return
Retry-Afteror rate limit headers with decimal millisecond values, causing parsing failures. - Fix: Enhanced time parsing logic to support floating-point time formats, improving compatibility with non-standard upstreams.
- Issue: Some upstream services return
- [Enhancement] Deep Integration of Gemini Image Generation & Multi-Protocol Support (PR #1203):
-
v4.0.3 (2026-01-27):
- [Enhancement] Increase Body Limit to Support Large Image Payloads (PR #1167):
- Increased the default request body limit from 2MB to 100MB to resolve 413 (Payload Too Large) errors during multi-image transfers.
- Added environment variable
ABV_MAX_BODY_SIZEto allow dynamic adjustment of the maximum limit. - Transparently logs the effective Body Limit on startup for easier troubleshooting.
- [Core Fix] Resolve Google OAuth Authorization Failure Due to Missing 'state' Parameter (Issue #1168):
- Fixed the "Agent execution terminated" error when adding Google accounts.
- Implemented random
stateparameter generation and callback verification to enhance OAuth security and compatibility. - Ensured authorization flows comply with OAuth 2.0 standards in both desktop and web modes.
- [Core Fix] Resolve Proxy Toggle and Account Changes Requiring Restart in Docker/Web Mode (Issue #1166):
- Implemented persistent storage for proxy toggle states, ensuring consistency across container restarts.
- Added automatic hot-reloading of the Token Manager after adding, deleting, switching, reordering, or importing accounts, making changes effective immediately in the proxy service.
- Optimized account switching logic to automatically clear legacy session bindings, ensuring requests are immediately routed to the new account.
- [Enhancement] Increase Body Limit to Support Large Image Payloads (PR #1167):
-
v4.0.2 (2026-01-26):
- [Core Fix] Session Persistence After Account Switch (Fix Issue #1159):
- Enhanced database injection logic to synchronize identity info (Email) and clear legacy UserID cache during account switching.
- Resolved session association failures caused by mismatches between the new Token and old identity metadata.
- [Core Fix] Model Mapping Persistence in Docker/Web Mode (Fix Issue #1149):
- Resolved an issue where model mapping configurations modified via API in Docker or Web deployment modes were not saved to disk.
- Ensured the
admin_update_model_mappinginterface correctly invokes persistence logic, so configurations remain effective after container restarts.
- [Architecture Optimization] MCP Tool Support Architecture Upgrade (Schema Cleaning & Tool Adapters):
- Constraint Semantic Backfilling (Constraint Hints):
- Implemented intelligent constraint migration mechanism that converts unsupported constraint fields (
minLength,pattern,format, etc.) into description hints before removal. - Added
CONSTRAINT_FIELDSconstant andmove_constraints_to_descriptionfunction to ensure models can understand original constraints through descriptions. - Example:
{"minLength": 5}→{"description": "[Constraint: minLen: 5]"}
- Implemented intelligent constraint migration mechanism that converts unsupported constraint fields (
- Enhanced anyOf/oneOf Intelligent Flattening:
- Rewrote
extract_best_schema_from_unionfunction with scoring mechanism to select the best type (object > array > scalar). - Automatically adds
"Accepts: type1 | type2"hints to descriptions after merging, preserving all possible type information. - Added
get_schema_type_namefunction supporting explicit types and structural inference.
- Rewrote
- Pluggable Tool Adapter Layer (Tool Adapter System):
- Created
ToolAdaptertrait providing customized Schema processing capabilities for different MCP tools. - Implemented
PencilAdapterthat automatically adds descriptions for Pencil drawing tool's visual properties (cornerRadius,strokeWidth) and path parameters. - Established global adapter registry supporting tool-specific optimizations via
clean_json_schema_for_toolfunction.
- Created
- High-Performance Cache Layer (Schema Cache):
- Implemented SHA-256 hash-based Schema caching mechanism to avoid redundant cleaning of identical schemas.
- Uses LRU eviction strategy with max 1000 entries, memory usage < 10MB.
- Provides
clean_json_schema_cachedfunction and cache statistics, expected 60%+ performance improvement.
- Impact:
- ✅ Significantly improves Schema compatibility and model understanding for MCP tools (e.g., Pencil)
- ✅ Establishes pluggable foundation for adding more MCP tools (filesystem, database, etc.) in the future
- ✅ Fully backward compatible, all 25 tests passing
- Constraint Semantic Backfilling (Constraint Hints):
- [Security Enhancement] Web UI Management Password & API Key Separation (Fix Issue #1139):
- Independent Password Configuration: Support setting a separate management console login password via
ABV_WEB_PASSWORDorWEB_PASSWORDenvironment variables. - Intelligent Authentication Logic:
- Management interfaces prioritize validating the independent password, automatically falling back to
API_KEYif not set (ensuring backward compatibility). - AI Proxy interfaces strictly only allow
API_KEYfor authentication, achieving permission isolation.
- Management interfaces prioritize validating the independent password, automatically falling back to
- Configuration UI Support: Added a management password editing item in "Dashboard - Service Config," supporting one-click retrieval or modification.
- Log Guidance: Headless mode startup clearly prints the status and retrieval methods for both API Key and Web UI Password.
- Independent Password Configuration: Support setting a separate management console login password via
- [Core Fix] Session Persistence After Account Switch (Fix Issue #1159):
-
v4.0.1 (2026-01-26):
- [UX Optimization] Theme & Language Transition Smoothness:
- Resolved the UI freezing issue during theme and language switching by decoupling configuration persistence from the state update loop.
- Optimized View Transition API usage in the Navbar to ensure non-blocking visual updates.
- Made window background sync calls asynchronous to prevent React render delays.
- [Core Fix] Proxy Service Startup Deadlock:
- Fixed a race condition/deadlock where starting the proxy service would block status polling requests.
- Introduced an atomic startup flag and non-blocking status checks to ensure the UI remains responsive during service initialization.
- [UX Optimization] Theme & Language Transition Smoothness:
-
v4.0.0 (2026-01-25):
- [Major Architecture] Deep Migration to Tauri v2:
- Fully adapted to Tauri v2 core APIs, including system tray, window management, and event systems.
- Resolved asynchronous Trait dynamic dispatch and lifecycle conflict issues, significantly enhancing backend performance and stability.
- [Deployment Revolution] Native Headless Docker Mode:
- Implemented a "pure backend" Docker image, completely removing dependencies on VNC, noVNC, or XVFB, significantly reducing RAM and CPU usage.
- Supports direct hosting of frontend static resources; the management console is accessible via browser immediately after container startup.
- [Deployment Fix] Arch Linux Installation Script Fix (PR #1108):
- Fixed the extraction failure in
deploy/arch/PKGBUILD.templatecaused by hardcodeddata.tar.zst. - Implemented dynamic compression format detection using wildcards, ensuring compatibility across different
.debpackage versions.
- Fixed the extraction failure in
- [Management Upgrade] Full-Featured Web Console:
- Refactored the management dashboard, enabling all core features (Account management, API proxy monitoring, OAuth authorization, model mapping) to be completed via browser.
- Completed OAuth callback handling for Web mode, supporting
ABV_PUBLIC_URLcustomization, perfectly adapting to remote VPS or NAS deployment scenarios.
- [Normalization] Structural Cleanup & Unitization:
- Cleaned up redundant
deploydirectories and legacy scripts, resulting in a more modern project structure. - Standardized the Docker image name as
antigravity-managerand integrated a dedicateddocker/directory and manual.
- Cleaned up redundant
- [API Enhancement] Traffic Logs & Monitoring:
- Optimized the real-time monitoring experience for traffic logs, adding polling mechanisms and statistics endpoints for Web mode.
- Refined management API route placeholder naming for improved calling precision.
- [UX Improvement] Monitor Page Layout & Dark Mode Optimization (PR #1105):
- Layout Refactoring: Optimized the container layout of the traffic log page with a fixed max-width and responsive margins. This resolves content stretching issues on large screens, offering a more comfortable visual experience.
- Dark Mode Consistency: Migrated the color scheme of the log detail modal from hardcoded Slate colors to the Base theme. This ensures seamless integration with the global dark mode style and improves visual consistency.
- [UX Improvement] Auto-Update Fallback Mechanism:
- Smart Fallback: Fixed the issue where the update button would be unresponsive if the native package was not ready (e.g., Draft Release). The system now detects this state, notifies the user, and gracefully falls back to browser-based download.
- [Core Fix] Deep Optimization of Signature Cache & Rewind Detection (PR #1094):
- 400 Error Self-healing: Enhanced the cleaning logic for thinking block signatures. The system now automatically identifies "orphaned signatures" caused by server restarts and proactively strips them before sending to upstream, fundamentally preventing
400 Invalid signatureerrors. - Rewind Detection Mechanism: Upgraded the cache layer to include Message Count validation. When a user rewinds the conversation history and resends, the system automatically resets the signature state to ensure dialogue flow validity.
- Full-chain Adaptation: Optimized data links for Claude, Gemini, and z.ai (Anthropic) to ensure precise propagation of message counts in both streaming and non-streaming requests.
- 400 Error Self-healing: Enhanced the cleaning logic for thinking block signatures. The system now automatically identifies "orphaned signatures" caused by server restarts and proactively strips them before sending to upstream, fundamentally preventing
- [OpenAI Robustness] Enhanced Retry Policy & Model-level Isolation (PR #1093):
- Robust Retries: Enforced a minimum of 2 attempts for OpenAI handlers to handle transient jitters; removed hard-stop on quota exhaustion to allow account rotation.
- Model-level Isolation: Implemented fine-grained rate limiting for OpenAI requests, preventing model-specific limits from locking the whole account.
- API Fix: Resolved an email/ID inconsistency in TokenManager's async interface, ensuring accurate rate-limit tracking.
- [System Robustness] Unified Retry & Backoff Hub:
- Logic Normalization: Abstracted retry logic from individual protocol handlers into
common.rs, achieving system-wide logic normalization. - Enforced Backoff Delays: Completely fixed the issue where requests would retry immediately when a
Retry-Afterheader was missing. All handlers now execute physical wait times via the shared module before retrying, protecting IP reputation. - Aggressive Parameter Tuning: Significantly increased initial backoff times for 429 and 503 errors to 5s-10s, drastically reducing production risk and prevent account bans.
- Logic Normalization: Abstracted retry logic from individual protocol handlers into
- [CLI Sync Optimization] Resolved Token Conflict & Model Config Cleanup (PR #1054):
- Automatic Conflict Resolution: Automatically removes the conflicting
ANTHROPIC_AUTH_TOKENwhen settingANTHROPIC_API_KEY, resolving sync errors for the Claude CLI. - Environment Variable Cleanup: Proactively removes environment variables like
ANTHROPIC_MODELthat might interfere with model defaults, ensuring consistent CLI behavior. - Configuration Robustness: Improved handling of empty API keys to prevent invalid configurations from affecting the sync process.
- Automatic Conflict Resolution: Automatically removes the conflicting
- [Major Architecture] Deep Migration to Tauri v2:
-
v4.0.0 (2026-01-25):
- [Core Feature] Configurable Background Task Models:
- Enhancement: Users can now customize the model used for "Background Tasks" (e.g., title generation, summary compression), decoupled from the hardcoded
gemini-2.5-flash. - UI Update: Added a "Background Task Model" setting in the "Model Mapping" page, allowing selection of any available model (e.g.,
gemini-3-flash) via dropdown. - Routing Fix: Resolved an issue where background tasks might bypass user custom mappings.
internal-background-tasknow strictly adheres to user redirection rules.
- Enhancement: Users can now customize the model used for "Background Tasks" (e.g., title generation, summary compression), decoupled from the hardcoded
- [Important Notice] Upstream Model Capacity Warning:
- Capacity Exhausted: We have received numerous reports that upstream Google
gemini-2.5-flashandgemini-2.5-flash-litemodels are currently experiencing severe capacity limitations (Rate Limited / Capacity Exhausted). - Recommended Action: To ensure service availability, we strongly recommend manually redirecting these models to alternatives (e.g.,
gemini-3-flashorgemini-3-pro-high) in "Custom Mappings" until upstream services recover.
- Capacity Exhausted: We have received numerous reports that upstream Google
- [Core Fix] Windows Startup Argument Support (PR #973):
- Fix: Resolved an issue where startup arguments (e.g., tunneling configurations) were not correctly parsed and applied on the Windows platform. Thanks to @Mag1cFall for the contribution.
- [Core Fix] Enhanced Claude Signature Validation (PR #1009):
- Optimization: Strengthened the signature validation logic for Claude models, fixing 400 errors in long conversations or complex tool-calling scenarios.
- Compatibility: Introduced minimum signature length checks and a trust-on-length strategy for unknown signatures, significantly improving the stability of JSON tool calls.
- [i18n] Vietnamese Translation Optimization (PR #1017):
- Refinement: Optimized Vietnamese translations for the About page and other UI elements for better clarity and conciseness.
- [i18n] Turkish Tray Translation Enhancement (PR #1023):
- Optimization: Added full Turkish translation support for the system tray menu, improving the experience for Turkish-speaking users.
- [Enhancement] Multi-language Support & I18n Settings (PR #1029):
- New Language Support: Added more comprehensive support for Portuguese, Japanese, Vietnamese, Turkish, Russian, and more.
- I18n Settings Panel: Added a language selector in the Settings page, supporting instant switching of the application's display language.
- [i18n] Korean Support & UI Refinement (New):
- Korean Integration: Added full Korean (
ko) translation support, available for selection in Settings. - UI Upgrade: Refactored the language switcher in the top navigation bar from a single-click toggle to a more intuitive dropdown menu, displaying language abbreviations and full names for better usability.
- Korean Integration: Added full Korean (
- [Core Feature] Configurable Background Task Models:
-
v3.3.49 (2026-01-22):
-
[Core Fix] Thinking Interruption & 0-Token Defense (Fix Thinking Interruption):
- Issue: Addressed an issue where Gemini models would unexpectedly terminate the stream after outputting "Thinking" content, causing Claude clients to receive 0-token responses and deadlock with errors.
- Defense Mechanism:
- State Tracking: Real-time monitoring of streaming responses to detect "Thinking-only" states (Thinking sent, Content pending).
- Auto-Recovery: Upon detecting such interruptions, the system automatically closes the Thinking block, injects a system notice, and simulates valid Usage data to ensure the client terminates the session gracefully.
-
[Core Fix] Removed Flash Lite Model to Fix 429 Errors:
- Issue: Observed that
gemini-2.5-flash-liteis frequently returning 429 errors today due to Upstream Google Container Capacity Exhausted (MODEL_CAPACITY_EXHAUSTED), rather than standard account quota limits. - Urgent Fix: Replaced all internal
gemini-2.5-flash-litecalls (e.g., background title generation, L3 summary compression) and preset mappings with the more stablegemini-2.5-flash. - User Notice: If you explicitly used
gemini-2.5-flash-litein "Custom Mappings" or "Presets", please update it to another model immediately, or you may continue to experience 429 errors.
- Issue: Observed that
-
[UX Optimization] Immediate Effect of Settings (Fix PR #949):
- Instant Apply: Fixed an issue where language changes required manual saving. Adjustments now apply immediately across the UI.
-
[Code Cleanup] Backend Architecture Refactoring & Optimization (PR #950):
- Streamlining: Deeply refactored mapping and handling logic within the proxy layer. Removed redundant modules (e.g.,
openai/collector.rs) to significantly improve maintainability. - Stability Boost: Optimized the conversion chains for OpenAI and Claude protocols, unified image configuration parsing, and hardened the context manager's robustness.
- Streamlining: Deeply refactored mapping and handling logic within the proxy layer. Removed redundant modules (e.g.,
-
[Core Fix] State Sync Strategy Update:
- Consistency: Improved the immediate application logic for themes and resolved conflicts between
App.tsxandSettings.tsx, ensuring UI consistency during configuration loading.
- Consistency: Improved the immediate application logic for themes and resolved conflicts between
-
[Core Optimization] Context Compression & Token Savings:
- Early Compression: Since Claude CLI sends large chunks of history when resuming, compression thresholds are now configurable with lower defaults.
- L3 Pivot: The L3 summary reset threshold has been lowered from 90% to 70%, triggering compression earlier to prevent massive token usage.
- UI Enhancement: Added L1/L2/L3 compression threshold sliders in Experimental Settings for dynamic user customization.
-
[Enhancement] API Monitor Dashboard Upgrade (PR #951):
- Account Filtering: Added the ability to filter traffic logs by account, allowing for precise tracking of specific account usage in high-volume environments.
- Deep Detail Enhancement: The monitor details page now displays critical metadata including request protocol (OpenAI/Anthropic/Gemini), account used, and mapped physical models.
- UI & i18n: Optimized the layout of monitor details and completed translations for all 8 supported languages.
-
[JSON Schema Optimization] Recursive $defs Collection & Improved Fallback (PR #953):
- Recursive Collection: Added
collect_all_defs()to gathered$defs/definitionsfrom all schema levels, fixing missing nested definitions. - Ref Flattening: Always run
flatten_refs()to catch and handle orphan$reffields. - Fallback Method: Added fallback for unresolved
$ref, converting them to string type with descriptive hints. - Robustness: Added new test cases for nested defs and unresolved refs to ensure schema processing stability.
- Recursive Collection: Added
-
[Core Fix] Account Index Protection (Fix Issue #929):
- Security Hardening: Removed automatic deletion logic on load failure, preventing accidental loss of account indexes during environment anomalies or upgrades.
-
[Feature] Deep Optimization of Router & Model Mapping (PR #954):
- Deterministic Router Priority: Resolved non-deterministic matching issues for multi-wildcard patterns by implementing a priority system based on pattern specificity.
-
[Stability] OAuth Callback & Parsing Enhancement (Fix #931, #850, #778):
- Robust Parsing: Optimized the local callback server's URL parsing logic to improve compatibility across different browsers.
- Detailed Logging: Added raw request logging for authorization failures, enabling quicker debugging of network-level interceptions.
-
[Optimization] OAuth Communication Quality (Issue #948, #887):
- Timeout Extension: Increased auth request timeouts to 60 seconds to significantly improve token exchange success rates in proxy environments.
- Error Guidance: Provided clear guidance for Google API connectivity issues, helping users troubleshoot proxy settings.
-
[UX Enhancement] Upstream Proxy Validation & Restart Hint (Contributed by @zhiqianzheng):
- Config Validation: When the user enables upstream proxy but leaves the URL empty, the save operation is blocked with a clear error message, preventing connection failures due to invalid configuration.
- Restart Reminder: After successfully saving proxy settings, users are reminded to restart the app for changes to take effect, reducing troubleshooting time.
- i18n Support: Added translations for Simplified Chinese, Traditional Chinese, English, and Japanese.
-
-
v3.3.48 (2026-01-21):
- [Core Fix] Windows Console Flashing Fix (Fix PR #933):
- Problem: On Windows, launching the application or executing background CLI commands would sometimes cause a command prompt window to briefly flash, disrupting the user experience.
- Fix: Added the
CREATE_NO_WINDOWflag to thecloudflaredprocess creation logic, ensuring all background processes run silently without visible windows. - Impact: Resolved the window flashing issue for Windows users during app startup or CLI interactions.
- [Core Fix] Windows Console Flashing Fix (Fix PR #933):
-
v3.3.47 (2026-01-21):
- [Core Fix] Image Generation API Parameter Mapping Enhancement (Fix Issue #911):
- Background: The
/v1/images/generationsendpoint had two parameter mapping defects:- The
sizeparameter only supported hardcoded specific dimension strings; OpenAI standard sizes (like1280x720) were incorrectly fallback to1:1aspect ratio - The
qualityparameter was only used for Prompt enhancement and not mapped to Gemini'simageSize, unable to control the physical resolution of output images
- The
- Fix Details:
- Extended
common_utils.rs: Addedparse_image_config_with_paramsfunction to support parsing image configuration from OpenAI parameters (size,quality) - Dynamic Aspect Ratio Calculation: Added
calculate_aspect_ratio_from_sizefunction, using mathematical calculation instead of hardcoded matching, supporting anyWIDTHxHEIGHTformat - Unified Configuration Parsing: Modified
handle_images_generationsfunction, removed hardcoded mapping, calling unified configuration parsing function - Parameter Mapping:
quality: "hd"→imageSize: "4K",quality: "medium"→imageSize: "2K"
- Extended
- Test Verification: Added 8 unit tests covering OpenAI parameter parsing, dynamic calculation, backward compatibility scenarios, all passing
- Compatibility Guarantee:
- ✅ Backward Compatible: Chat path (like
gemini-3-pro-image-16-9-4k) still works normally - ✅ Progressive Enhancement: Supports more OpenAI standard sizes,
qualityparameter correctly mapped - ✅ No Breaking Changes: Claude, Vertex, Gemini protocols unaffected
- ✅ Backward Compatible: Chat path (like
- Impact: Resolved OpenAI Images API parameter mapping issues, all protocols automatically benefit through
common_utils
- Background: The
- [Core Optimization] 3-Layer Progressive Context Compression:
- Background: Long conversations frequently trigger "Prompt is too long" errors, manual
/compactis tedious, and existing compression strategies break LLM's KV Cache, causing cost spikes - Solution - Multi-Layer Progressive Compression Strategy:
- Layer 1 (60% pressure): Intelligent Tool Message Trimming
- Removes old tool call/result messages, retains last 5 rounds of interaction
- Completely preserves KV Cache (only deletes messages, doesn't modify content)
- Compression rate: 60-90%
- Layer 2 (75% pressure): Thinking Content Compression + Signature Preservation
- Compresses Thinking block text content in
assistantmessages (replaces with "...") - Fully preserves
signaturefield, resolves Issue #902 (signature loss causing 400 errors) - Protects last 4 messages from compression
- Compression rate: 70-95%
- Compresses Thinking block text content in
- Layer 3 (90% pressure): Fork Session + XML Summary
- Uses
gemini-2.5-flash-liteto generate 8-section XML structured summary (extremely low cost) - Extracts and preserves last valid Thinking signature
- Creates new message sequence:
[User: XML Summary] + [Assistant: Confirmation] + [User's Latest Message] - Completely preserves Prompt Cache (prefix stable, append-only)
- Compression rate: 86-97%
- Uses
- Layer 1 (60% pressure): Intelligent Tool Message Trimming
- Technical Implementation:
- New Module:
context_manager.rsimplements Token estimation, tool trimming, Thinking compression, signature extraction - Helper Function:
call_gemini_sync()- reusable synchronous upstream call function - XML Summary Template: 8-section structured summary (goal, tech stack, file state, code changes, debugging history, plan, preferences, signature)
- Progressive Triggering: Auto-triggers by pressure level, re-estimates Token usage after each compression
- New Module:
- Cost Optimization:
- Layer 1: Zero cost (doesn't break cache)
- Layer 2: Low cost (only breaks partial cache)
- Layer 3: Minimal cost (summary uses flash-lite, new session is fully cache-friendly)
- Total Savings: 86-97% Token cost while maintaining signature chain integrity
- User Experience:
- Automated: No manual
/compactneeded, system handles automatically - Transparent: Detailed logs record each layer's trigger and effect
- Fault-tolerant: Layer 3 returns friendly error on failure
- Automated: No manual
- Impact: Completely resolves context management issues in long conversations, significantly reduces API costs, ensures tool call chain integrity
- Background: Long conversations frequently trigger "Prompt is too long" errors, manual
- [Core Optimization] Context Estimation and Scaling Algorithm Enhancement (PR #925):
- Background: In long conversation scenarios like Claude Code, the fixed Token estimation algorithm (3.5 chars/token) has huge errors in mixed Chinese-English content, causing the 3-layer compression logic to fail to trigger in time, ultimately still reporting "Prompt is too long" errors
- Solution - Dynamic Calibration + Multi-language Awareness:
- Multi-language Aware Estimation:
- ASCII/English: ~4 chars/Token (optimized for code and English docs)
- Unicode/CJK (Chinese/Japanese/Korean): ~1.5 chars/Token (optimized for Gemini/Claude tokenization)
- Safety Margin: Additional 15% safety buffer on top of calculated results
- Dynamic Calibrator (
estimation_calibrator.rs):- Self-learning Mechanism: Records "Estimated Token Count" vs Google API's "Actual Token Count" for each request
- Calibration Factor: Uses Exponential Moving Average (EMA, 60% old ratio + 40% new ratio) to maintain calibration coefficient
- Conservative Initialization: Initial calibration coefficient is 2.0, ensuring extremely conservative compression triggering in early system operation
- Auto-convergence: Automatically corrects based on actual data, making estimates increasingly accurate
- Integration with 3-Layer Compression Framework:
- Uses calibrated Token counts in all estimation stages (initial estimation, re-estimation after Layer 1/2/3)
- Records detailed calibration factor logs after each compression layer for debugging and monitoring
- Multi-language Aware Estimation:
- Technical Implementation:
- New Module:
estimation_calibrator.rs- Global singleton calibrator, thread-safe - Modified Files:
claude.rs,streaming.rs,context_manager.rs - Calibration Data Flow: Streaming response collector → Extract actual Token count → Update calibrator → Next request uses new coefficient
- New Module:
- User Experience:
- Transparency: Logs show raw estimate, calibrated estimate, and calibration factor for understanding system behavior
- Adaptive: System automatically adjusts based on user's actual usage patterns (Chinese-English ratio, code volume, etc.)
- Precise Triggering: Compression logic based on more accurate estimates, significantly reducing "false negatives" and "false positives"
- Impact: Significantly improves context management precision, resolves automatic compression failure issues reported in Issue #902 and #867, ensures long conversation stability
- [Critical Fix] Thinking Signature Recovery Logic Optimization:
- Background: In retry scenarios, signature check logic didn't check Session Cache, causing incorrect Thinking mode disabling, resulting in 0 token requests and response failures
- Symptoms:
- Retry shows "No valid signature found for function calls. Disabling thinking"
- Traffic logs show
I: 0, O: 0(actual request succeeded but tokens not recorded) - Client may not receive response content
- Fix Details:
- Extended Signature Check Scope:
has_valid_signature_for_function_calls()now checks Session Cache - Check Priority: Global Store → Session Cache (NEW) → Message History
- Detailed Logging: Added signature source tracking logs for debugging
- Extended Signature Check Scope:
- Technical Implementation:
- Modified signature validation logic in
request.rs - Added
session_idparameter passing to signature check function - Added
[Signature-Check]log series for tracking signature recovery process
- Modified signature validation logic in
- Impact: Completely resolves Thinking mode degradation in retry scenarios, ensures Token statistics accuracy, improves long session stability
- [Core Fix] Universal Parameter Alignment Engine:
- Background: Completely resolves
400 Bad Requesterrors from the Gemini API caused by parameter type mismatches (e.g., string instead of number) during Tool Use. - Fix Details:
- Implementation: Developed
fix_tool_call_argsinjson_schema.rsto automatically coerce parameter types (strings to numbers/booleans) based on their JSON Schema definitions. - Protocol Refactoring: Refactored both OpenAI and Claude protocol layers to use the unified alignment engine, eliminating scattered hardcoded logic.
- Implementation: Developed
- Resolved Issues: Fixed failures in tools like
local_shell_callandapply_patchwhen parameters were incorrectly formatted as strings by certain clients or proxy layers. - Impact: Significantly improves the stability of tool calls and reduces upstream API 400 errors.
- Background: Completely resolves
- [Enhancement] Image Model Quota Protection Support (Fix Issue #912):
- Background: Users reported that the image generation model (G3 Image) lacked quota protection, causing accounts with exhausted quotas to still be used for image requests
- Fix Details:
- Backend Configuration: Added
gemini-3-pro-imagetodefault_monitored_models()inconfig.rs, aligning with Smart Warmup and Pinned Quota Models lists - Frontend UI: Added image model option in
QuotaProtection.tsx, adjusted layout to 4 models per row (consistent with Smart Warmup)
- Backend Configuration: Added
- Impact:
- ✅ Backward Compatible: Existing configurations unaffected; new users or config resets will automatically include the image model
- ✅ Complete Protection: All 4 core models (Gemini 3 Flash, Gemini 3 Pro High, Claude 4.5 Sonnet, Gemini 3 Pro Image) are now monitored by quota protection
- ✅ Auto-trigger: When image model quota falls below threshold, accounts are automatically added to the protection list, preventing further consumption
- [Transport Layer Optimization] Streaming Response Anti-Buffering:
- Background: When deployed behind reverse proxies like Nginx, streaming responses may be buffered by the proxy, increasing client-side latency
- Fix Details:
- Added X-Accel-Buffering Header: Injected
X-Accel-Buffering: noheader in all streaming responses - Multi-Protocol Coverage: Claude (
/v1/messages), OpenAI (/v1/chat/completions), and Gemini native protocol all supported
- Added X-Accel-Buffering Header: Injected
- Technical Details:
- Modified files:
claude.rs:L877,openai.rs:L314,gemini.rs:L240 - This header instructs Nginx and other reverse proxies not to buffer streaming responses, passing them directly to clients
- Modified files:
- Impact: Significantly reduces streaming response latency in reverse proxy scenarios, improving user experience
- [Error Recovery Enhancement] Multi-Protocol Signature Error Recovery Prompts:
- Background: When signature errors occur in Thinking mode, merely removing signatures may cause the model to generate empty responses or simple "OK" replies
- Fix Details:
- Claude Protocol Enhancement: Added repair prompts to existing signature error retry logic, guiding the model to regenerate complete responses
- OpenAI Protocol Implementation: Added 400 signature error detection and repair prompt injection logic
- Gemini Protocol Implementation: Added 400 signature error detection and repair prompt injection logic
- Repair Prompt:
[System Recovery] Your previous output contained an invalid signature. Please regenerate the response without the corrupted signature block. - Technical Details:
- Claude:
claude.rs:L1012-1030- Enhanced existing logic, supports String and Array message formats - OpenAI:
openai.rs:L391-427- Complete implementation, usesOpenAIContentBlock::Texttype - Gemini:
gemini.rs:L17, L299-329- Modified function signature to support mutable body, injects repair prompts
- Claude:
- Impact:
- ✅ Improved error recovery success rate: Model receives clear instructions, avoiding meaningless responses
- ✅ Multi-protocol consistency: All 3 protocols have the same error recovery capability
- ✅ Better user experience: Reduces conversation interruptions caused by signature errors
- [Core Fix] Image Generation API Parameter Mapping Enhancement (Fix Issue #911):
-
v3.3.46 (2026-01-20):
- [Enhancement] Deep Optimization & i18n Standardization for Token Stats (PR #892):
- Unified UI/UX: Implemented custom Tooltip components to unify hover styles across Area, Bar, and Pie charts, enhancing contrast and readability in Dark Mode.
- Visual Refinements: Optimized chart cursors and grid lines, removing redundant hover overlays for a cleaner, more professional interface.
- Adaptive Layout: Improved Flexbox layout for chart containers, ensuring they fill available vertical space across various window sizes and eliminating empty gaps.
- Per-Account Trend Statistics: Added a "By Account" view mode, enabling intuitive analysis of token consumption shares and activity levels via pie and trend charts.
- i18n Standardization: Completely resolved duplicate key warnings in
ja.json,zh-TW.json,vi.json,ru.json, andtr.json. Added missing translations foraccount_trend,by_model, etc., ensuring consistent UI presentation across all 8 supported languages.
- [Core Fix] Remove [DONE] from Stop Sequences to Prevent Truncation (PR #889):
- Background:
[DONE]is a standard SSE (Server-Sent Events) protocol end signal that frequently appears in code and documentation. Including it as astopSequencecaused unexpected output truncation when the model explained SSE-related content. - Fix Details: Removed the
"[DONE]"marker from the Gemini request'sstopSequencesarray. - Technical Notes:
- Gemini stream termination is controlled by the
finishReasonfield, notstopSequence - SSE-level
"data: [DONE]"is handled separately inmod.rs
- Gemini stream termination is controlled by the
- Impact: Resolved the issue where model output was prematurely terminated when generating content containing SSE protocol explanations, code examples, etc. (Issue #888).
- Background:
- [Deployment] Docker Build Dual-Mode Adaptation (Default/China Mode):
- Dual-Mode Architecture: Introduced
ARG USE_CHINA_MIRRORbuild argument. The default mode keeps the original Debian official sources (ideal for overseas/cloud builds); when enabled, it automatically switches to Tsinghua University (TUNA) mirrors (optimized for mainland China). - Flexibility Boost: Completely resolved slow builds in overseas environments caused by hardcoded mirrors, while preserving acceleration for users in China.
- Dual-Mode Architecture: Introduced
- [Stability] VNC & Container Startup Logic Hardening (PR #881):
- Zombie Process Cleanup: Optimized cleanup logic in
start.shusingpkillto precisely terminate Xtigervnc and websockify processes and clean up/tmp/.X11-unixlock files, resolving various VNC connection issues after restarts. - Healthcheck Upgrade: Expanded Healthcheck to include websockify and the main application, ensuring container status more accurately reflects service availability.
- Major Fix: Resolved OpenAI protocol 404 errors and fixed a compatibility defect where Codex (
/v1/responses) with complex object arrayinputor custom tools likeapply_patch(missing schema) caused upstream 400 (INVALID_ARGUMENT) errors. - Thinking Model Optimization: Resolved mandatory error issues with Claude 4.6 Thinking models when thought chains are missing in historical messages, implementing intelligent protocol fallback and placeholder block injection.
- Protocol Completion: Enhanced OpenAI Legacy endpoints with Token usage statistics and Header injection. Added support for
input_textcontent blocks and mapped thedeveloperrole to system instructions. - requestId Unification: Unified
requestIdprefix toagent-across all OpenAI paths to resolve ID recognition issues with some clients. interface response bodies, resolving the issue where token consumption was not displayed in traffic logs.
- Zombie Process Cleanup: Optimized cleanup logic in
- [Core Fix] JSON Schema Array Recursive Cleaning Fix (Resolution of Gemini API 400 Errors):
- Issue: Complex nested array schemas in tool definitions (like
apply_patchorlocal_shell_call) were not being recursively cleaned, leading to 400 errors from Gemini API due to unsupported fields likeconstorpropertyNames. - Fix: Implemented full recursive cleaning for all
Value::Arraytypes in the JSON Schema processor. - Impact: Significantly improves compatibility with tools that use complex array schemas.
- Issue: Complex nested array schemas in tool definitions (like
- [Enhancement] Deep Optimization & i18n Standardization for Token Stats (PR #892):
-
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):
-
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.
- v4.1.28 (2026-03-03):
Special thanks to all developers who have contributed to this project.
This project has referenced or learned from the ideas or code of the following excellent open-source projects during its development (in no particular order):
-
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.



































