CHANGELOG_EN.md
Complete version history for Antigravity Tools. Return to project home at README_EN.md.
update_account_json to an async function that dispatches synchronous disk I/O and global account locks to Tokio's blocking thread pool (spawn_blocking). This prevents disk serialization contention from blocking Tokio worker threads and causing runtime starvation under high concurrency.get_token scheduling path, file persistence after OAuth token refreshes and project_id resolution is now offloaded to background tasks after updating memory caches immediately, preventing disk write overhead from consuming the 5-second timeout window.message_start, fallback text ContentBlock, and message_stop events, eliminating peek loop timeouts.collect_stream_to_json always returns at least one valid text ContentBlock when parsing empty upstream streams, complying strictly with Anthropic client non-empty content constraints.x-goog-user-project headers on content requests to ensure proper upstream PA service authentication.trailing characters at line ...), the parser automatically recovers the valid full Account data and atomically rewrites a clean file back to disk, completely preventing accounts from silently disappearing from the UI and causing cascading 429 rate limit outages.ACCOUNT_FILE_LOCKS) to ensure strict serialized thread safety across concurrent quota refreshes, 429 rate-limit event writes, and last_used touch operations.resolveQuotaModels. When a pinned selector matches a real quota model name (such as gemini-3.7-flash-low, gemini-3.7-flash-high, etc.), it renders as an independent discrete chip (model:${id}) instead of being collapsed and deduplicated into a single legacy category:gemini-flash slot that was hardcoded to older models.to_lowercase() matching in Claude protocol and common handlers to capture all Google thought signature error variants (Invalid thought signature., thought_signature, thoughtsignature), reliably triggering automatic retry and signature stripping.gemini-3.x (Flash / Pro families) and gemini-3.7 in is_model_compatible, ensuring thought signatures persist correctly across laddered variant turns.error! logs when load_app_config() fails in lib.rs, converting silent exits into actionable error logs and clarifying that services were not started.tokio::spawn(async {}) handles from ProxyServiceInstance, leaving unified lifecycle management to AdminServerInstance.{{name}}, {{error}} interpolation parameters to avoid runtime UI render issues.gemini-3.7-flash, gemini-3.1-flash-lite, claude-opus-4-6, gpt-oss-120b-medium with @lobehub/icons official brand icons.useProxyModels to eliminate duplicate model entries caused by sub-tier suffixes.ClaudeThinking reasoning variants for Claude models and disabled unsupported max variants for Gemini 3 series.DETACHED_PROCESS with CREATE_NO_WINDOW (0x08000000) across Cloudflared, tar decompression, and manual executable calls to eliminate console windows popping up.std::process::Command and tokio::process::Command extensions.ContextManager compressed thinking content to "...", it preserved the original thoughtSignature, causing Google API to fail validation with 400 INVALID_ARGUMENT: Invalid thought signature._is_valid_version() semantic version format validation and switched Method 2 to curl -w '%{url_effective}' to avoid header parsing whitespace issues.thoughtSignature placeholders to prevent context from exceeding the 1M token ceiling.usageMetadata, middleware uses the local token estimation engine to calculate input_tokens, preventing blank token stats in monitor logs.const Keyword Normalization for Computer Use MCP (Issue #3327):
{"const": "value"} into standard {"type": "...", "enum": ["value"]} compatible with Gemini/Vertex Schema Proto.anyOf/oneOf unions and deeply nested objects containing const fields.response_format.json_schema Structured Outputs (PR #3324):
response_format: { type: "json_schema", json_schema: { ... } }.$ref/$defs definitions, converting schemas into Gemini generationConfig.responseSchema standards with responseMimeType: "application/json".https://cp.cloudflare.com/generate_204 via standard HTTPS CONNECT tunnels, eliminating false 407 Proxy Authentication Required errors.username and password from http(s)://user:pass@ip:port proxy URLs and injects HTTP Basic Auth.gemini-3.7-flash, gemini-3.7-flash-low, gemini-3.7-flash-medium, gemini-3.7-flash-high, and gemini-3.7-flash-tiered.input_audio (Base64 + format) and audio_url, converting seamlessly to Gemini inlineData/fileData.wav, mp3, m4a, ogg, flac, aiff from Data URLs, remote HTTP links, local files, and raw Base64.invalid_grant and disables accounts only after 2+ consecutive confirmed failures.validation_url / appeal_url from Google RPC responses and flags accounts in the UI with a quick-action verification button.