github lbjlaq/Antigravity-Manager v5.0.0
Antigravity Tools v5.0.0

one hour ago
  • [Adaptive QoS Scheduling System via Pure Peer Calibration & Ladder Probing] (Fixes #3720, PR #3725, Thanks to @jeikl, @cubelikeplayDaniel, @lbjlaq):
    • Real-time Time-To-First-Token (TTFT) Metric: Captured pure elapsed time from request dispatch to the first effective chunk, completely eliminating noise from output length or streaming transfer to serve as the physical benchmark for silent QoS throttling. (Fixes #3720, PR #3725, Thanks to @jeikl)
    • 5-Tier Pure Peer Baseline & Anti-False-Positive Shield: Peer baselines strictly exclude: self, heterogeneous tiers, disabled accounts, 429 rate-limited/zero-quota accounts, Jailed, Probing, Suspicious, and Half-Open accounts to prevent baseline poisoning; thinking models receive a dynamic 35s latency compensation to prevent false positives during deep reasoning; global outage brake halts strikes when the peer average exceeds 20s, coupled with an 8s~20s hysteresis deadband to prevent oscillation. (Fixes #3720, PR #3725, Thanks to @jeikl)
    • Transient Tagging & Immediate Session Handover: Tags account as Suspicious on the first strike (instantly excluded from peer calculations, with the scheduler activating drain mode); 2 strikes within a 5-minute window isolates the account in jail and triggers immediate sticky session unbinding, allowing P2C to rebind healthy accounts with 100% Prompt Cache efficiency. (Fixes #3720, PR #3725, Thanks to @jeikl)
    • Background Ladder Probing & Half-Open Anti-Flapping: Cooldown ladders scale at 2m -> 5m -> 10m -> 15m -> 20m -> 30m, resetting the timer at each step; dispatches lightweight synthetic "Hello" probes (< 5 tokens, 8s hard abort timeout); passing probes triggers Half-Open probation requiring 2 consecutive real requests under 8s before full release; 30-minute penalty memory retention prevents rapid looping. (Fixes #3720, PR #3725, Thanks to @jeikl)
    • One-Click QoS Jail Release & Remaining Cooldown Display: Displayed real-time QoS cooldowns on cards, tables, and monitor logs, providing an instant manual release button and backend API (release_account_qos_jail) across all 12 supported locale catalogs. (Fixes #3720, PR #3725, Thanks to @jeikl)
  • [Official Model Suite Upgrade, Tiered Thinking Protocol & Argon Standalone Quota Isolation] (Fixes #3735, Ref #3720, Fixes #3737, Thanks to @jeikl, @cubelikeplayDaniel, @xiaozhi-xmu, @chenshin166-arch):
    • Decoupled Model Ingestion from quotaInfo: Completely eliminated the legacy if let Some(quota_info) = info.quota_info filter gate in quota.rs, benchmarking exclusively against official model catalogs to preserve Gemini models (gemini-3.8-flash-*, gemini-3.1-flash-lite, etc.) when upstream omits model-level quotaInfo, permanently resolving local 503 scheduling rejections. (Fixes #3737, Thanks to @xiaozhi-xmu, @chenshin166-arch, @jeikl)
    • Tiered Thinking Protocol (Thinking Budget vs Thinking Level): Governed new-generation tiered models (Gemini 4 Argon, Claude 5.5) exclusively with thinkingLevel ("LOW", "MEDIUM", "HIGH") and traditional models with thinkingBudget, eliminating HTTP 400 dual-field conflicts. (Fixes #3735, Thanks to @jeikl)
    • Disabled Model Variant Ingestion Filtering & False Quota Elimination: Ingested the disabled: Option<bool> field and is_disabled() helper in OfficialModelInfo, intercepting -disabled / _disabled suffixes at the top of the baseline check and stripping them from normalize_to_standard_id and the account pool; purged false badges and progress bars from frontend cards. (Fixes #3735, Thanks to @jeikl)
    • Gemini 4 Argon Dispatch Closure & Standalone Quota Inheritance: Extended candidate filtering with token_supports_advanced_model and standalone bucket checks (normalized_target != "claude" && token.model_quotas.contains_key(...)) supporting camelCase and snake_case properties, eliminating phase-two 503 rejections while preserving Claude 5.5 / 4.6 pool separation. (Fixes #3735, Thanks to @jeikl)
    • Deprecate Obsolete gemini-pro-agent Codename: Standardized gemini-3.1-pro mappings in variant_mapping.rs from deprecated internal codename gemini-pro-agent to official physical model gemini-3.1-pro-high. (Fixes #3737, Thanks to @jeikl)
    • Claude Parity for Dynamic Model Candidate Rewriting: Integrated token_manager.resolve_dynamic_model_for_account into the Claude handler post-scheduling to match OpenAI and Gemini parity for adaptive per-account model rewriting. (Fixes #3737, Thanks to @jeikl)
    • Standardized Context Window & Output Limits: Standardized context and output limits across OpenAI (/v1/models), Claude (/v1/models), and Gemini (/v1beta/models) metadata endpoints. (Fixes #3735, Thanks to @jeikl)
  • [OpenAI Responses API Structured Outputs, Pipeline Tool Conflict Mitigation & Zero-Loss Unwrapping] (Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel, @jeikl):
    • Inbound Protocol Normalization: Supported text.format specifications in OpenAIRequest for the Responses API, extracted effective_response_format in request mapping, and normalized it into Gemini native generationConfig.responseSchema and responseMimeType: "application/json", unblocking Codex Desktop's automatic thread naming (thread_title) and summary generation. (Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
    • Background Thinking Budget Convergence & Timeout Prevention: Explicitly honored reasoning.effort: "low" to constrain the thinking budget to 1024 tokens for background short tasks, eliminating 30-second hard timeout aborts by the Codex client during thread title generation on high-effort models. (Fixes #3710, Thanks to @cubelikeplayDaniel)
    • Unified Tool Conflict Mitigation in Pipeline (Pipeline First): Moved the mutual exclusivity handling of responseSchema and tools / toolConfig down to align_google_request_prefix_topology_with_model in src/proxy/pipeline/inbound.rs, suppressing canonical_tools and canonical_tool_config across all protocols when responseSchema is active to eliminate upstream HTTP 400 rejections. (Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
    • Guarded Outer Unwrap & Zero-Loss Conversational Protection: Guarded convert_chat_response_to_responses with is_structured_output to preserve 100% of conversational commentary in normal turns (preventing conversational data loss), while applying unwrap_outer_code_fence_if_structured strictly when the entire response is enclosed in markdown fences to unblock Codex Desktop's native JSON.parse without corrupting embedded code blocks. (Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
  • [Mini Floating Window Native macOS Transparency, Bidirectional Millisecond Sync & Deadlock-Free Scheduling] (Fixes #3733, Ref #3718, #3721, Ref #3738, Ref #3741, Thanks to @lbjlaq, @cubelikeplayDaniel, @jeikl):
    • Native macOS Transparency & Window Drag Permissions: Added Tauri macos-private-api and native macOSPrivateApi: true configuration, eliminating WebKit black background edges and bringing native frosted glass transparency; injected transparency scripts on the first frame and declared drag/always-on-top capabilities. (Fixes #3733, Ref #3718, PR #3738, Thanks to @lbjlaq)
    • Dark/Light Adaptation & Cross-Window Millisecond i18n Sync: Mini view dynamically inherits theme changes; bound app://theme-changed and app://language-changed cross-window events for bidirectional seamless synchronization across all 12 localization files. (Fixes #3733, PR #3738, Thanks to @lbjlaq)
    • Native Main Thread Scheduling & Win32 Deadlock Elimination: Introduced switch_to_main_window and hide_mini_view commands in the Rust backend, dispatching main window reconstruction and reactivation (exit_lightweight_mode) fully onto the OS native UI main thread (app.run_on_main_thread), completely eliminating Win32 message loop deadlocks and spinlock hangs when creating windows cross-thread on Windows. (Ref #3733, Ref #3738, Ref #3741, Thanks to @jeikl)
    • Mini Window React Router 404 Fallback & Synchronous Resolution: Enhanced synchronous resolution in App.tsx using window.location.search (?mini=1) and __TAURI_INTERNALS__ to eliminate routing re-entry caused by asynchronous IPC window label delays; supplemented createBrowserRouter with errorElement and index.html wildcard fallbacks. (PR #3741, Thanks to @cubelikeplayDaniel)
    • Lightweight Mode Seamless Fade-in on Render Ready: Kept main window invisible by default (visible: false) during reconstruction, fading in and focusing smoothly only after ThemeManager mounts theme and configurations, completely eliminating black screen/white frame flickers before WebView2 paints the React DOM. (Ref #3733, Ref #3738, Thanks to @jeikl)
  • [Cross-Model Signature Architecture Refactor: Aligning with Official Antigravity Sentinel Discipline & Eliminating Claude Concurrent Tool 400 Errors] (Thanks to @jeikl, @cubelikeplayDaniel):
    • Official Base64 Sentinel Parity: Standardized the global sentinel constant from plaintext to the official 44-byte Base64 ciphertext c2tpcF90aG91Z2h0X3NpZ25hdHVyZV92YWxpZGF0b3I=; retained backward-compatible recognition for legacy plaintext sentinels (LEGACY_SENTINEL_SIGNATURE) to guarantee zero regression on cached turns. (Thanks to @jeikl)
    • Claude Zero-Sentinel & Concurrent Tool Cleanliness: Fully exempted Claude models from synthetic sentinel injection; in concurrent tool use scenarios, signatures exclusively anchor on the first non-thought part (first tool or prose), while all subsequent concurrent tools strictly omit thoughtSignature, permanently eliminating Invalid signature in thinking block 400 rejections. (Thanks to @jeikl)
    • Claude ➔ Gemini Transition Foreign Tool Passports: When switching from Claude back to Gemini, the inbound Gatekeeper automatically detects foreign Claude tools carrying the toolu_ prefix and equips every foreign functionCall with a Base64 sentinel passport for seamless Gemini engine verification bypass, while strictly keeping prose parts pure without sentinels. (Thanks to @jeikl)
    • Gemini ➔ Claude Transition History Sanitization & Zero-Persistence: When switching to Claude, the inbound pipeline completely purges legacy Gemini short signatures and sentinels; enforced strict guards in normalize_and_heal_signature so neither plaintext nor Base64 sentinels ever persist into SQLite storage. (Thanks to @jeikl)
  • [Streaming Giant Tool Call Grace Period Transition, Dynamic Timeout Budget Convergence & Claude 429 Elimination] (Fixes #3739, Fixes #3713, Ref #3506, Ref #3525, Ref #3720, PR #3740, PR #3714, PR #3742, Thanks to @cubelikeplayDaniel):
    • Streaming Giant Tool Call Buffer Transition: Relaxed the cliff transition condition to matches!(phase, StreamPhase::Thinking | StreamPhase::Streaming), automatically transitioning to StreamPhase::Transition with a 180s grace period when generating 10,000+ tokens giant functionCall payloads, preventing premature termination at 120s. (Fixes #3739, PR #3740, Thanks to @cubelikeplayDaniel)
    • TTFT Header Watchdog & Total Budget Convergence: Tightened primary streaming response header watchdog to a 30s base (elastically extended up to 45s for large payloads) with a 25s fallback margin, bounding total fallback budget to 5570s (30s for non-streaming) and eliminating 85s140s hangs on congested endpoints. (Fixes #3713, PR #3714, Thanks to @cubelikeplayDaniel)
    • Integrated FailureStatusTracker into Claude Protocol: Fully integrated FailureStatusTracker into claude.rs retry loops, recording GATEWAY_TIMEOUT on network errors and downgrading final status to 504 Gateway Timeout unless all attempts were genuine 429s, eliminating 64-second client backoff freezes. (PR #3714, Thanks to @cubelikeplayDaniel)
    • Refactored Multi-Day Hard Quota Exhaustion Detection: Accurately identified responses with quotaResetDelay > 30min (e.g., 68h) as account-level hard quota exhaustion, triggering 50ms rapid rotation in multi-account pools; applied 30s cooldown and unbinding upon full endpoint network errors. (PR #3714, Thanks to @cubelikeplayDaniel)
    • Claude Thinking Budget Official Default Fallback: In resolve_custom_budget, ensured Claude models return None when claude_budget is <= 0, enabling InboundThinkingPipeline to retrieve the authoritative default budget from official_info.thinking_budget (e.g. 1024). (Ref #3735, PR #3742, Thanks to @cubelikeplayDaniel)
  • [Asynchronous High-Performance Batch Import & Cold Start Sub-Second Rendering] (Fixes #3726, Thanks to @jeikl):
    • Streaming Concurrency & Backpressure Control: Added batch_import_accounts streaming pipeline with buffer_unordered(6) bounding in-flight tasks, slashing 494 account import durations from 28 minutes to 15~20 seconds (60x speedup) and eradicating memory spikes and OOM termination. (Fixes #3726, Thanks to @jeikl)
    • Full-Quota Persistence on Import & Cold-Start Lock Decoupling: Concurrently fetched tokens and quotas during import so accounts write to disk with 100% full quota and tier data; switched list_accounts read locks to non-blocking try_read() to prevent the backend server from stalling frontend instant rendering during cold starts. (Fixes #3726, Thanks to @jeikl)
    • Local State Snapshot Hydration Eliminating Empty State Flashes: Introduced localStorage synchronous snapshot hydration in useAccountStore, painting previously loaded account lists and quota matrices on the very first frame to eradicate "0 accounts" empty flashes. (Fixes #3726, Thanks to @jeikl)
    • Anti-Throttling Jitter Architecture & Strict Idempotency: Injected 30ms ~ 90ms dynamic hash jitter and integrated 429 rate limit automatic 1.5s backoff retries; enforced lowercase email and Refresh Token deduplication with in-place upserts and orphan file self-healing. (Fixes #3726, Thanks to @jeikl)
  • [System Tray Tiered Quota Awareness, CLI (agy) Credential Isolation & Native Account Switching] (Fixes #3719, Fixes #3728, Fixes #3686, Thanks to @Wiojelt, @bkspi, @Ran-Xing, @lbjlaq, @jeikl):
    • Cross-Platform Tray Hover Quota Tooltip & Status Bar Title: Implemented rich-text hover tooltips strictly conforming to Windows 128-char limits; displayed native persistent percentage titles on macOS status bars (e.g. C:85% G:100%); added Mini HUD one-click shortcut in tray context menu. (Fixes #3719, Thanks to @Wiojelt, @jeikl)
    • Linux Window Focus Stealing & Auto-Spawn Root-Cause Eradication: Removed dangerous external --version invocations in favor of static file canonicalization, symlink traversal, and lightweight asar in-memory parsing, eliminating focus stealing and accidental window reactivation while introducing a 60s global cache. (Fixes #3728, Thanks to @bkspi, @lbjlaq)
    • Decoupled Classic Account Switching from Overwriting CLI Credentials: Introduced sync_agy_cli toggle to avoid wiping CLI-specific credentials during classic switching, completely resolving credential stomping across client variants. (Fixes #3728, Thanks to @lbjlaq)
    • Native Command Line Tooling Suite (at / antigravity-tools): Rolled out a lightweight terminal account switcher supporting at list, at current, and at switch [query], with --continue for seamless session recovery. (Fixes #3686, Thanks to @Ran-Xing, @lbjlaq)
  • [Proxy Pool Leak Prevention, Multi-Protocol Auth Enhancements & Local Agent Probe Compatibility] (Fixes #3703, Fixes #3729, Fixes #3730, PR #3708, PR #3706, Thanks to @CarlitoDon, @cubelikeplayDaniel, @Ran-Xing, @lbjlaq):
    • Bound Account Anti-Direct Leak Safeguard: Refactored dedicated proxy routing so that if a bound proxy is unhealthy and no public pool node exists, the request strictly continues over the bound proxy (preferring network errors over silent direct connections), eradicating source IP leaks to Google authorization systems. (Fixes #3703, PR #3706, Thanks to @cubelikeplayDaniel)
    • WHATWG URL Credential Cleaning & Ciphertext Containment: Sanitized passwords before usernames across HTTP/HTTPS/SOCKS5h; refused to forward ag_enc_ ciphertext in CONNECT headers upon migration-induced decrypt failures. (PR #3706, Thanks to @cubelikeplayDaniel)
    • Hermes Agent & Local Probe Endpoint Compatibility: Added /props, /v1/props, /version, and /v1/version read-only endpoints, injecting context_length and max_tokens into /v1/models to eliminate handshake probe warnings and 404 errors. (PR #3708, Thanks to @CarlitoDon)
    • Gemini Protocol URL Query (?key=) Auth Support: Refactored credential extraction pipelines to support Authorization: Bearer, x-api-key, x-goog-api-key, and URL Query ?key=. (Fixes #3729, Thanks to @Ran-Xing, @lbjlaq)
    • Web/Headless Mode In-Memory Hot Reloading: Fully synchronized only_raw_quota_models write locks and client cache invalidations for 100% feature parity with GUI desktop environments. (Fixes #3730, Thanks to @Ran-Xing, @lbjlaq)
  • [Cross-Platform AI Agent / CLI Identity Normalization & Anti-Throttling Prompt Defense] (Ref #3720, Thanks to @jeikl):
    • Broad-Spectrum Agent Identity Normalization: Normalized non-official Antigravity Harness openings (OpenCode, OpenClaw, Grok Build, Cursor, Cascade, Cline, etc.) to official Antigravity identities, stripping external fingerprints to maintain priority scheduling. (Ref #3720, Thanks to @jeikl)
    • Adaptive Dual Scan Window & Essential Prompt Protection: Expanded system prompt header scan windows to the first 8 sentences or 1500 characters to penetrate plugin context shims; instituted top-priority whitelist guards ensuring essential prompts like JeikCode pass through completely unaltered. (Ref #3720, Thanks to @jeikl)
  • [Gemini Upstream Protocol Strict Compliance, Tool Ordering & Token Estimation Hardening] (Fixes #3695, PR #3696, PR #3702, PR #3705, Thanks to @cubelikeplayDaniel):
    • Multi-Turn Role Strict Alternation (user <-> model): Merged continuation prompts when previous turns were user roles, preventing consecutive duplicate user turns from violating Google 400 validations. (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Native & Function Tool Topological Ordering: Preserved relative declaration priority between custom function tools and native tools (GoogleSearch, CodeExecution). (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Google countTokens Dedicated Envelope Cleaning: Introduced align_count_tokens_envelope to strip extraneous project, model, userAgent, and safetySettings, eliminating top-level envelope pollution 400 errors. (Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • PipelineTokenEstimator Tool Thought Signature Accounting: Extracted implicit thought signatures in Claude tool_use and server_tool_use blocks during token estimation, preventing deep tool sessions from undercounting and breaching 200k auto-compact thresholds. (Ref #3697, PR #3705, Thanks to @cubelikeplayDaniel)
    • Session Fingerprint Multimodal Stabilization & Responses Concurrency Guards: Stabilized single-character short input fingerprints and summarized image metadata features to prevent hash avalanches; managed completions concurrency with RAII Drop Guards. (Ref #3697, PR #3699, PR #3700, Thanks to @cubelikeplayDaniel)

  • [基于纯净同侪校准与阶梯探针的自适应 QoS 调度系统] (Fixes #3720, PR #3725, Thanks to @jeikl, @cubelikeplayDaniel, @lbjlaq):
    • 真实首包延迟 (TTFT) 瞬态感知: 以发出请求至收到上游首个有效 Chunk 的纯粹时间为核心指标,彻底排除输出代码量与流式传输的干扰,作为判定静默 QoS 分桶降级的权威物理依据。(Fixes #3720, PR #3725, Thanks to @jeikl)
    • 五重纯净同侪基线比对与防误杀体系: 同类账号基线严格排除自身、异构 Tier、本地禁用、429 限流/零配额、小黑屋 (Jailed)、探测中 (Probing)、瞬态可疑 (Suspicious) 以及缓刑 (HalfOpen) 账号,彻底杜绝劣币毒化基准;为深度思考模型提供 35s 动态时间补偿,杜绝推理耗时误杀;设置全局雪崩制动刹车(同行均值 >= 20s 时不滥杀)与 8s~20s 迟滞死区消除边界震荡。(Fixes #3720, PR #3725, Thanks to @jeikl)
    • 瞬态打标与会话即刻解绑 (Session Handover): 首次超标打上 Suspicious 瞬态可疑标记(同行算均值瞬间排除它,调度器开启“只出不进”保护);5 分钟滑动窗口内累计 2 次超标判定处于降级池,立即强制解绑粘性会话切断死锁灌水;由 P2C 调度器在纯健康号池中重新选号并立即焊死会话绑定,后续请求稳定享受 100% Prompt Cache 极速响应。(Fixes #3720, PR #3725, Thanks to @jeikl)
    • 后台阶梯轻量自愈探针与半开防抖机制: 阶梯冷却梯度为 2m -> 5m -> 10m -> 15m -> 20m -> 30m,每次升级等待时钟严格从 0 重新计时;到达节点后台发起纯文本“你好”极简探针(8 秒硬超时中止,消耗 < 5 tokens);探针通过后进入 Half-Open 缓刑期,经受住连续 2 次真实请求考验(TTFT < 8s)才满血出狱;引入 30 分钟惩罚记忆,复发违规直接继承高阶梯防止高频进出。(Fixes #3720, PR #3725, Thanks to @jeikl)
    • QoS 小黑屋一键解除与状态倒计时透明化: 账号管理卡片、表格与流量监控视图实时展示 QoS 状态与剩余冷却时长,并提供一键解除小黑屋限制按钮及后台接口(release_account_qos_jail),完整覆盖 12 种单语语言字典。(Fixes #3720, PR #3725, Thanks to @jeikl)
  • [官方权威模型全景升级、分级思考传输协议与 Argon 独立配额防穿透隔离] (Fixes #3735, Ref #3720, Fixes #3737, Thanks to @jeikl, @cubelikeplayDaniel, @xiaozhi-xmu, @chenshin166-arch):
    • 模型可用性与额度解析解耦: 彻底移除旧逻辑中 if let Some(quota_info) = info.quota_info 的强过滤门禁,以官方公开模型目录为基准,对 Google 上游不再为 Gemini 系(gemini-3.8-flash-*、gemini-3.1-flash-lite 等)下发 quotaInfo 的账号无损保留模型可用性,彻底消灭全系模型被误丢弃导致本地秒回 503 的严重缺陷。(Fixes #3737, Thanks to @xiaozhi-xmu, @chenshin166-arch, @jeikl)
    • 思考预算与思考等级分类模型传输 (Thinking Budget vs Thinking Level): 新一代分级模型(Gemini 4 Argon、Claude 5.5 系列)受控于 thinkingLevel("LOW", "MEDIUM", "HIGH"),严格下发思考等级,严禁输出数字预算;传统预算模型(Gemini 3.8 Flash、Gemini 3.1 Pro、Claude 4.6 等)走 thinkingBudget 通道,杜绝双字段冲突 400 报错。(Fixes #3735, Thanks to @jeikl)
    • 官方禁用模型严格过滤与虚假配额清理: 在 OfficialModelInfo 中补齐 disabled: Option<bool> 字段与 is_disabled() 判定,基准线置顶拦截 -disabled / _disabled 模型变体并从 normalize_to_standard_id 与账号池中彻底剥除;前端配额卡片与徽章全面过滤禁用模型,杜绝虚假展示。(Fixes #3735, Thanks to @jeikl)
    • Gemini 4 Argon 调度闭环与专属配额组能力继承: 在候选账号过滤中补齐 token_supports_advanced_model 与专属计费桶(normalized_target != "claude" && token.model_quotas.contains_key(...))能力判定,支持 camelCase 与 snake_case 双字段形态,彻底解决 Argon 账号在调度第二阶段被误杀抛出 503 的缺陷,同时保持 Claude 5.5 / 4.6 跨代隔离不串池。(Fixes #3735, Thanks to @jeikl)
    • 废弃内部代号 gemini-pro-agent 彻底清退: 在 variant_mapping.rs 中将 gemini-3.1-pro 家族规范映射由已废弃的内部代号 gemini-pro-agent 升级为官方标准物理模型 gemini-3.1-pro-high。(Fixes #3737, Thanks to @jeikl)
    • Claude 协议补齐账号级动态模型自适应改写: 选号后调用 token_manager.resolve_dynamic_model_for_account,实现与 OpenAI 及 Gemini 协议处理逻辑严格对称。(Fixes #3737, Thanks to @jeikl)
    • 全协议端点上下文窗口与最大输出参数标准化: 在 OpenAI(/v1/models)、Claude(/v1/models)与 Gemini(/v1beta/models)元数据端点中引入并标准化 context_length、max_tokens、max_output_tokens 等规格。(Fixes #3735, Thanks to @jeikl)
  • [OpenAI Responses API 结构化输出支持、流水线工具冲突治理与零误杀解壳] (Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel, @jeikl):
    • 协议层入站规范化: 在 OpenAIRequest 中支持 Responses API 的 text.format 规范,并在适配器中统一定位与提取 effective_response_format,规范化映射为 Gemini 原生 generationConfig.responseSchema 与 responseMimeType: "application/json",打通 Codex Desktop 对话自动命名(thread_title)、摘要生成等后台结构化任务。(Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
    • 后台任务思考预算收敛与防超时: 显式遵循 reasoning.effort: "low",将后台短任务的思考预算收敛在 1024 以内,彻底消除高思考模型在对话命名时触发 Codex 客户端 30 秒硬超时中断报错的隐患。(Fixes #3710, Thanks to @cubelikeplayDaniel)
    • 流水线统一工具冲突治理 (Pipeline First): 将 responseSchema 与 tools / toolConfig 的互斥治理下沉至 src/proxy/pipeline/inbound.rs 的 align_google_request_prefix_topology_with_model 统一出口,当检测到 responseSchema 生效时主动清空 canonical_tools 与 canonical_tool_config,跨协议彻底杜绝上游 400 校验拒绝。(Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
    • 出站受控整包解壳与常规对话零误杀保障: 在 convert_chat_response_to_responses 中引入 is_structured_output 严格门禁,常规对话 100% 原始呈现;仅在结构化任务下采用 unwrap_outer_code_fence_if_structured 严格整包解壳,避免破坏内嵌代码块并确保 Codex Desktop 原生 JSON.parse 正常解析。(Fixes #3710, Ref #3723, Thanks to @cubelikeplayDaniel)
  • [Mini 桌面悬浮视窗 macOS 原生真透明、双向跨窗口同步与原生主线程调度无死锁] (Fixes #3733, Ref #3718, #3721, Ref #3738, Ref #3741, Thanks to @lbjlaq, @cubelikeplayDaniel, @jeikl):
    • Mini 桌面悬浮视窗 macOS 原生真透明与拖拽权限健全: 开启 Tauri macos-private-api 特性与原生 macOSPrivateApi: true 配置,彻底消除 macOS WebKit 内核强制绘制底色导致的圆角黑边矩形,带来原生级磨砂圆角透明体验;首帧注入透明脚本与 URL 标识,并在能力清单中补齐 mini 窗口拖拽及置顶操作权限。(Fixes #3733, Ref #3718, PR #3738, Thanks to @lbjlaq)
    • 深浅模式自适应与跨窗口多语言毫秒级同步: Mini 悬浮窗自适应继承主控制台与操作系统的暗黑/浅色主题;接入 app://theme-changed 与 app://language-changed 跨窗口事件监听,保证主控制台与 Mini 悬浮窗无论切换语言还是主题均毫秒级双向无感同步,并补全全部 12 国语言字典。(Fixes #3733, PR #3738, Thanks to @lbjlaq)
    • 主线程调度与 Win32 死锁根除: 在后端引入 switch_to_main_window 与 hide_mini_view 命令,将主窗口重建及激活(exit_lightweight_mode)全量调度至系统原生 UI 主线程(app.run_on_main_thread),彻底消除 Windows 下跨线程创建窗口导致的 Win32 消息循环死锁与自旋挂起。(Ref #3733, Ref #3738, Ref #3741, Thanks to @jeikl)
    • Mini 悬浮窗 React Router 404 兜底与同步判定: 优先从 window.location.search (?mini=1) 与 __TAURI_INTERNALS__ 进行首帧同步判定,消除 Tauri 异步 IPC 窗口 label 延迟引发的路由竞争;并在 createBrowserRouter 中补齐 errorElement 与 index.html 通配符重定向,彻底消灭 404 错误页。(PR #3741, Thanks to @cubelikeplayDaniel)
    • 轻量模式首屏渲染就绪无感淡入: 重建主控制台窗口时默认保持 visible: false 静默装载,待 ThemeManager 首屏主题与配置挂载就绪后自动淡入并对焦,彻底根除 WebView2 绘制 React DOM 前的黑底白框闪烁。(Ref #3733, Ref #3738, Thanks to @jeikl)
  • [跨模型切换签名逆向重构:对齐官方 Antigravity 哨兵规范,根治 Claude 并发工具 400 崩溃] (Thanks to @jeikl, @cubelikeplayDaniel):
    • 官方 Base64 哨兵全局对齐: 逆向分析官方 Antigravity 客户端的 Proto3 JSON 报文规范,将全局哨兵常量从纯文本升级为官方原生标准的 44 字节 Base64 密文 c2tpcF90aG91Z2h0X3NpZ25hdHVyZV92YWxpZGF0b3I=;同时保留旧明文哨兵兼容识别(LEGACY_SENTINEL_SIGNATURE),确保历史缓存零断裂。(Thanks to @jeikl)
    • Claude 全链路 0 哨兵 + 并发工具严格留空: 根据 Anthropic 验签引擎行为,彻底废除向 Claude 模型注入任何哨兵;并发工具调用场景中,签名唯一落点为首个非思考部件(首个工具或首个正文),后续所有并发工具严格留空无 thoughtSignature 字段,彻底消除 Invalid signature in thinking block 400 拦截。(Thanks to @jeikl)
    • Claude ➔ Gemini 切换异构工具免检通行证: 从 Claude 切回 Gemini 时,进站门禁自动识别历史中携带 toolu_ 前缀的异构 Claude 工具调用,为每一个异构 functionCall 统一赋予 Base64 哨兵通行证,完全绕过 Gemini 对异构工具的签名校验;正文文本部件严格保持纯净。(Thanks to @jeikl)
    • Gemini ➔ Claude 切换历史清洁与哨兵零落库: 切换至 Claude 时彻底剥除历史轮次上的 Gemini 短签名与旧哨兵;在 normalize_and_heal_signature 中增加双重拦截,确保任何形态的哨兵值均不会写入 SQLite 持久化存储。(Thanks to @jeikl)
  • [流式巨型工具调用跃迁宽限期、上游超时预算动态收敛与 Claude 429 泄漏清除] (Fixes #3739, Fixes #3713, Ref #3506, Ref #3525, Ref #3720, PR #3740, PR #3714, PR #3742, Thanks to @cubelikeplayDaniel):
    • 流式巨型工具调用缓冲跃迁宽限期: 放宽过渡断崖自动跃迁条件为 matches!(phase, StreamPhase::Thinking | StreamPhase::Streaming),允许在 Streaming 阶段生成 10,000+ tokens 巨型 functionCall 缓冲静默时自动跃迁至 Transition 宽限期并赋予 180s 保护,彻底消除满 120s 滑动超时被提前截断的缺陷。(Fixes #3739, PR #3740, Thanks to @cubelikeplayDaniel)
    • 响应头看门狗与总预算精准收敛: 将流式首选端点 HTTP 响应头看门狗基准收敛至 30s(超大 payload 弹性放宽至 45s),备用回退预算 25s,全链路总预算大幅收敛至 55~70s(非流式严格 30s),彻底杜绝主端点在排队拥塞时长时间挂死。(Fixes #3713, PR #3714, Thanks to @cubelikeplayDaniel)
    • Claude 协议接入 FailureStatusTracker 消除 429 泄漏: 在 claude.rs 重试循环中完整接入 FailureStatusTracker,网络/看门狗超时显式记录 GATEWAY_TIMEOUT,最终状态码仅在全量尝试均为 429 时才返回 429,一旦包含网络超时则降级返回 504 Gateway Timeout,彻底根除客户端 1 分钟退避冻结。(PR #3714, Thanks to @cubelikeplayDaniel)
    • 重构多账号跨天硬配额耗尽检测与全端点故障解绑: 将 quotaResetDelay > 30min(如 68 小时)且包含 quota_exhausted 的响应准确识别为账号级硬配额枯竭,立即执行 50ms 闪电切号;在发生全端点超时时施加 30s 冷却并原子解绑粘性会话。(PR #3714, Thanks to @cubelikeplayDaniel)
    • Claude 思考预算缺省回退官方默认值: 在 resolve_custom_budget 中,针对 Claude 思考模型当配置预算 <= 0 时统一返回 None,使流水线正确回退并取回官方模型结构体权威默认值(如 1024)。(Ref #3735, PR #3742, Thanks to @cubelikeplayDaniel)
  • [异步高性能批量导入与冷启动秒级直出] (Fixes #3726, Thanks to @jeikl):
    • 异步流式并发与背压控制: 新增 batch_import_accounts 高性能流式处理管道,基于 buffer_unordered(6) 严格控制在途活跃任务上限,将 494 个账号导入耗时由 28 分钟锐减至 15~20 秒(提速超 60 倍),彻底杜绝 join_all 造成的内存暴涨与 OOM 内核击毙。(Fixes #3726, Thanks to @jeikl)
    • 恢复批量导入满血配额落盘与冷启动锁解耦: 在流式并发中每个账号并行完成 Token 换取与配额拉取,导入期 100% 具备完备配额与等级数据落盘;将 list_accounts 读锁改为非阻塞 try_read(),后台服务器启动期间绝不阻塞前端账号列表向界面的直出呈现。(Fixes #3726, Thanks to @jeikl)
    • 本地快照水合机制彻底消除冷启动图2空状态闪烁: 在 useAccountStore 初始状态中引入 localStorage 本地快照同步水合,冷启动首帧直接渲染上一次全部账号列表与配额矩阵卡片,彻底消灭“0 总账号数”空态闪现。(Fixes #3726, Thanks to @jeikl)
    • 科学防 Google 风控体系与严格幂等性: 注入 30ms ~ 90ms 动态散列微抖动(Jitter),集成 429 速率限制 1.5s 自动退避重试;确立小写邮箱与 Refresh Token 双重查重与原地复用(In-Place Upsert),引入孤儿文件自愈清理机制。(Fixes #3726, Thanks to @jeikl)
  • [系统托盘分层配额感知、CLI (agy) 凭证隔离与原生切号] (Fixes #3719, Fixes #3728, Fixes #3686, Thanks to @Wiojelt, @bkspi, @Ran-Xing, @lbjlaq, @jeikl):
    • 全平台系统托盘悬停配额卡片与状态栏配额标题: 富文本悬停卡片鼠标滑过即时呈现各模型剩余百分比,严格适配 Windows 128 字符限制;macOS 菜单栏图标旁原生常驻展示核心模型剩余百分比(如 C:85% G:100%);托盘右键新增【迷你悬浮窗】一键呼出与状态双向联动。(Fixes #3719, Thanks to @Wiojelt, @jeikl)
    • Linux 窗口抢占置顶与自动拉起根治: 移除对外部可执行文件执行 --version 的危险探测,改为安全的静态文件、符号链接穿透与 asar 内存轻量解析,彻底消灭 Linux 桌面端主窗口被频繁抢占焦点或意外启动新实例的致命缺陷,并加入 60 秒全局版本缓存。(Fixes #3728, Thanks to @bkspi, @lbjlaq)
    • 解除经典款切号对 CLI 专属凭证的覆写覆盖: 引入 sync_agy_cli 显式控制开关,切换经典款应用时严禁盲目冲刷 CLI 独立凭证,彻底杜绝切号凭据相互踩踏冲突。(Fixes #3728, Thanks to @lbjlaq)
    • 原生命令行工具集成 (at / antigravity-tools): 推出轻量高效的终端切号套件,支持列表查看 (at list)、多端当前账号探查 (at current) 与智能切号 (at switch [query]),支持 --continue 原地无缝接续当前会话。(Fixes #3686, Thanks to @Ran-Xing, @lbjlaq)
  • [代理池防源站泄漏、多协议鉴权增强与本地 Agent 探针兼容] (Fixes #3703, Fixes #3729, Fixes #3730, PR #3708, PR #3706, Thanks to @CarlitoDon, @cubelikeplayDaniel, @Ran-Xing, @lbjlaq):
    • 专属绑定账号防 Direct 泄漏机制: 重构专属代理路由决策,当绑定的专属代理不健康且无可用公共节点时,强制沿用专属代理尝试出站(宁可网络报错也绝不静默回退至直连),彻底杜绝服务器真实源站 IP 泄漏至 Google 授权系统导致的风控封号风险。(Fixes #3703, PR #3706, Thanks to @cubelikeplayDaniel)
    • WHATWG URL 凭据清理规范化与密文防扩散: 先清除密码再清除用户名,兼容 HTTP/HTTPS 及 SOCKS5h 代理;当容器跨机器迁移导致解密失败时拒绝将 ag_enc_ 密文随 HTTP CONNECT 报头明文发送给代理服务器。(PR #3706, Thanks to @cubelikeplayDaniel)
    • Hermes Agent / 本地探针端点兼容与 OpenAI 模型上下文元数据增强: 新增 /props、/v1/props 与 /version、/v1/version 只读端点,在 /v1/models 中注入 context_length、max_tokens 等权威容量限制,全面消除本地 Agent 握手探针警告与 404 错误。(PR #3708, Thanks to @CarlitoDon)
    • Gemini 协议支持标准 URL Query 传参提取 API Key: 重构凭据提取管道,完整覆盖 Authorization: Bearer、x-api-key、x-goog-api-key 及 URL Query ?key=。(Fixes #3729, Thanks to @Ran-Xing, @lbjlaq)
    • Web/Headless 模式保存配置补全内存热更新: 完整补齐 only_raw_quota_models 内存写锁同步与底层 HTTP 客户端缓存热失效逻辑,实现全平台 100% 动态热重载体验。(Fixes #3730, Thanks to @Ran-Xing, @lbjlaq)
  • [跨平台主流 AI Agent / CLI 身份归一化与提示词特征流控防御] (Ref #3720, Thanks to @jeikl):
    • Agent 身份归一化广谱纳管: 针对 Google 上游对非官方 Antigravity Harness(OpenCode、OpenClaw、Grok Build、Cursor、Cascade、Cline 等)加强语义特征流控打入慢速池的问题,扩展识别原生名谓式开场与宿主集成式声明,统一收敛对齐为官方原生 Antigravity 身份,抹除竞品生态指纹。(Ref #3720, Thanks to @jeikl)
    • 自适应双重扫描窗口与核心提示词绝对保护: 将系统提示词头部扫描窗口扩展为前 8 句或前 1500 字符,可靠穿透前置元数据垫片;并在流水线入口设立最高优先级白名单守卫,确保 JeikCode 等核心主要提示词 100% 豁免原样透传。(Ref #3720, Thanks to @jeikl)
  • [Gemini 上游协议严苛合规、工具拓扑保序与 Token 估算加固] (Fixes #3695, PR #3696, PR #3702, PR #3705, Thanks to @cubelikeplayDaniel):
    • 多轮对话角色严格交替合规 (user <-> model): 在上一轮为 user 时就地合并续跑提示词与 parts,防止生成连续两个 user 轮次触发 Google 400 校验拦截。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • 原生与函数工具声明拓扑保序: 严格保留客户端传入的自定义工具与 GoogleSearch、CodeExecution 等原生工具的原生相对优先级。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Google countTokens 专属顶层信封清洗: 引入 align_count_tokens_envelope,剥离外层 project、model、userAgent 及内层 safetySettings,杜绝顶层信封污染引发上游 400 报错。(Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • PipelineTokenEstimator 补全工具思考签名统计: 在预估 Claude 协议的 tool_use 与 server_tool_use 块时,提取隐式思考签名累加至总 Tokens,解决深度工具交互下预估偏小穿透 200k 自动压缩阈值的缺陷。(Ref #3697, PR #3705, Thanks to @cubelikeplayDaniel)
    • 会话指纹多模态雪崩消除与 Responses 并发守卫: 单字符短输入指纹稳定,多模态纯图片提取元数据特征摘要防止全量 Base64 序列化引发内存激增;为 completions 统一托管 RAII Drop Guard 消除幽灵并发泄露。(Ref #3697, PR #3699, PR #3700, Thanks to @cubelikeplayDaniel)

What's Changed

  • fix(proxy): 修复角色交替合规、工具声明保序、降级限流盲区与流终结防重 (Fixes #3695) by @cubelikeplayDaniel in #3696
  • fix(proxy): 修复长上下文首字延迟抖动、429配额瞬时误解锁与签名流水线缺陷 (Fixes #3697, Ref #3693, Ref #3506) by @cubelikeplayDaniel in #3698
  • fix(openai): 补充 handle_completions 并发统计与 Responses API 路径映射归一化 (Ref #3697) by @cubelikeplayDaniel in #3699
  • fix(session): 修复短输入指纹漂移、多模态哈希雪崩与未闭合 System 标签截断 (Ref #3697) by @cubelikeplayDaniel in #3700
  • fix(claude,upstream): 规整孤儿工具结果回退标识并补齐终端端点自适应看门狗 (Ref #3697) by @cubelikeplayDaniel in #3701
  • fix(proxy): 修复 countTokens 请求信封污染上游400与全局思考预算配置继承缺失 (Ref #3697) by @cubelikeplayDaniel in #3702
  • fix(proxy): 修复 PipelineTokenEstimator 漏计 tool_use 思考签名导致 Cowork 自动压缩阈值穿透 (Ref #3697) by @cubelikeplayDaniel in #3705
  • fix(proxy): 修复代理池健康检查凭据清洗顺序与专属账号防Direct泄漏机制 (Fixes #3703, Ref #3323) by @cubelikeplayDaniel in #3706
  • feat(proxy): add /props, /version, and model context resolution endpoints for Hermes and agent tooling compatibility by @CarlitoDon in #3708
  • feat(proxy): 引入基于纯净同侪校准与阶梯探针的自适应 QoS 调度系统 (Fixes #3720) by @jeikl in #3725
  • feat(ui,proxy): Mini 桌面悬浮视窗圆角真透明、跨窗口同步与 Claude 拓扑防御增强 (Fixes #3733, Ref #3718, #3721) by @lbjlaq in #3738
  • fix(ui): 修复 Mini 悬浮窗加载 index.html 触发 React Router 404 错误边界与同步判定失效 by @cubelikeplayDaniel in #3741
  • fix(proxy): 允许 Streaming 阶段在巨型工具调用缓冲静默时自动跃迁至 Transition 宽限期 (Fixes #3739) by @cubelikeplayDaniel in #3740
  • fix(proxy): 修复 Claude 模型思考预算未配置时回退官方模型结构体默认值 (Ref #3735) by @cubelikeplayDaniel in #3742
  • fix(proxy): 引入上游看门狗全链路超时动态预算与算力枯竭快速探活机制 (Ref #3713, Ref #3506, Ref #3525) by @cubelikeplayDaniel in #3714

Full Changelog: v4.9.8...v5.0.0

Don't miss a new Antigravity-Manager release

NewReleases is sending notifications on new releases.