github lbjlaq/Antigravity-Manager v4.9.9-beta.1
Antigravity Tools v4.9.9-beta.1

pre-release2 hours ago
  • [Proxy Pool Anti-Leak Hardening, URL Credential Sanitization & Resilient Health Checks] (Fixes #3703, Ref #3323, PR #3706, Thanks to @cubelikeplayDaniel):
    • Bound Account Direct IP Leak Prevention: Overhauled bound proxy routing decisions. When an account's designated proxy is flagged as unhealthy, the gateway prioritizes auto-failover to available healthy nodes in the public pool; if no public proxy is available, requests are strictly routed through the bound proxy regardless of its health state (preferring upstream network failure over direct outbound connections), completely eliminating server VPS IP leaks to Google authorization systems and preventing risk-control account bans. (Fixes #3703, PR #3706, Thanks to @cubelikeplayDaniel)
    • WHATWG URL Credential Strip Order & Encrypted Ciphertext Protection: Aligned with the WHATWG URL standard by clearing password before username, ensuring clean credential extraction across HTTP, HTTPS, and SOCKS5h proxies. Furthermore, if cross-machine migration leaves an undecrypted ag_enc_ password without embedded fallback credentials, the gateway refuses to forward encrypted ciphertext over plaintext HTTP CONNECT headers. (PR #3706, Thanks to @cubelikeplayDaniel)
    • Relaxed Health Check Handshake Timeout: Increased TCP connect timeout from 5s to 10s and total probe timeout to 15s to prevent false-negative health check failures on high-latency or cross-border multi-hop proxy chains during TLS tunnel negotiation. (PR #3706, Thanks to @cubelikeplayDaniel)
  • [Gemini Protocol Strict Alternation, Tool Ordering & SQLite Thinking Decompression] (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel):
    • Strict Role Alternation Enforcement (user <-> model): Introduced a state machine during auto-heal continuation and media splitting to seamlessly merge continuation prompts into the preceding user turn's parts whenever the previous turn was user-authored, preventing consecutive [..., user, user] sequences from triggering Google HTTP 400 rejection (Please ensure that multiturn requests alternate between user and model roles). (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Native & Function Tool Topological Ordering: Fixed tool declaration reordering that erroneously deferred function declarations behind native tools, strictly preserving the relative priority of client-defined tools alongside GoogleSearch and CodeExecution. (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Model-Aware Rate Limit Inspection: Added target-model-specific quota exhaustion checks in has_available_account to guarantee instant failover to external provider models when account quota runs out. (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • Stream Lifecycle Double-Finalization Guard: Added terminal state inspection after flushing trailing stream buffers, preventing duplicate [DONE] frames or redundant message_stop events from breaking client stream decoders. (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • SQLite GZIP BLOB In-Memory Unpack for Thinking Signatures: Replaced ineffective SQL LIKE queries against binary compressed BLOBs (for thoughts $\ge 128$ bytes) with in-memory GZIP decompression, restoring signature retrieval by thought snippet. (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
  • [countTokens Envelope Purification, Global Thinking Effort Inheritance & Token Estimation Signatures] (Ref #3697, PR #3702, PR #3705, Thanks to @cubelikeplayDaniel):
    • Google countTokens Dedicated Envelope Alignment: Introduced align_count_tokens_envelope to strip extraneous top-level keys (project, model, userAgent, requestId) and inner safetySettings before forwarding to Google v1internal :countTokens, preventing upstream 400 Bad Request errors. (Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • Global Gateway Thinking Effort Inheritance: Fixed resolve_custom_budget resolution so that Bare Flash and Tiered models inherit the gateway's globally configured reasoning effort (tb_config.effort) when requests lack explicit client effort parameters, preventing unintended unbounded reasoning token expenditure. (Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • Tool Use Thought Signature Token Estimation: Enhanced PipelineTokenEstimator for Claude tool_use and server_tool_use blocks to account for embedded thought signatures (signature / thoughtSignature), resolving a critical undercount issue where 300k+ token sessions breached the 200k auto-compaction boundary. (Ref #3697, PR #3705, Thanks to @cubelikeplayDaniel)
  • [Adaptive Watchdog Timeout for Terminal Endpoints & Orphan Tool Result Safe Downgrade] (Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel):
    • Full Watchdog Timeout Coverage on Terminal Endpoints: Extended tokio::time::timeout protection to terminal and single-endpoint upstream requests, eliminating hanging connections when an upstream server stalls on response headers. (Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel)
    • Orphan Tool Result Identification & Safe Text Downgrade: Normalized missing tool name fallbacks to "unknown" instead of hyphenated tool_use_id strings, allowing downstream pipeline Pass 3 self-healing to safely convert orphan tool results into user text blocks without violating Vertex function name regex rules. (Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel)
  • [Session Fingerprint Multimodal Stability, Short Input Preservation & OpenAI Concurrency Guard] (Ref #3697, PR #3699, PR #3700, Thanks to @cubelikeplayDaniel):
    • Multi-Turn Stability for Short User Inputs ("1", "y"): Relaxed fingerprint text extraction thresholds, preventing single-character user replies from falling back to full-body hashing and causing session ID drift across turns. (Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • Multimodal Input Summary Hashing: Extracted compact metadata summaries for image and audio inputs, avoiding memory spikes and hash instability caused by serializing multi-megabyte Base64 payloads. (Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • Unclosed System Tag Boundary Protection: Hardened prefix sanitization to preserve user code containing symbols like [System.IO.File] and unclosed brackets, preventing premature text truncation. (Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • OpenAI handle_completions In-Flight Guard & Path Alias Normalization: Added RAII drop guards for streaming and non-streaming completions to eliminate ghost concurrency leaks, while normalizing /responses and /responses/compact route aliases. (Ref #3697, PR #3699, Thanks to @cubelikeplayDaniel)

  • [代理池安全防泄露、URL 凭据清洗与高延迟节点容灾] (Fixes #3703, Ref #3323, PR #3706, Thanks to @cubelikeplayDaniel):
    • 专属绑定账号防 Direct 泄漏机制: 重构专属代理路由决策;当绑定的专属代理被判定为不健康时,优先故障转移至可用公用池节点;若无可用公共节点,强制沿用专属代理尝试出站(宁可网络报错也绝不静默回退至直连),彻底杜绝服务器真实源站 IP 泄漏至 Google 授权系统导致的风控封号风险。(Fixes #3703, PR #3706, Thanks to @cubelikeplayDaniel)
    • WHATWG URL 凭据清理顺序规范化与密文防扩散: 严格对齐标准 URL 规范,采用先清除密码再清除用户名的安全清洗顺序,兼容 HTTP/HTTPS 及 SOCKS5h 代理;当容器跨机器迁移导致解密失败(保留 ag_enc_ 前缀)时,拒绝将密文字节随 HTTP CONNECT 报头明文发送给代理服务器。(PR #3706, Thanks to @cubelikeplayDaniel)
    • 健康检查握手超时放宽: 将代理健康检查 TCP 连接超时由 5s 放宽至 10s,整体超时调整至 15s,杜绝跨国多跳代理节点在建立 TLS 隧道阶段因严格超时误报失败。(PR #3706, Thanks to @cubelikeplayDaniel)
  • [Gemini 上游协议严苛合规、工具拓扑保序与 SQLite 思考检索修复] (Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel):
    • 多轮对话角色严格交替合规 (user <-> model): 自愈续跑与媒体切分时引入状态机,在上一轮为 user 时就地合并续跑提示词与 parts,防止生成紧邻的连续两个 user 轮次 [..., user, user] 触发 Google 上游 400 校验拦截。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • 原生与函数工具声明拓扑保序: 修复函数拆分时延后追加导致的顺序颠倒问题,严格保留客户端传入的自定义工具与 GoogleSearch、CodeExecution 等原生工具的原生相对优先级。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • 模型感知降级限流校验: has_available_account 补充目标模型校验与 QuotaExhausted 锁检查,确保模型配额用尽时精准触发外部提供商无感降级。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • 流式管道尾部防重终结: 在冲刷尾部残留缓冲后增加终端态检查,严禁向客户端重复发射 [DONE] 帧或 message_stop 事件导致客户端解析异常。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
    • SQLite GZIP 压缩思维链内存解包检索: 针对大于 128 字节以 GZIP 存入 BLOB 的历史思考记录,改用内存解包进行精准子串匹配,解决 SQL LIKE 对压缩二进制检索失效的问题。(Fixes #3695, PR #3696, Thanks to @cubelikeplayDaniel)
  • [countTokens 信封规整、全局思考预算继承与 Token 预估签名补全] (Ref #3697, PR #3702, PR #3705, Thanks to @cubelikeplayDaniel):
    • Google countTokens 专属顶层信封清洗: 引入 align_count_tokens_envelope,对 Google v1internal :countTokens 请求剥离外层 project、model、userAgent 及内层 safetySettings,杜绝顶层信封污染引发上游 400 Bad Request 报错。(Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • 全局思考预算配置 (effort) 继承生效: 修复 resolve_custom_budget 继承链,当客户端请求未显式传参时,Bare Flash 与 Tiered 模型优先继承用户在网关全局配置的思考档位(low / medium / high),防止无上限自适应思考消耗。(Ref #3697, PR #3702, Thanks to @cubelikeplayDaniel)
    • PipelineTokenEstimator 补全工具思考签名统计: 在预估 Claude 协议的 tool_use 与 server_tool_use 块时,提取隐式思考签名(signature / thoughtSignature)并累加至总 Tokens,解决 100+ 轮深度工具交互下预估严重偏小穿透 200k 自动压缩阈值的缺陷。(Ref #3697, PR #3705, Thanks to @cubelikeplayDaniel)
  • [上游终端端点看门狗超时全覆盖与孤儿工具结果安全降级] (Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel):
    • 终端端点与单端点自适应看门狗保护: 移除仅在非末位端点开启超时的限制,对所有候选端点(包含最后一个端点与单端点场景)全量施加 tokio::time::timeout 保护,杜绝上游静默挂起导致连接池长久悬挂。(Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel)
    • 孤儿工具结果回退标识合规化: 当 Claude 客户端发来无对应 tool_use 的孤儿 tool_result 时,将回退函数名统一规整为 "unknown",触发管道 Pass 3 自愈并安全降级为用户提示文本块,防止带连字符的原始 ID 触发 Vertex 400 正则校验失败。(Ref #3697, PR #3701, Thanks to @cubelikeplayDaniel)
  • [会话指纹多模态雪崩消除、短输入连续性与 Responses 并发守卫] (Ref #3697, PR #3699, PR #3700, Thanks to @cubelikeplayDaniel):
    • 单字符短输入 ("1", "y") 多轮指纹稳定: 放宽文本指纹提取阈值,杜绝极短输入退化为整包 Body 哈希导致第二轮追问时会话 ID 发生漂移。(Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • 多模态纯图片输入元数据特征摘要: 提取图片/音频元数据特征生成会话种子,防止对数兆 Base64 全量序列化引发哈希雪崩与内存激增。(Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • 未闭合 System 标签截断保护: 修复前缀清洗边界检查,杜绝将用户代码中的合法标识符(如 [System.IO.File])误判为注入标签导致后续正文被粗暴截断清空。(Ref #3697, PR #3700, Thanks to @cubelikeplayDaniel)
    • OpenAI handle_completions 在途并发守卫与别名标准化: 为非流式及流式 completions 统一托管 RAII Drop Guard,消除“幽灵并发”泄露;标准化 /responses 及 /responses/compact 别名路由映射。(Ref #3697, PR #3699, Thanks to @cubelikeplayDaniel)

What's Changed

Full Changelog: v4.9.8...v4.9.9-beta.1

Don't miss a new Antigravity-Manager release

NewReleases is sending notifications on new releases.