logo
0
0
WeChat Login
lbjlaq<469054080@qq.com>
docs: add web search fix to v4.1.21 changelog

Antigravity Tools 🚀

Professional AI Account Management & Protocol Proxy System (v4.1.21)

Antigravity Logo

Your Personal High-Performance AI Dispatch Gateway

Seamlessly proxy Gemini & Claude. OpenAI-Compatible. Privacy First.

Version Tauri Rust React License

FeaturesGUI OverviewArchitectureInstallationIntegration

简体中文 | 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.

💖 Sponsors

SponsorDescription
PackyCode LogoThanks 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.
AICodeMirror LogoThanks 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!

☕ Support

If you find this project helpful, feel free to buy me a coffee!

Buy Me A Coffee

AlipayWeChat PayBuy Me a Coffee
AlipayWeChatCoffee

🌟 Detailed Feature Matrix

1. 🎛️ Smart Account Dashboard

  • 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.

2. 🔐 Professional AI Account Management & Proxy System

  • 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.

3. Protocol Conversion & Relay (API Proxy)

  • Multi-Protocol Adaptation (Multi-Sink):
    • OpenAI Format: Provides /v1/chat/completions endpoint, compatible with 99% of existing AI apps.
    • Anthropic Format: Provides native /v1/messages interface, supporting all features of Claude Code CLI (e.g., chain-of-thought, system prompts).
    • Gemini Format: Supports direct calls from official Google AI SDKs.
  • Smart Self-healing: When a request encounters 429 (Too Many Requests) or 401 (Expired), the backend triggers millisecond-level automatic retry and silent rotation, ensuring business continuity.

4. 🔀 Model Router Center

  • 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.

5. 🎨 Multimodal & Imagen 3 Support

  • 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.

GUI Overview

Dashboard - Global Quota Monitoring & One-click Switch
Dashboard
Account List - High-density Quota Display & Smart 403 Labeling
Account List
About Page - About Antigravity Tools
About Page
API Proxy - Service Control
API Proxy
Settings - General Config
Settings

💡 Usage Examples

Claude Code Web Search - Structured source and citation display
Claude Code Web Search
Cherry Studio Deep Integration - Native echo of search citations and source links
Cherry Studio Integration
Imagen 3 Advanced Drawing - Perfect restoration of Prompt artistic conception and details
Imagen 3 Advanced Drawing
Kilo Code Integration - Multi-account high-speed rotation and model penetration
Kilo Code Integration

🏗️ Architecture

📥 Installation

Option A: Terminal Installation (Recommended)

Cross-Platform One-Line Install Scripts

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.21/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iex

Supported formats: Linux (.deb / .rpm / .AppImage) | macOS (.dmg) | Windows (NSIS .exe)

Advanced usage: Install a specific version curl -fsSL ... | bash -s -- --version 4.1.21, dry-run mode curl -fsSL ... | bash -s -- --dry-run

macOS - Homebrew

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-tools

Tip: If you encounter permission issues, add the --no-quarantine flag.

Arch Linux

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 | bash

Option 2: via Homebrew (If you have Linuxbrew installed)

brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager brew install --cask antigravity-tools

Other Linux Distributions

The AppImage will be automatically symlinked to your binary path with executable permissions.

Option B: Manual Download

Download from GitHub Releases:

  • macOS: .dmg (Universal, Apple Silicon & Intel)
  • Windows: .msi or portable .zip
  • Linux: .deb or AppImage

Option C: Docker Deployment (Recommended for NAS/Servers)

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 -d

Access URL: http://localhost:8045 (Admin Console) | http://localhost:8045/v1 (API Base) System Requirements:

  • RAM: 1GB recommended (minimum 256MB).
  • Persistence: Mount /root/.antigravity_tools to persist your data.
  • Architecture: Supports x86_64 and ARM64. See: Docker Deployment Guide (docker)

🛠️ Troubleshooting

macOS says "App is damaged"?

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"

🔌 Quick Integration Examples

🔐 OAuth Authorization Flow (Add Account)

  1. Go to AccountsAdd AccountOAuth.
  2. 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.
  3. After consent, the browser opens a local callback page and shows “✅ Authorized successfully!”.
  4. 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.

How to use with Claude Code CLI?

  1. Start Antigravity service in the "API Proxy" tab.
  2. In your terminal:
export ANTHROPIC_API_KEY="sk-antigravity" export ANTHROPIC_BASE_URL="http://127.0.0.1:8045" claude

How to use with OpenCode?

  1. Go to API ProxyExternal Providers → click the OpenCode Sync card.
  2. 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
  3. Click Clear Config to remove Manager configuration and clean up legacy entries; click Restore to revert from backup.
  4. On Windows, the path is C:\Users\<User>\.config\opencode\ (same ~/.config/opencode rule).

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 max

How to use in Python?

import 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)

📝 Developer & Community

  • Changelog:

    • v4.1.21 (2026-02-17):
      • [Core Fix] Cherry Studio / Claude Protocol Compatibility (Fix Issue #2007):
        • maxOutputTokens Capping: Fixed 400 INVALID_ARGUMENT errors caused by Cherry Studio sending excessive maxOutputTokens (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 with thinkingBudget: -1 and significantly improving stability in Cherry Studio.
      • [Core Fix] Enable Custom Protocol in Production (PR #2005):
        • Protocol Fix: Enabled custom-protocol feature by default, resolving issues with custom protocols (e.g., tauri://) failing to load in production builds, ensuring stability for local resources.
      • [Core Optimization] Tray Icon & Window Lifecycle Management:
        • Smart Tray: Introduced AppRuntimeFlags for 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.
      • [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.
      • [Core Fix] Cherry Studio Web Search Empty Response (/v1/responses):
        • SSE Event Completion: Rewrote create_codex_sse_stream to 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_search tool declarations sent by Cherry Studio to prevent conflicts with inject_google_search_tool, ensuring the Google Search tool is correctly injected.
        • Search Citation Echo: Added groundingMetadata parsing to the Codex streaming response, enabling search query and source citation echo in web search results.
      • [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_history check that could permanently disable thinking mode due to imperfect message history, now relying on thinking_recovery mechanism for automatic repair.
      • UI Improvement (Fix #2008): Enhanced the readability of cooldown times by changing the text color to blue.
    • v4.1.20 (2026-02-16):
      • Fixed 400 INVALID_ARGUMENT error 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/oneOf best-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 image and imagen keywords, 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.
      • [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, and X-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.
    • v4.1.19 (2026-02-15):
      • [Core Fix] Resolve Claude Code CLI Empty Text Block Error (Fix #1974):
        • Field Missing Fix: Resolved the Field required error 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.
      • [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_navigate instead of the registered mcp__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.
      • [Core Fix] Opencode Sync Logic Correction (Fix #1972):
        • Missing Model Fix: Resolved the issue where the claude-opus-4-6-thinking model definition was missing during Opencode CLI synchronization, ensuring proper recognition and invocation by the client.
    • v4.1.18 (2026-02-14):
      • [Core Upgrade] Full Implementation of JA3 Fingerprint Spoofing (Chrome 123):
        • Anti-Bot Evasion: Integrated rquest with 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.
      • [Refactor] Universal Stream Handling (Issue #1955):
        • Dual-Core Compatibility: Refactored SSE handling and debug logging to support Box<dyn Stream>, enabling unified compatibility for both reqwest (standard) and rquest (spoofed) response streams and resolving underlying type conflicts.
      • [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.
      • [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-image variants 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.
    • 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.json to 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.
    • v4.1.16 (2026-02-12):
      • [Core Fix] Resolve Claude Protocol (Thinking Model) 400 Errors (V4 Scheme):
        • Protocol Alignment: Completely fixed the 400 Invalid Argument error caused by parameter structure mismatch when calling models like Claude 3.7/4.5 Thinking via proxy.
        • Unified Injection: Deprecated the conflicting root-level thinking field injection. Now uniformly uses the generationConfig.thinkingConfig nested 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.
      • [Bug Fix] Resolve OpenAI Streaming Usage Duplication (Issue #1915):
        • Token Explosion Fix: Fixed an issue in stream=true mode where the usage field was incorrectly appended to every data chunk, causing clients (like Cline/Roo Code) to report exponentially inflated token usage.
      • [Core Feature] Enable Native Auto-Update for Linux Platform (PR #1891):
        • Full Platform Coverage: Added support for linux-x86_64 and linux-aarch64 platforms in updater.json, enabling Linux AppImage users to receive auto-update notifications.
        • Workflow Optimization: Automatically detects and reads .AppImage.sig signature files for Linux builds, completing the auto-update loop for macOS, Windows, and Linux.
      • [New Feature] Cross-Platform One-Line Install Scripts (PR #1892):
        • Simplified Installation: Added install.sh (Linux/macOS) and install.ps1 (Windows), supporting fully automated download, installation, and configuration via simple curl or irm commands.
        • Smart Detection: Automatically identifies OS, architecture, and package managers (DEB/RPM/AppImage/DMG/NSIS), with support for specific version pinning and Dry-Run mode.
      • [Core Optimization] Decouple OpenCode Config from Local Binary & Custom Network Support (Issue #1869):
        • Environment Decoupling: The backend no longer enforces the presence of the opencode binary, 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.
      • [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-image and its 4k/2k variants were incorrectly identified as supporting Adaptive Thinking due to the gemini-3-pro keyword, leading to the erroneous injection of effortLevel.
      • [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.rb Cask to v4.1.16, ensuring macOS and Linux users get the latest stable build via brew 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.
    • 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 .sig signature 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_id strings at the Proxy layer.
        • Self-Correction: Detecting an empty project_id now triggers an automatic re-fetch process, effectively resolving the "Invalid project resource name projects/" error mentioned in Issue #1846 and #1851.
      • [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 using gcloud config set project.
      • [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.
    • 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.
      • [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_model is 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 RefreshCw icon for a more refined interactive experience.
      • [Core Feature] Image Generation imageSize Parameter Support:
        • Direct Parameter Support: Added direct support for Gemini native imageSize parameter, available across all protocols (OpenAI/Claude/Gemini).
        • Parameter Priority: Implemented clear parameter priority logic: imageSize parameter > quality parameter 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 imageSize field.
        • Backward Compatibility: Fully compatible with existing quality parameter and model suffix methods, without affecting existing code.
      • [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.
    • 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 --cask flow directly within the app for a seamless upgrade experience.
      • [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-image when the image quota is exhausted.
      • [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 like flatten_refs, effectively preventing crashes caused by circular references or excessively deep nesting.
      • [Core Fix] Resolve Incorrect Concatenation of Multiple Tool Calls in Streaming Output (Issue #1786):
        • Index Correction: Fixed the index assignment logic for tool_calls in create_openai_sse_stream, ensuring multiple tool calls within the same chunk have independent and sequential index values, preventing parsing failures caused by concatenated arguments.
      • [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.
      • [i18n] Enhanced Internationalization for Settings and ApiProxy (PR #1789):
        • Refactoring: Replaced hardcoded Chinese strings in Settings.tsx and ApiProxy.tsx with t() internationalization calls.
        • Translation Expansion: Synchronized localization entries for Korean, Myanmar, Portuguese, Russian, Turkish, Vietnamese, Traditional Chinese, and Simplified Chinese.
      • [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.
    • 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-thinking with enhanced reasoning capabilities.
        • Seamless Migration: Implemented automatic redirection from claude-opus-4.5 / claude-opus-4 to 4.6, allowing legacy configurations to use the new model without changes.
      • [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 maxOutputTokens was less than thinkingBudget. The system now automatically adjusts and aligns token limits to ensure request compliance.
      • [Core Fix] Fix Claude CLI Path Detection for Bun on macOS (PR #1765):
        • Path Enhancement: Added detection for ~/.bun/bin and global install paths, resolving issues where Bun users could not automatically sync Claude CLI configurations.
      • [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.
    • 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 actual model_quotas held 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 Mapping or gui_config.json to ensure there is NO wildcard configuration like "claude-opus-4-*": "claude-opus-4-5-thinking". This could cause claude-opus-4-6-thinking to be incorrectly mapped to claude-opus-4-5-thinking. We recommend adding an explicit exact mapping for claude-opus-4-6-thinking.
      • [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_ONLY environment variable. When set to true, Docker/Headless mode will strictly bind to 127.0.0.1 and no longer expose services to 0.0.0.0 by default, meeting specific security network requirements.
      • [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.
      • [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.
      • [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.
    • 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/bin and its internal binaries in both cli_sync and opencode_sync, ensuring a "zero-config" experience for Volta users when syncing CLI configurations.
      • [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.
      • [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: false to 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.
      • [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 effort parameter (low/medium/high), allowing dynamic adjustment of thinking depth and budget.
        • Adaptive Token Limits: Fixed an issue where maxOutputTokens was incorrectly truncated in Adaptive mode due to missing Budget perception, ensuring long thought chains are preserving.
      • [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.
      • [Core Fix] Persistent Bindings & Reliable Quota Protection (Issue #1700):
        • Binding Persistence: Fixed a regression where account_bindings were 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.
      • [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.json and 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.
    • 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 model field 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.bak backups 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 GlobalSystemPrompt component with one-click enable and multi-line content editing.
      • [Core Fix] Resolve Floating-point Precision Loss (PR #1669):
        • Precision Upgrade: Upgraded temperature and top_p data types from f32 to f64 in the backend.
        • Accuracy Calibration: Completely eliminated minor deviations (e.g., 0.95 becoming 0.949999...) during proxy serialization, improving upstream compatibility.
      • [Core Refactoring] Implement App Name Internationalization (PR #1662):
        • UI Upgrade: Removed hardcoded "Antigravity Tools" from NavLogo and Settings pages, utilizing the app_name translation key for consistent UI language switching.
      • [Core Fix] Correct Misidentification of gemini-3-pro-image as a Thinking Model (Issue #1675):
        • Root Cause: gemini-3-pro-image and its 4k/2k variants were incorrectly identified as "Thinking Models" because they contain the gemini-3-pro keyword.
        • Conflict Resolved: Fixed the conflict caused by the incorrect injection of thinkingConfig alongside imageConfig, 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.
      • [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.
      • [Refactoring] Restructured UpstreamClient Response Logic:
        • Structured Results: Introduced UpstreamCallResult to unify upstream request management and optimize streaming/non-streaming response paths.
    • 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-6 series 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-thinking and its aliases (claude-opus-4-6, 20260201), managing them under the claude-sonnet-4.5 quota 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 PATH environment is incomplete and enhanced support for .cmd and .bat files on Windows.
      • [Core Fix] Resolve missing tool call content in monitoring logs:
        • Multi-Protocol Support: Refactored SSE parsing logic to fully support OpenAI tool_calls and Claude tool_use.
        • Incremental Accumulation: Implemented streaming accumulation for tool parameters, ensuring long tool calls are correctly captured and displayed in the monitoring panel.
      • [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.
      • [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 ProxyToken struct to eliminate disk reads during the get_token sorting 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.
      • [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 injects skip_thought_signature_validator even if a real signature is missing, preventing the Field required for thinking signature error.
    • 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/generations and images/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.
      • [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_stats when database is empty (PR #1578):

        • NULL Handling: Wrapped SUM() calls with COALESCE(..., 0) to ensure numeric values are always returned, fixing type conversion errors in rusqlite when no logs exist.
        • Performance Retention: Preserved the optimized single-query architecture from the local branch for statistical data retrieval.
      • [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_forbidden and removes them from the active memory pool upon encountering 403 errors.
        • Temporary Risk Control detection: Identifies VALIDATION_REQUIRED errors and implements a 10-minute temporary block for affected accounts.
        • Rotation Stability: Fixed premature returns during QUOTA_EXHAUSTED errors, 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.json with proper provider settings for Anthropic and Google.
        • Account Export: Optionally syncs accounts to antigravity-accounts.json for 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.
      • [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_ARGUMENT errors in Gemini native image generation caused by the missing role: "user" field in the contents array.
        • 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.
      • [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_recovery mechanism. 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.
      • [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.
    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 localStorage to session-based sessionStorage, significantly reducing security risks on shared devices.
        • Seamless Auto-Migration: Implemented automatic detection and migration logic. The system identifies legacy localStorage keys, automatically transfers them to sessionStorage, and securely wipes the old data, ensuring a seamless transition and eliminating security vulnerabilities for existing users.
      • [Core Fix] Fix Account Addition Failure in Docker Environment (Issue #1583):
        • Account Context Fix: Fixed the proxy selection issue caused by account_id being None when 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_token and get_effective_client to 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.
      • [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 page and page_size in IpAccessLogQuery, resolving 400 Bad Request errors from /api/security/logs
          • Removed AddBlacklistWrapper and AddWhitelistWrapper structs, fixing 422 Unprocessable Content errors from /api/security/blacklist and /api/security/whitelist POST requests
          • Fixed frontend component parameter naming: ipPatternip_pattern, ensuring consistency with backend API parameters
        • 403 Account Rotation Optimization (Issue: Accounts Not Properly Skipped After 403):
          • Added set_forbidden method in token_manager.rs to support marking accounts as disabled
          • Account selection now checks quota.is_forbidden status, automatically skipping disabled accounts
          • Clears sticky session bindings for 403 accounts, ensuring immediate switch to other available accounts
        • Web Mode Request Processing Optimization:
          • Fixed request.ts to remove used parameters from body after path parameter replacement, avoiding duplicate parameters
          • Added PATCH method body handling, completing HTTP method support
          • Automatic unpacking of request field, simplifying request structure
        • Debug Console Web Mode Support:
          • Added isTauri environment detection in useDebugConsole.ts, distinguishing between Tauri and Web environments
          • Web mode uses request() instead of invoke(), ensuring proper calls in Web environment
          • Added polling mechanism, automatically refreshing logs every 2 seconds in Web mode
        • Docker Build Optimization:
          • Added --legacy-peer-deps flag, resolving frontend dependency conflicts
          • Enabled BuildKit cache to accelerate Cargo builds, improving build speed
          • Completed @lobehub/icons peer dependencies, fixing build failures caused by missing frontend dependencies
        • 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.
      • [Core Fix] Fix Debug Console Crash and Log Sync in Web/Docker Mode (Issue #1574):
        • Web Compatibility: Fixed TypeError crashes caused by direct calls to native invoke APIs in non-Tauri environments. Communication now flows through the compatibility request layer.
        • Fingerprint Binding Fix: Resolved HTTP Error 422 when generating and binding fingerprints by aligning the parameter structure between frontend and backend (nested profile object 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.
      • [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-file and its associated handlers. Added path traversal prevention (.. check) to the database import interface.
        • Tauri Security Hardening: Introduced a unified path validator for save_text_file and read_text_file commands, strictly forbidding directory traversal and blocking access to sensitive system paths.
    • 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 for disabled and proxy_disabled statuses in loading, syncing, and scheduling paths to prevent disabled accounts from being mistakenly selected.
        • Validation Block Support: Introduced the validation_blocked field system to handle Google's VALIDATION_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 /proxy path), resolving the issue where debug mode could not be enabled in Web mode.
        • Fingerprint Binding Fix: Added BindDeviceProfileWrapper structure for the admin_bind_device_profile_with_profile interface, fixing HTTP 422 errors caused by nested parameters sent from the frontend.
        • Backward Compatibility: Used serde alias feature to support both camelCase (frontend) and snake_case (backend files) at the API layer, ensuring old account files load correctly.
      • [Code Optimization] Simplified API Handling Structure:
        • Removed redundant Wrapper layers 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.
      • [Core Fix] Resolve OpenCode Thinking Model Interruption Issue (Issue #1575):
        • finish_reason Enforcement: Fixed the issue where finish_reason was incorrectly set to stop during tool calls, causing OpenAI clients to prematurely terminate conversations. The system now forcibly sets finish_reason to tool_calls when 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 standard command parameter, 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.
    • 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 frontend invoke method, ensuring security configurations are correctly persisted.
        • Parameter Normalization: Added camelCase renaming support for IP management interfaces, resolving failures in adding or deleting entries caused by case mismatches in Web-mode Query parameters.
      • [Core Fix] Restore Gemini Pro Thinking Blocks (Issue #1557):
        • Cross-Protocol Alignment: Resolved the issue where gemini-3-pro and other reasoning models were missing thinking blocks in OpenAI, Claude, and Gemini protocols since v4.1.0.
        • Smart Injection Logic: Implemented automatic thinkingConfig injection 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.rs to prevent configuration conflicts in high-concurrency scenarios.
    • v4.1.2 (2026-02-05):

      • [Core Feature] ClientAdapter Framework (Issue #1522):
        • Architecture Refactor: Introduced ClientAdapter framework with Arc reference 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, eliminating AI_TypeValidationError.
        • Smart Strategies: Implemented FIFO signature buffering and let_it_crash fail-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.
      • [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.
      • [Core Fix] Resolve 400 Invalid Argument Errors in OpenAI Protocol (Issue #1506):
        • Session-level Signature Isolation: Integrated SignatureCache to physically isolate thinking signatures using session_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.
      • [UI Enhancement] Model Logo Support & Automatic Sorting (PR #1535):
        • Visual Excellence: Integrated @lobehub/icons to 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.
      • [Core Fix] Enhanced Account Disable Status & Real-time Disk State Verification (PR #1546):
        • Deep Disk Verification: Introduced a get_account_state_on_disk mechanism 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_status command 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_grant error 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.
      • [Core Optimization] Concurrent Proxy Pool Health Checks (PR #1547):
        • Performance Boost: Integrated a concurrent execution mechanism based on futures streams, 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.
      • [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.randomUUID API.
        • Compatibility: Introduced a cross-platform compatible UUID generation fallback mechanism, ensuring ID generation stability in any deployment environment.
    • 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.oauthToken format 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-router dependency to a safe version, addressing a cross-site scripting (XSS) risk in the ScrollRestoration component during server-side rendering (SSR).
      • [i18n] Enhanced Japanese Translation Support (PR #1524):
        • Improvement: Completed Japanese localization for critical modules including Proxy Pool, streaming error messages, and User-Agent configurations.
    • 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 prepending http://.
        • 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 username field in ProxyRequestLog initialization.
      • [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.
      • [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.
    • 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.
    • 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.
    • 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 ref conflict 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.
    • 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.
    • 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.
      • [Core Fix] Account Hot-Reloading:
        • Unified Architecture: Eliminated duplicate TokenManager instances, 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.
      • [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 /health and /healthz routes 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.
      • [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 in 400 Bad Request errors.
        • 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.
      • [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.
    • v4.0.9 (2026-01-30):

      • [Core Feature] User-Agent Customization & Version Spoofing (PR #1325):
        • Dynamic Override: Allows users to customize the User-Agent header 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.
      • [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 its protected_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.
      • [Core Feature] Cache Management & One-click Clearing (PR #1346):
        • Backend Integration: Introduced src-tauri/src/modules/cache.rs to 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.
      • [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.
    • 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.rs to 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.
      • [UI Optimization] Optimize Chart Tooltip Floating Behavior (Issue #1263, PR #1307):
        • Overflow Defense: Optimized the tooltip positioning algorithm in TokenStats.tsx to ensure floating information stays within the viewport on small windows or high zoom levels, preventing content from being buried by window boundaries.
      • [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 LazyLock for efficient version parsing, boosting performance and reducing memory jitter.
        • Enhanced Observability: Added structured logging and a VersionSource enum, 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 parametersJsonSchema to parameters in 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.
      • [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_mode to auto. In Docker or LAN-access environments, the system now automatically activates authentication to ensure WEB_PASSWORD is enforced.
        • Environment Variable Support: Added support for ABV_AUTH_MODE and AUTH_MODE environment variables, allowing users to explicitly override the authentication mode at startup (supports off, strict, all_except_health, auto).
    • 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.
      • [Core Fix] Resolve OpenAI Protocol 400 Invalid Argument Error (Fix Issue #1267):

        • Remove Aggressive Default: Rolled back the default maxOutputTokens: 81920 setting introduced in v4.0.6 for OpenAI/Claude protocols. This value exceeded the hard limits of many standard models (e.g., gemini-3-pro-preview or native Claude 3.5), causing immediate request rejection.
        • Smart Thinking Config: Refined the thinking model detection logic to only inject thinkingConfig for models explicitly ending with -thinking. This prevents side effects on standard models (like gemini-3-pro) that do not support this parameter.
      • [Compatibility] Fix OpenAI Codex (v0.92.0) Error (Fix Issue #1278):

        • Field Scrubbing: Automatically filters out the non-standard external_web_access field injected by Codex clients in tool definitions, eliminating the 400 Invalid Argument error from Gemini API.
        • Enhanced Robustness: Added mandatory validation for the tool name field. Invalid tool definitions missing a name will now be automatically skipped with a warning instead of failing the request.
      • [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 TokenManager memory 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.
      • [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.
      • [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 TokenManager to 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 ModelCapacityExhausted errors (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_tokens for 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_PROCESS flags for Windows, enabling fully silent background execution without popup windows.
    • v4.0.5 (2026-01-28):

      • [Core Fix] Resolve Google OAuth 400 Error in Docker/Web Mode (Google OAuth Fix):
        • Protocol Alignment: Forced localhost as 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.
      • [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.
      • [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 RateLimitTracker and TokenManager to 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.
    • 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 like size and quality.
        • 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.md providing 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.
      • [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 TokenManager persistence logic to reuse modules::account core methods, ensuring atomicity of file locks and index updates.
      • [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_id injection.
        • 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.
      • [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.
      • [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 TokenManager core 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-After or 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.
    • 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_SIZE to 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 state parameter 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.
    • 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_mapping interface 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_FIELDS constant and move_constraints_to_description function to ensure models can understand original constraints through descriptions.
          • Example: {"minLength": 5}{"description": "[Constraint: minLen: 5]"}
        • Enhanced anyOf/oneOf Intelligent Flattening:
          • Rewrote extract_best_schema_from_union function 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_name function supporting explicit types and structural inference.
        • Pluggable Tool Adapter Layer (Tool Adapter System):
          • Created ToolAdapter trait providing customized Schema processing capabilities for different MCP tools.
          • Implemented PencilAdapter that 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_tool function.
        • 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_cached function 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
      • [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_PASSWORD or WEB_PASSWORD environment variables.
        • Intelligent Authentication Logic:
          • Management interfaces prioritize validating the independent password, automatically falling back to API_KEY if not set (ensuring backward compatibility).
          • AI Proxy interfaces strictly only allow API_KEY for authentication, achieving permission isolation.
        • 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.
    • 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.
    • 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.template caused by hardcoded data.tar.zst.
        • Implemented dynamic compression format detection using wildcards, ensuring compatibility across different .deb package versions.
      • [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_URL customization, perfectly adapting to remote VPS or NAS deployment scenarios.
      • [Normalization] Structural Cleanup & Unitization:
        • Cleaned up redundant deploy directories and legacy scripts, resulting in a more modern project structure.
        • Standardized the Docker image name as antigravity-manager and integrated a dedicated docker/ directory and manual.
      • [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 signature errors.
        • 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.
      • [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-After header 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.
      • [CLI Sync Optimization] Resolved Token Conflict & Model Config Cleanup (PR #1054):
        • Automatic Conflict Resolution: Automatically removes the conflicting ANTHROPIC_AUTH_TOKEN when setting ANTHROPIC_API_KEY, resolving sync errors for the Claude CLI.
        • Environment Variable Cleanup: Proactively removes environment variables like ANTHROPIC_MODEL that 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.
    • 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-task now strictly adheres to user redirection rules.
      • [Important Notice] Upstream Model Capacity Warning:
        • Capacity Exhausted: We have received numerous reports that upstream Google gemini-2.5-flash and gemini-2.5-flash-lite models 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-flash or gemini-3-pro-high) in "Custom Mappings" until upstream services recover.
      • [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.
    • 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-lite is 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-lite calls (e.g., background title generation, L3 summary compression) and preset mappings with the more stable gemini-2.5-flash.
        • User Notice: If you explicitly used gemini-2.5-flash-lite in "Custom Mappings" or "Presets", please update it to another model immediately, or you may continue to experience 429 errors.
      • [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.
      • [Core Fix] State Sync Strategy Update:

        • Consistency: Improved the immediate application logic for themes and resolved conflicts between App.tsx and Settings.tsx, ensuring UI consistency during configuration loading.
      • [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/definitions from all schema levels, fixing missing nested definitions.
        • Ref Flattening: Always run flatten_refs() to catch and handle orphan $ref fields.
        • 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.
      • [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_WINDOW flag to the cloudflared process 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.
    • v3.3.47 (2026-01-21):

      • [Core Fix] Image Generation API Parameter Mapping Enhancement (Fix Issue #911):
        • Background: The /v1/images/generations endpoint had two parameter mapping defects:
          • The size parameter only supported hardcoded specific dimension strings; OpenAI standard sizes (like 1280x720) were incorrectly fallback to 1:1 aspect ratio
          • The quality parameter was only used for Prompt enhancement and not mapped to Gemini's imageSize, unable to control the physical resolution of output images
        • Fix Details:
          • Extended common_utils.rs: Added parse_image_config_with_params function to support parsing image configuration from OpenAI parameters (size, quality)
          • Dynamic Aspect Ratio Calculation: Added calculate_aspect_ratio_from_size function, using mathematical calculation instead of hardcoded matching, supporting any WIDTHxHEIGHT format
          • Unified Configuration Parsing: Modified handle_images_generations function, removed hardcoded mapping, calling unified configuration parsing function
          • Parameter Mapping: quality: "hd"imageSize: "4K", quality: "medium"imageSize: "2K"
        • 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, quality parameter correctly mapped
          • ✅ No Breaking Changes: Claude, Vertex, Gemini protocols unaffected
        • Impact: Resolved OpenAI Images API parameter mapping issues, all protocols automatically benefit through common_utils
      • [Core Optimization] 3-Layer Progressive Context Compression:
        • Background: Long conversations frequently trigger "Prompt is too long" errors, manual /compact is 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 assistant messages (replaces with "...")
            • Fully preserves signature field, resolves Issue #902 (signature loss causing 400 errors)
            • Protects last 4 messages from compression
            • Compression rate: 70-95%
          • Layer 3 (90% pressure): Fork Session + XML Summary
            • Uses gemini-2.5-flash-lite to 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%
        • Technical Implementation:
          • New Module: context_manager.rs implements 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
        • 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 /compact needed, system handles automatically
          • Transparent: Detailed logs record each layer's trigger and effect
          • Fault-tolerant: Layer 3 returns friendly error on failure
        • Impact: Completely resolves context management issues in long conversations, significantly reduces API costs, ensures tool call chain integrity
      • [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
        • 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
        • 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
        • Technical Implementation:
          • Modified signature validation logic in request.rs
          • Added session_id parameter passing to signature check function
          • Added [Signature-Check] log series for tracking signature recovery process
        • 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 Request errors 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_args in json_schema.rs to 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.
        • Resolved Issues: Fixed failures in tools like local_shell_call and apply_patch when 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.
      • [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-image to default_monitored_models() in config.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)
        • 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: no header in all streaming responses
          • Multi-Protocol Coverage: Claude (/v1/messages), OpenAI (/v1/chat/completions), and Gemini native protocol all supported
        • 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
        • 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, uses OpenAIContentBlock::Text type
          • Gemini: gemini.rs:L17, L299-329 - Modified function signature to support mutable body, injects repair prompts
        • 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
    • 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, and tr.json. Added missing translations for account_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 a stopSequence caused unexpected output truncation when the model explained SSE-related content.
        • Fix Details: Removed the "[DONE]" marker from the Gemini request's stopSequences array.
        • Technical Notes:
          • Gemini stream termination is controlled by the finishReason field, not stopSequence
          • SSE-level "data: [DONE]" is handled separately in mod.rs
        • Impact: Resolved the issue where model output was prematurely terminated when generating content containing SSE protocol explanations, code examples, etc. (Issue #888).
      • [Deployment] Docker Build Dual-Mode Adaptation (Default/China Mode):
        • Dual-Mode Architecture: Introduced ARG USE_CHINA_MIRROR build 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.
      • [Stability] VNC & Container Startup Logic Hardening (PR #881):
        • Zombie Process Cleanup: Optimized cleanup logic in start.sh using pkill to precisely terminate Xtigervnc and websockify processes and clean up /tmp/.X11-unix lock 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 array input or custom tools like apply_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_text content blocks and mapped the developer role to system instructions.
        • requestId Unification: Unified requestId prefix to agent- 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.
      • [Core Fix] JSON Schema Array Recursive Cleaning Fix (Resolution of Gemini API 400 Errors):
        • Issue: Complex nested array schemas in tool definitions (like apply_patch or local_shell_call) were not being recursively cleaned, leading to 400 errors from Gemini API due to unsupported fields like const or propertyNames.
        • Fix: Implemented full recursive cleaning for all Value::Array types in the JSON Schema processor.
        • Impact: Significantly improves compatibility with tools that use complex array schemas.
    • 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_id support 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.
      • [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.json and vi.json caused 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.sh with 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: 2gb to eliminate container browser and GUI crashes.
      • [Core Feature] Fixed Device Fingerprint Synchronization on Account Switch:
        • Path Detection Improvement: Optimized the timing of storage.json detection 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.
      • [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 localStorage persistence 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.
    • 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 limits
          • Invalid signature: Proxy restarts clear in-memory signature cache, causing Google to reject old signatures
        • Solution - Context Purification:
          • New ContextManager Module: Implements token estimation and history purification logic
          • Tiered Purification Strategy:
            • Soft (60%+ pressure): Retains last ~2 turns of Thinking, strips earlier history
            • Aggressive (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_signature when purifying Thinking to avoid validation failures
        • Transparency Enhancement: Added X-Context-Purified: true response 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
    • 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_low to "低消費").
      • [Fix] Vietnamese Spelling Correction (PR #798, thanks to @vietnhatthai):
        • Fixed a typo in the Vietnamese refresh_msg (hiện đài -> hiện tại).
      • [Compatibility] Native Google API Key Support (PR #831):
        • Added x-goog-api-key Header Support:
          • The auth middleware now recognizes the x-goog-api-key header.
          • 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.
    • 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 scattered delta fragments 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/oneOf structures in tool definitions. It automatically extracts properties from the richest branch, fixing the long-standing malformed function call error.
        • 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, and format are now automatically converted into text hints and appended to the description, 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).
    • v3.3.41 (2026-01-18):

      • Claude Protocol Core Compatibility Fixes (Issue #813):
        • Consecutive User Message Merging: Implemented merge_consecutive_messages logic 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 EnterPlanMode tool calls, redundant arguments are now forcibly cleared to ensure full compliance with the official protocol, fixing instruction set validation failures.
      • 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.
    • 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.rs to 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.rs to 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 Grep and Glob tools, ensuring query is accurately mapped to path as 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.
      • Architectural Robustness:
        • Enhanced the global recursive cleaner clean_cache_control_from_messages to strip illegal cache_control tags that disrupt Vertex AI/Anthropic strict mode.
        • Updated comprehensive test examples in docs/client_test_examples.md covering all known 400 error scenarios.
    • v3.3.39 (2026-01-17):

      • Deep Proxy Optimizations (Gemini Stability Boost):
        • Schema Purifier Upgrade: Supported allOf merging, 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 Search to grep and introduced Glob-to-Include Migration (automatically moving Glob patterns like **/*.rs to the inclusion parameter), resolving Claude Code Error searching files errors.
        • Parameter Alias Completion: Unified parameter mapping logic for search_code_definitions and other related tools, and enforced boolean type conversion.
        • Shell Call Robustness: Enforced local_shell_call command parameter to return as an array, enhancing compatibility with Google API.
        • Dynamic Token Constraints: Automatically adjusted maxOutputTokens based on thinking_budget to satisfy strict API constraints; streamlined Stop Sequences to improve streaming output quality.
      • 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.
    • 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_retry flag 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.
    • v3.3.37 (2026-01-17):

      • Backend Compatibility Fix (Fix PR #772):
        • Backward Compatibility Enhancement: Added #[serde(default)] attribute to StickySessionConfig, ensuring that old configuration files (missing sticky session fields) can be correctly loaded, preventing deserialization errors.
      • 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.
      • 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-only exception to Entitlements.plist, explicitly allowing read access to global configurations.
    • 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_request logic. 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.
        • 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 return Extra inputs are not permitted 400 errors.
          • Fix: Implemented a global recursive cleanup function clean_cache_control_from_messages and integrated it into the Anthropic (z.ai) forwarding path, ensuring all cache_control fields are stripped before sending to upstream APIs.
        • 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.
      • Smart Warmup Logic Fix (Fix Issue #760):
        • Root Cause: Fixed legacy logic in the auto-warmup scheduler that incorrectly mapped gemini-2.5-flash quota status to gemini-3-flash.
        • Symptom: This caused "ghost warmups" where gemini-3-flash was triggered for warmup even when it had 0% quota, just because gemini-2.5-flash (unused/different bucket) reported 100%.
        • Fix: Removed all hardcoded 2.5 -> 3 mapping logic. The scheduler now strictly checks the quota percentage of the specific model itself, triggering warmup only when that actual model reports 100%.
      • Gemini 2.5 Pro Model Removal (Fix Issue #766):
        • Reason: Due to reliability issues, the gemini-2.5-pro model has been removed from the supported list.
        • Migration: All gpt-4 family aliases (e.g., gpt-4, gpt-4o) have been remapped to gemini-2.5-flash to ensure service continuity.
        • Impact: Users previously accessing gemini-2.5-pro via aliases will be automatically routed to gemini-2.5-flash. The model is no longer selectable in the frontend.
      • 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 PATH but exist in standard fallback locations.
      • Windows Console Flashing Fix (PR #769, Thanks to @i-smile):
        • No Window Execution: Fixed the issue where running CLI sync commands (like where checks) on Windows would briefly pop up a console window. Added CREATE_NO_WINDOW flag to ensure all background checks run silently.
      • 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_mode is set to off, instead of incorrectly showing "Enabled".
    • 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": true into ~/.claude.json during 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.
      • Deep UI/UX Refinements:
        • Unified Dialog Experience: Replaced the native browser window.confirm for "Restore Default Configuration" with the app's themed ModalDialog.
        • Icon & Badge Optimization: Updated the restore button icon to RotateCcw, and streamlined status badge text with whitespace-nowrap to 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.
      • Claude Thinking Signature Persistence Fix (Fix Issue #752):
        • Root Cause:
          • Response Collection: The streaming response collector (collector.rs) in v3.3.34 missed the signature field of thinking blocks when processing content_block_start events, causing signature loss.
          • Request Transformation: Historical message signatures were sent to Gemini without validation, causing Invalid signature in thinking block errors during cross-model switches or cold starts.
        • Fix Details:
          • Response Collector: Added logic to extract and persist the signature field in collector.rs, with unit test test_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.
        • Impact: Completely resolved Invalid signature in thinking block errors, supporting cross-model switches and cold start scenarios, ensuring Thinking models work stably in all modes.
      • 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 pendingLogsRef and 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 totalCount from 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 /monitor for a more intuitive experience.
    • v3.3.34 (2026-01-16):

      • OpenAI Codex/Responses Protocol Fix (Fix Issue #742):
        • 400 Invalid Argument Complete Fix:
          • Root Cause: The /v1/responses and other proprietary endpoints caused Gemini to receive empty bodies when the request body contained only instructions or input but lacked the messages field, 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 if messages is empty or missing, automatically transforms them into standard System/User message pairs, ensuring legal upstream requests.
        • 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_id extraction 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.
      • Claude Thinking Signature Encoding Fix (Fix Issue #726):
        • Root Cause: Fixed a regression introduced in v3.3.33, where the already Base64-encoded thoughtSignature was incorrectly re-encoded in Base64. This doubled encoding caused Google Vertex AI to fail signature verification, returning an Invalid signature error.
        • Fix Details: Removed redundant Base64 encoding steps in the Thinking, ToolUse, and ToolResult processing 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).
      • 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-pro could not match the backend-defined gemini-3-pro-high strict group.
        • Fix Details:
          • Instant Case Normalization: Restored case-insensitive matching in backend normalize_to_standard_id, ensuring variants like Gemini-3-Pro-High are correctly recognized.
          • Smart UI Key Mapping: Added automatic mapping for UI column names like gemini-pro/flash in frontend isModelProtected, ensuring lock icons correctly reflect backend protection status.
        • 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.
      • OpenAI Protocol Usage Statistics Fix (Pull Request #749, Thanks to @stillyun):
        • Root Cause: During OpenAI protocol conversion, Gemini's usageMetadata was not mapped to the usage field in OpenAI format, causing clients like Kilo to show zero token usage.
        • Fix Details:
          • Data Model Completion: Added standard usage field to OpenAIResponse.
          • Full-Chain Mapping: Implemented logic to extract and map prompt_tokens, completion_tokens, and total_tokens from both streaming (SSE) and non-streaming responses.
        • Impact: Completely resolved the issue where tools like Kilo Editor and Claude Code could not track token usage when using the OpenAI protocol.
      • Linux Theme Switch Crash Fix (Pull Request #750, Thanks to @infinitete):
        • Fix Details:
          • Disabled incompatible setBackgroundColor calls 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.
        • Impact: Resolved potential program freezes or hard crashes for Linux users when switching between dark/light modes.
    • v3.3.33 (2026-01-15):

      • Codex Compatibility & Model Mapping Fix (Fix Issue #697):
        • Instructions Parameter Support: Fixed the handling of the instructions parameter, 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 instructions or input fields into Responses mode.
        • Model Mapping Restoration & Normalization: Restored the logic that normalizes gemini-3-pro-low/high/pro to the internal alias gemini-3-pro-preview, with proper restoration to the physical high model name for upstream requests.
        • Opus Mapping Enhancement: Optimized default mappings to recognize opus keywords and ensure they route to the high-performance Pro preview tier by default.
      • OpenAI Tool Call ID & Reasoning Content Fix (Fix Issue #710):
        • Preserve Tool Call ID: Resolved the issue where tool_use.id was lost during OpenAI format conversion, ensuring both functionCall and functionResponse retain original IDs, fixing the Field required error when calling Claude models.
        • Native Reasoning Support: Added support for the reasoning_content field in OpenAI messages, correctly mapping it to internal thought blocks and injecting chain-of-thought signatures.
        • Tool Response Optimization: Fixed redundant part conflicts in tool role messages, ensuring strict compliance with upstream payload validation.
      • 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 in TokenManager to comprehensively assess account rate-limit and quota protection status.
        • Modified Files:
          • token_manager.rs: Added has_available_account() method to check for available accounts that are not rate-limited or quota-protected
          • handlers/claude.rs: Optimized Fallback mode logic from simple google_accounts == 0 to 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: Normalizes target_model for matching during request interception.
        • Web Search Downgrade Scenario: Even if a request is downgraded to gemini-2.5-flash due to web search, it is correctly normalized to gemini-3-flash and triggers protection.
        • Impact: Completely resolved quota protection failure, ensuring all three monitored models work correctly.
      • 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 /logs endpoint for external access.
      • Warmup Strategy Optimization (#699): Added unique session_id to warmup requests, limited max_tokens to 8, and set temperature to 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_ARGUMENT errors 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.
    • 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.
    • 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-Recovery logic 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 the Found multiple tool_result blocks with id error.
        • Anthropic Protocol Compliance: Ensures that generated request payloads strictly adhere to Anthropic's requirements for unique tool call IDs.
    • 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 pattern parameter in description or query fields 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 like lineNumbers.
        • Impact: Significantly improved the stability and compatibility of Gemini models in Claude Code CLI and other tool calling scenarios.
      • 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).
    • 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_stream function only handled text content, thinking content, and images, completely missing functionCall processing.
        • Fix Details:
          • Added tool call state tracking variable (emitted_tool_calls) to prevent duplicate sends
          • Added functionCall detection and conversion logic in parts loop
          • Built OpenAI-compliant delta.tool_calls array
          • Used hash algorithm to generate stable call_id
          • Included complete tool call information (index, id, type, function.name, function.arguments)
        • 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 + tools parameters can now properly receive Function Call data.
      • 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 long errors 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.
      • 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 1 caused by corrupted or empty index files.
    • v3.3.28 (2026-01-14):

      • OpenAI Thinking Content Fix (PR #604):
        • Fixed Gemini 3 Pro Thinking Content Loss: Added reasoning_content accumulation 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 injecting thinkingConfig to ensure proper thinking content output.
        • Unified Thinking Configuration: Injected unified thinkingBudget: 16000 configuration for all thinking models (Gemini 3 Pro and Claude thinking series), complying with Cloud Code API specifications.
        • Impact: This fix ensures the reasoning_content field works properly for Gemini 3 Pro and Claude Thinking models under OpenAI protocol, without affecting Anthropic and Gemini native protocols.
      • 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 experimental field storage and update_experimental() method in AxumServer, automatically triggering hot reload in save_config.
      • 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-virtual virtual 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
        • 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.
    • 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).
    • 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/remaining fields. It now directly uses the percentage field, 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.
      • MCP Tool Compatibility Enhancement (Fix Issue #593):
        • Deep cache_control Cleanup: Implemented multi-layer cache_control field cleanup mechanism, completely resolving "Extra inputs are not permitted" errors caused by cache_control in 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, removing cache_control fields from any location.
          • Final Safety Net: Performs deep cleanup again after building Gemini request body and before sending, ensuring no cache_control fields are sent to Antigravity.
        • Smart Tool Output Compression: Added tool_result_compressor module 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_control fields in thinking blocks, while reducing 429 error probability through smart compression of oversized tool outputs.
      • API Monitor Account Information Recording Fix:
        • Fixed Image Generation Endpoint: Resolved the missing X-Account-Email response header issue in the /v1/images/generations endpoint. The monitoring panel now correctly displays account information for image generation requests.
        • Fixed Image Editing Endpoint: Resolved the missing X-Account-Email response header issue in the /v1/images/edits endpoint, ensuring account information for image editing requests is properly logged.
        • Fixed Audio Transcription Endpoint: Resolved the missing X-Account-Email response header issue in the /v1/audio/transcriptions endpoint, 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.
      • 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.
    • 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.
      • 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.
    • 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-5 from "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.
    • 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).
      • 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_first logic 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).
    • 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-5 when enabling protection, UI enforces at least one model selection
      • 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.tsx component 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
      • 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 status field index (50x faster stats queries), optimized get_stats() from 3 full table scans to 1 (66% faster)
        • Paginated Loading: List view excludes large request_body/response_body fields (90%+ data reduction), added get_proxy_logs_paginated command (20 items/page), frontend "Load More" button
        • On-Demand Details: Added get_proxy_log_detail command, 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.
    • 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) to path (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.
      • 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_account lock 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.
      • 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 n parameter, allowing a single request to return multiple candidates.
        • Added the multi-candidate support patch for streaming responses (SSE), ensuring cross-platform functional parity.
      • 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 --cask with automatic AppImage permission configuration.
      • 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! to debug!, 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.rs and response.rs, added cleanup_old_logs() automatic cleanup function.
    • 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-thinking for 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_control fields 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: querypattern, Read: pathfile_path), resolving Claude Code tool call validation errors.
        • Configurable Safety Settings: Added GEMINI_SAFETY_THRESHOLD environment 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.effort parameter, 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.
    • 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_MODEL for 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 functionDeclarations and googleSearch
        • SSE Parse Error Recovery Mechanism:
          • Added parse_error_count and last_valid_state tracking 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
        • 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.
      • 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_forbidden check in lowQuotaCount filter 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.
    • 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 required errors.
        • 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 -thinking suffix (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.
      • 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 quotaResetDelay could not be correctly parsed.
          • Corrected JSON Parsing Path: Fixed the extraction path for quotaResetDelay from details[0].quotaResetDelay to details[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 RateLimitReason enum to distinguish between QUOTA_EXHAUSTED (quota exhausted) and RATE_LIMIT_EXCEEDED (rate limit) types, setting different default wait times based on type (quota exhausted: 1 hour, rate limit: 30 seconds).
        • 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.
    • v3.3.12 (2026-01-02):

      • Critical Fixes:
        • Fix Antigravity Thinking Signature Errors: Completely resolved 400: thinking.signature: Field required errors 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_validator sentinel 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.
    • 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-flash would 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.
        • Fix Gemini 3 Python Client Crash:
          • Removed maxOutputTokens Restriction: Removed the logic that forcibly set maxOutputTokens: 64000 for 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.
      • 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.
      • Critical Fix:
        • Fixed Gemini 3 Python Client Crash: Removed the logic that forced maxOutputTokens: 64000 for 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.
      • 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-dir path
          • Portable mode data/user-data directory
          • System default paths (macOS/Windows/Linux)
        • 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_methods from generic Any to 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 with allow_origin(Any).
        • Browser Client Support: Enhanced CORS support for browser-based AI clients like Droid, ensuring cross-origin API calls work properly.
      • 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-kit library, supporting keyboard navigation and accessibility features.
    • v3.3.10 (2026-01-01):

      • 🌐 Upstream Endpoint Fallback Mechanism (Core Thanks to @karasungur PR #243):
        • Multi-Endpoint Auto-Switching: Implemented prod → daily dual-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.
      • 📊 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=debug to view full request/response JSON for deep debugging.
      • 🎨 Imagen 3 Generation Enhancements:
        • New Resolution Support: Added support for -2k resolution 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.
      • 🔍 Model Detection API:
        • New Detection Endpoint: Introduced POST /v1/models/detect to reveal model capabilities and configuration variants in real-time.
        • Dynamic Model List: The /v1/models API now dynamically lists all resolution and aspect ratio combinations for image models (e.g., gemini-3-pro-image-4k-21x9).
      • 🐛 Background Task Downgrade Model Fix:
        • Fixed 404 Errors: Corrected background task downgrade model from non-existent gemini-2.0-flash-exp to gemini-2.5-flash-lite, resolving 404 errors for title generation, summaries, and other background tasks.
      • 🔐 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.
    • v3.3.9 (2026-01-01):

      • 🚀 Multi-Protocol Scheduling Alignment: Scheduling Mode now 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 quotaResetDelay and 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.
    • 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, and Fallback modes 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.
      • 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.
      • 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-16x9 and all custom IDs in terminals or clients.
      • 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 TokenManager session 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-flash for 100% success rate.
        • Thought Signature Auto-capture: Refined thoughtSignature extraction 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.
    • 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 like model, prompt, n, size, and response_format.
        • New Image Editing & Variations: Adapted /v1/images/edits and /v1/images/variations endpoints.
        • Protocol Bridging: Implemented automatic structural mapping and authentication from OpenAI image requests to the Google Internal API (Cloud Code).
    • 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), and 401 (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).
    • 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_image block parsing and added support for file:// 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 for thoughtSignature.
        • 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.
    • 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: true markers in historical ContentBlock::Thinking messages. This issue led to 400 INVALID_REQUEST_ERROR regardless of whether thinking was explicitly enabled, especially in multi-turn conversations.
    • 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_result content 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 thoughtSignature storage mechanism. The system now captures real-time signatures from streaming responses and automatically backfills them for subsequent requests missing signatures, significantly reducing 400 INVALID_ARGUMENT errors.
      • Optimizations & Bug Fixes:
        • Hardened Data Models: Unified and refactored the internal GroundingMetadata structures, 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 thoughtSignature across fragmented streaming chunks.
    • 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_control tags or thought: true fields 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 role tags from system instructions and enhanced explicit filtering for cache_control to guarantee maximum payload compatibility.
        • Enhanced Connectivity & Web Search Compatibility:
          • Search Compatibility: Added support for googleSearchRetrieval and other next-gen tool definitions. Now provides standardized googleSearch payload 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, resolving 400 INVALID_ARGUMENT errors 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.
      • 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.
      • Stability Enhancements:
        • Resolved Rust compilation and test case errors caused by the latest model field updates, hardening the data model layer (models.rs).
    • 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/responses endpoint and intelligent instruction conversion (SSOP) for shell tool calls.
          • Claude CLI Reasoning Enhancement: Introduced global thoughtSignature storage and backfilling logic, completely resolving signature validation errors when using Claude CLI with Gemini 3 series models.
        • OpenAI Protocol Stack Refactor:
          • New Completions Endpoint: Fully added support for /v1/completions and /v1/responses routes, 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.
        • 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_access configuration toggle; when enabled, listens on 0.0.0.0 to allow LAN device access.
          • Security Warnings: Frontend UI provides clear security warnings and status hints.
      • 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.
    • v3.2.8 (2025-12-26):

      • Bug Fixes:
        • OpenAI Protocol Multi-modal & Vision Model Support: Fixed the 400 error caused by content format 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.
    • 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, not and 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.
        • Custom Database Import Fix: Fixed the "Command not found" error for the "Import from Custom DB" feature caused by the missing import_custom_db command registration. Users can now properly select custom state.vscdb files for account import.
        • Proxy Stability & Image Generation Optimization:
          • Smart 429 Backoff Mechanism: Deeply integrated RetryInfo parsing 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_gen requests, enabling high-speed rotation across multiple accounts and completely resolving Imagen 3 429 errors.
    • 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 stopSequences for 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 GoogleSearch and FunctionCall, 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 RetryInfo to wait and retry automatically when rate-limited, reducing unnecessary account rotation.
            • Resume Fallback: Implemented auto-stripping of Thinking blocks for /resume 400 signature errors, improving session recovery success.
            • Extended Schema Support: Improved recursive JSON Schema cleaning and added filtering for enumCaseInsensitive and other extension fields.
        • Test Suite Hardening: Fixed missing imports and duplicate attribute errors in mappers test modules, and added new tests for content block merging and empty output completion.
    • v3.2.1 (2025-12-25):

      • New Features:
        • Custom DB Import: Support importing accounts from any state.vscdb file path, facilitating data recovery from backups or custom locations.
        • Real-time Project ID Sync & Persistence: Captured and saved the latest project_id to 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 functionCall results (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 stop sequences, response_format (JSON mode), and custom tools.
      • 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 assistant messages 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 system messages caused errors.
    • v3.2.0 (2025-12-24):

      • Core Architecture Refactor:
        • Proxy Engine Rewrite: Completely modularized proxy subsystem with decoupled mappers, handlers, and middleware for superior maintainability.
        • Linux Process Management: Implemented smart process identification to distinguish Main/Helper processes, ensuring graceful exit via SIGTERM with SIGKILL fallback.
      • 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.
    • See Releases for earlier history.

👥 Contributors

lbjlaq XinXin622 llsenyue salacoste 84hero karasungur marovole wanglei8888 yinjianhong22-design Mag1cFall AmbitionsXXXV fishheadwithchili ThanhNguyxn Stranmor Jint8888 0-don dlukt Koshikai hakanyalitekin Gok-tug

Special thanks to all developers who have contributed to this project.

🤝 Special Thanks

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):


If you find this tool helpful, please give it a ⭐️ on GitHub!

Copyright © 2025 Antigravity Team.