[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5361":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},5361,"Antigravity-Manager","lbjlaq\u002FAntigravity-Manager","lbjlaq","Professional Antigravity Account Manager & Switcher. One-click seamless account switching for Antigravity Tools. Built with Tauri v2 + React (Rust).专业的 Antigravity 账号管理与切换工具。为 Antigravity 提供一键无缝账号切换功能。","https:\u002F\u002Flbjlaq.github.io\u002FAntigravity-Manager\u002F",null,"Rust",29720,3217,105,1687,0,17,123,731,87,45,"Other",false,"main",true,[27,28],"account-manager","antigravity","2026-06-12 02:01:09","# Antigravity Tools 🚀\n> 专业级 AI 账号管理与协议代理系统 (v4.1.33)\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"public\u002Ficon.png\" alt=\"Antigravity Logo\" width=\"120\" height=\"120\" style=\"border-radius: 24px; box-shadow: 0 10px 30px rgba(0,0,0,0.15);\">\n\n  \u003Ch3>您的个人高性能 AI 调度网关\u003C\u002Fh3>\n  \u003Cp>不仅仅是账号管理，更是打破 API 调用壁垒的终极解决方案。\u003C\u002Fp>\n  \n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Manager\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVersion-4.1.33-blue?style=flat-square\" alt=\"Version\">\n    \u003C\u002Fa>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-v2-orange?style=flat-square\" alt=\"Tauri\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBackend-Rust-red?style=flat-square\" alt=\"Rust\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFrontend-React-61DAFB?style=flat-square\" alt=\"React\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-CC--BY--NC--SA--4.0-lightgrey?style=flat-square\" alt=\"License\">\n  \u003C\u002Fp>\n\n  \u003Cp>\n    \u003Ca href=\"#-核心功能\">核心功能\u003C\u002Fa> • \n    \u003Ca href=\"#-界面导览\">界面导览\u003C\u002Fa> • \n    \u003Ca href=\"#-技术架构\">技术架构\u003C\u002Fa> • \n    \u003Ca href=\"#-安装指南\">安装指南\u003C\u002Fa> • \n    \u003Ca href=\"#-快速接入\">快速接入\u003C\u002Fa>\n  \u003C\u002Fp>\n\n  \u003Cp>\n    \u003Cstrong>简体中文\u003C\u002Fstrong> | \n    \u003Ca href=\".\u002FREADME_EN.md\">English\u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n---\n\n**Antigravity Tools** 是一个专为开发者和 AI 爱好者设计的全功能桌面应用。它将多账号管理、协议转换和智能请求调度完美结合，为您提供一个稳定、极速且成本低廉的 **本地 AI 中转站**。\n\n通过本应用，您可以将常见的 Web 端 Session (Google\u002FAnthropic) 转化为标准化的 API 接口，消除不同厂商间的协议鸿沟。\n\n## 💖 赞助商 (Sponsors)\n\n| 赞助商 (Sponsor) | 简介 (Description) |\n| :---: | :--- |\n| \u003Cimg src=\"docs\u002Fimages\u002Fpackycode_logo.png\" width=\"200\" alt=\"PackyCode Logo\"> | 感谢 **PackyCode** 对本项目的赞助！PackyCode 是一家可靠高效的 API 中转服务商，提供 Claude Code、Codex、Gemini 等多种服务的中转。PackyCode 为本项目的用户提供了特别优惠：使用[此链接](https:\u002F\u002Fwww.packyapi.com\u002Fregister?aff=Ctrler)注册，并在充值时输入 **“Ctrler”** 优惠码即可享受 **九折优惠**。 |\n| \u003Cimg src=\"docs\u002Fimages\u002FAICodeMirror.jpg\" width=\"200\" alt=\"AICodeMirror Logo\"> | 感谢 AICodeMirror 赞助了本项目！AICodeMirror 提供 Claude Code \u002F Codex \u002F Gemini CLI 官方高稳定中转服务，支持企业级高并发、极速开票、7×24 专属技术支持。 Claude Code \u002F Codex \u002F Gemini 官方渠道低至 3.8 \u002F 0.2 \u002F 0.9 折，充值更有折上折！AICodeMirror 为 Antigravity-Manager 的用户提供了特别福利，通过[此链接](https:\u002F\u002Fwww.aicodemirror.com\u002Fregister?invitecode=MV5XUM)注册的用户，可享受首充8折，企业客户最高可享 7.5 折！ |\n| \u003Cimg src=\"https:\u002F\u002Fcoder.visioncoder.cn\u002Flogo.png\" width=\"200\" alt=\"VisionCoder Logo\"> | 感谢 VisionCoder 对本项目的支持。[VisionCoder 开发平台](https:\u002F\u002Fcoder.visioncoder.cn) 是一个可靠高效性 API 中继服务提供商，提供 Claude Code、Codex、Gemini 等主流 AI 模型，帮助开发者和团队更轻松地集成 AI 功能，提升工作效率。VisionCoder 为本站用户提供了专属福利：通过[此链接](https:\u002F\u002Fcoder.visioncoder.cn)注册并购买 [Token Plan](https:\u002F\u002Fcoder.visioncoder.cn) 限时活动，可享受“买 1 个月赠 1 个月”优惠。 |\n\n\n\n### ☕ 支持项目 (Support)\n\n如果您觉得本项目对您有所帮助，欢迎打赏作者！\n\n\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002FCtrler\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fcdn.buymeacoffee.com\u002Fbuttons\u002Fv2\u002Fdefault-green.png\" alt=\"请我喝杯咖啡\" style=\"height: 60px !important; width: 217px !important;\">\u003C\u002Fa>\n\n| 支付宝 (Alipay) | 微信支付 (WeChat) | Buy Me a Coffee |\n| :---: | :---: | :---: |\n| ![Alipay](.\u002Fdocs\u002Fimages\u002Fdonate_alipay.png) | ![WeChat](.\u002Fdocs\u002Fimages\u002Fdonate_wechat.png) | ![Coffee](.\u002Fdocs\u002Fimages\u002Fdonate_coffee.png) |\n\n## 🚀 推荐项目 (Recommended Projects)\n\n如果您喜欢本项目，可能也会对以下项目感兴趣：\n\n*   **[Antigravity-Tools-LS](https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Tools-LS)**: 专为 AI 协议设计的语言服务器 (LSP)，为您提供更智能的代码补全、诊断和协议调试体验。\n\n## 🌟 深度功能解析 (Detailed Features)\n\n### 1. 🎛️ 智能账号仪表盘 (Smart Dashboard)\n*   **全局实时监控**: 一眼洞察所有账号的健康状况，包括 Gemini Pro、Gemini Flash、Claude 以及 Gemini 绘图的 **平均剩余配额**。\n*   **最佳账号推荐 (Smart Recommendation)**: 系统会根据当前所有账号的配额冗余度，实时算法筛选并推荐“最佳账号”，支持 **一键切换**。\n*   **活跃账号快照**: 直观显示当前活跃账号的具体配额百分比及最后同步时间。\n\n### 2. 🔐 强大的账号管家 (Account Management)\n*   **OAuth 2.0 授权（自动\u002F手动）**: 添加账号时会提前生成可复制的授权链接，支持在任意浏览器完成授权；回调成功后应用会自动完成并保存（必要时可点击“我已授权，继续”手动收尾）。\n*   **多维度导入**: 支持单条 Token 录入、JSON 批量导入（如来自其他工具的备份），以及从 V1 旧版本数据库自动热迁移。\n*   **网关级视图**: 支持“列表”与“网格”双视图切换。提供 403 封禁检测，自动标注并跳过权限异常的账号。\n\n### 3. 🔌 协议转换与中继 (API Proxy)\n*   **全协议适配 (Multi-Sink)**:\n    *   **OpenAI 格式**: 提供 `\u002Fv1\u002Fchat\u002Fcompletions` 端点，兼容 99% 的现有 AI 应用。\n    *   **Anthropic 格式**: 提供原生 `\u002Fv1\u002Fmessages` 接口，支持 **Claude Code CLI** 的全功能（如思思维链、系统提示词）。\n    *   **Gemini 格式**: 支持 Google 官方 SDK 直接调用。\n*   **智能状态自愈**: 当请求遇到 `429 (Too Many Requests)` 或 `401 (Expire)` 时，后端会毫秒级触发 **自动重试与静默轮换**，确保业务不中断。\n\n### 4. 🔀 模型路由中心 (Model Router)\n*   **系列化映射**: 您可以将复杂的原始模型 ID 归类到“规格家族”（如将所有 GPT-4 请求统一路由到 `gemini-3-pro-high`）。\n*   **专家级重定向**: 支持自定义正则表达式级模型映射，精准控制每一个请求的落地模型。\n*   **智能分级路由 (Tiered Routing)**: [新] 系统根据账号类型（Ultra\u002FPro\u002FFree）和配额重置频率自动优先级排序，优先消耗高速重置账号，确保高频调用下的服务稳定性。\n*   **后台任务静默降级**: [新] 自动识别 Claude CLI 等工具生成的后台请求（如标题生成），智能重定向至 Flash 模型，保护高级模型配额不被浪费。\n\n### 5. 🎨 多模态与 Imagen 3 支持\n*   **高级画质控制**: 支持通过 OpenAI `size` (如 `1024x1024`, `16:9`) 参数自动映射到 Imagen 3 的相应规格。\n*   **超强 Body 支持**: 后端支持高达 **100MB** (可配置) 的 Payload，处理 4K 高清图识别绰绰有余。\n\n## 📸 界面导览 (GUI Overview)\n\n| | |\n| :---: | :---: |\n| ![仪表盘 - 全局配额监控与一键切换](docs\u002Fimages\u002Fdashboard-light.png) \u003Cbr> 仪表盘 | ![账号列表 - 高密度配额展示与 403 智能标注](docs\u002Fimages\u002Faccounts-light.png) \u003Cbr> 账号列表 |\n| ![关于页面 - 关于 Antigravity Tools](docs\u002Fimages\u002Fabout-dark.png) \u003Cbr> 关于页面 | ![API 反代 - 服务控制](docs\u002Fimages\u002Fv3\u002Fproxy-settings.png) \u003Cbr> API 反代 |\n| ![系统设置 - 通用配置](docs\u002Fimages\u002Fsettings-dark.png) \u003Cbr> 系统设置 | |\n\n### 💡 使用案例 (Usage Examples)\n\n| | |\n| :---: | :---: |\n| ![Claude Code 联网搜索 - 结构化来源与引文显示](docs\u002Fimages\u002Fusage\u002Fclaude-code-search.png) \u003Cbr> Claude Code 联网搜索 | ![Cherry Studio 深度集成 - 原生回显搜索引文与来源链接](docs\u002Fimages\u002Fusage\u002Fcherry-studio-citations.png) \u003Cbr> Cherry Studio 深度集成 |\n| ![Imagen 3 高级绘图 - 完美还原 Prompt 意境与细节](docs\u002Fimages\u002Fusage\u002Fimage-gen-nebula.png) \u003Cbr> Imagen 3 高级绘图 | ![Kilo Code 接入 - 多账号极速轮换与模型穿透](docs\u002Fimages\u002Fusage\u002Fkilo-code-integration.png) \u003Cbr> Kilo Code 接入 |\n\n## 🏗️ 技术架构 (Architecture)\n\n```mermaid\ngraph TD\n    Client([外部应用: Claude Code\u002FNextChat]) -->|OpenAI\u002FAnthropic| Gateway[Antigravity Axum Server]\n    Gateway --> Middleware[中间件: 鉴权\u002F限流\u002F日志]\n    Middleware --> Router[Model Router: ID 映射]\n    Router --> Dispatcher[账号分发器: 轮询\u002F权重]\n    Dispatcher --> Mapper[协议转换器: Request Mapper]\n    Mapper --> Upstream[上游请求: Google\u002FAnthropic API]\n    Upstream --> ResponseMapper[响应转换器: Response Mapper]\n    ResponseMapper --> Client\n```\n\n##  安装指南 (Installation)\n\n### 选项 A: 终端安装 (推荐)\n\n#### 跨平台一键安装脚本\n\n自动检测操作系统、架构和包管理器，一条命令完成下载与安装。\n\n**Linux \u002F macOS:**\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Flbjlaq\u002FAntigravity-Manager\u002Fv4.1.33\u002Finstall.sh | bash\n```\n\n**Windows (PowerShell):**\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Flbjlaq\u002FAntigravity-Manager\u002Fmain\u002Finstall.ps1 | iex\n```\n\n> **支持的格式**: Linux (`.deb` \u002F `.rpm` \u002F `.AppImage`) | macOS (`.dmg`) | Windows (NSIS `.exe`)\n>\n> **高级用法**: 安装指定版本 `curl -fsSL ... | bash -s -- --version 4.1.33`，预览模式 `curl -fsSL ... | bash -s -- --dry-run`\n\n#### macOS - Homebrew\n如果您已安装 [Homebrew](https:\u002F\u002Fbrew.sh\u002F)，也可以通过以下命令安装：\n\n```bash\n# 1. 订阅本仓库的 Tap\nbrew tap lbjlaq\u002Fantigravity-manager https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Manager\n\n# 2. 安装应用\nbrew install --cask antigravity-tools\n```\n> **提示**: 如果遇到权限问题，建议添加 `--no-quarantine` 参数。\n\n#### Arch Linux\n您可以选择通过一键安装脚本或 Homebrew 进行安装：\n\n**方式 1：一键安装脚本 (推荐)**\n```bash\ncurl -sSL https:\u002F\u002Fraw.githubusercontent.com\u002Flbjlaq\u002FAntigravity-Manager\u002Fmain\u002Fdeploy\u002Farch\u002Finstall.sh | bash\n```\n\n**方式 2：通过 Homebrew** (如果您已安装 [Linuxbrew](https:\u002F\u002Fsh.brew.sh\u002F))\n```bash\nbrew tap lbjlaq\u002Fantigravity-manager https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Manager\nbrew install --cask antigravity-tools\n```\n\n#### 其他 Linux 发行版\n安装后会自动将 AppImage 添加到二进制路径并配置可执行权限。\n\n### 选项 B: 手动下载\n前往 [GitHub Releases](https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Manager\u002Freleases) 下载对应系统的包：\n*   **macOS**: `.dmg` (支持 Apple Silicon & Intel)\n*   **Windows**: `.msi` 或 便携版 `.zip`\n*   **Linux**: `.deb` 或 `AppImage`\n\n### 选项 C: Docker 部署 (推荐用于 NAS\u002F服务器)\n如果您希望在容器化环境中运行，我们提供了原生的 Docker 镜像。该镜像内置了对 v4.0.2 原生 Headless 架构的支持，可自动托管前端静态资源，并通过浏览器直接进行管理。\n\n```bash\n# 方式 1: 直接运行 (推荐)\n# - API_KEY: 必填。用于所有协议的 AI 请求鉴定。\n# - WEB_PASSWORD: 可选。用于管理后台登录。若不设置则默认使用 API_KEY。\ndocker run -d --name antigravity-manager \\\n  -p 8045:8045 \\\n  -e API_KEY=sk-your-api-key \\\n  -e WEB_PASSWORD=your-login-password \\\n  -e ABV_MAX_BODY_SIZE=104857600 \\\n  -v ~\u002F.antigravity_tools:\u002Froot\u002F.antigravity_tools \\\n  lbjlaq\u002Fantigravity-manager:latest\n\n# 忘记密钥？执行 docker logs antigravity-manager 或 grep -E '\"api_key\"|\"admin_password\"' ~\u002F.antigravity_tools\u002Fgui_config.json\n\n#### 🔐 鉴权逻辑说明\n*   **场景 A：仅设置了 `API_KEY`**\n    - **Web 登录**：使用 `API_KEY` 进入后台。\n    - **API 调用**：使用 `API_KEY` 进行 AI 请求鉴权。\n*   **场景 B：同时设置了 `API_KEY` 和 `WEB_PASSWORD` (推荐)**\n    - **Web 登录**：**必须**使用 `WEB_PASSWORD`，使用 API Key 将被拒绝（更安全）。\n    - **API 调用**：统一使用 `API_KEY`。这样您可以将 API Key 分发给成员，而保留密码仅供管理员使用。\n\n#### 🆙 旧版本升级指引\n如果您是从 v4.0.1 及更早版本升级，系统默认未设置 `WEB_PASSWORD`。您可以通过以下任一方式设置：\n1.  **Web UI 界面 (推荐)**：使用原有 `API_KEY` 登录后，在 **API 反代设置** 页面手动设置并保存。新密码将持久化存储在 `gui_config.json` 中。\n2.  **环境变量 (Docker)**：在启动容器时增加 `-e WEB_PASSWORD=您的新密码`。**注意：环境变量具有最高优先级，将覆盖 UI 中的任何修改。**\n3.  **配置文件 (持久化)**：直接修改 `~\u002F.antigravity_tools\u002Fgui_config.json`，在 `proxy` 对象中修改或添加 `\"admin_password\": \"您的新密码\"` 字段。\n    - *注：`WEB_PASSWORD` 是环境变量名，`admin_password` 是配置文件中的 JSON 键名。*\n\n> [!TIP]\n> **密码优先级逻辑 (Priority)**:\n> - **第一优先级 (环境变量)**: `ABV_WEB_PASSWORD` 或 `WEB_PASSWORD`。只要设置了环境变量，系统将始终使用它。\n> - **第二优先级 (配置文件)**: `gui_config.json` 中的 `admin_password` 字段。UI 的“保存”操作会更新此值。\n> - **保底回退 (向后兼容)**: 若上述均未设置，则回退使用 `API_KEY` 作为登录密码。\n\n# 方式 2: 使用 Docker Compose\n# 1. 进入项目的 docker 目录\ncd docker\n# 2. 启动服务\ndocker compose up -d\n```\n> **访问地址**: `http:\u002F\u002Flocalhost:8045` (管理后台) | `http:\u002F\u002Flocalhost:8045\u002Fv1` (API Base)\n> **系统要求**:\n> - **内存**: 建议 **1GB** (最小 256MB)。\n> - **持久化**: 需挂载 `\u002Froot\u002F.antigravity_tools` 以保存数据。\n> - **架构**: 支持 x86_64 和 ARM64。\n> **详情见**: [Docker 部署指南 (docker)](.\u002Fdocker\u002FREADME.md)\n\n---\n\nCopyright © 2024-2026 [lbjlaq](https:\u002F\u002Fgithub.com\u002Flbjlaq)\n\n### 🛠️ 常见问题排查 (Troubleshooting)\n\n#### macOS 提示“应用已损坏，无法打开”？\n由于 macOS 的安全机制，非 App Store 下载的应用可能会触发此提示。您可以按照以下步骤快速修复：\n\n1.  **命令行修复** (推荐):\n    打开终端，执行以下命令：\n    ```bash\n    sudo xattr -rd com.apple.quarantine \"\u002FApplications\u002FAntigravity Tools.app\"\n    ```\n2.  **Homebrew 安装技巧**:\n    如果您使用 brew 安装，可以添加 `--no-quarantine` 参数来规避此问题：\n    ```bash\n    brew install --cask --no-quarantine antigravity-tools\n    ```\n\n## 🔌 快速接入示例\n\n### 🔐 OAuth 授权流程（添加账号）\n1. 打开“Accounts \u002F 账号” → “添加账号” → “OAuth”。\n2. 弹窗会在点击按钮前预生成授权链接；点击链接即可复制到系统剪贴板，然后用你希望的浏览器打开并完成授权。\n3. 授权完成后浏览器会打开本地回调页并显示“✅ 授权成功!”。\n4. 应用会自动继续完成授权并保存账号；如未自动完成，可点击“我已授权，继续”手动完成。\n\n> 提示：授权链接包含一次性回调端口，请始终使用弹窗里生成的最新链接；如果授权时应用未运行或弹窗已关闭，浏览器可能会提示 `localhost refused connection`。\n\n### 如何接入 Claude Code CLI?\n1.  启动 Antigravity，并在“API 反代”页面开启服务。\n2.  在终端执行：\n```bash\nexport ANTHROPIC_API_KEY=\"sk-antigravity\"\nexport ANTHROPIC_BASE_URL=\"http:\u002F\u002F127.0.0.1:8045\"\nclaude\n```\n\n### 如何接入 OpenCode?\n1.  进入 **API 反代**页面 → **外部 Providers** → 点击 **OpenCode Sync** 卡片。\n2.  点击 **Sync** 按钮，将自动生成 `~\u002F.config\u002Fopencode\u002Fopencode.json` 配置文件：\n    - 创建独立 provider `antigravity-manager`（不覆盖 google\u002Fanthropic 原生配置）\n    - 可选：勾选 **Sync accounts** 导出 `antigravity-accounts.json`（plugin-compatible v3 格式），供 OpenCode 插件直接导入\n3.  点击 **Clear Config** 可一键清除 Manager 配置并清理 legacy 残留；点击 **Restore** 可从备份恢复。\n4.  Windows 用户路径为 `C:\\Users\\\u003C用户名>\\.config\\opencode\\`（与 `~\u002F.config\u002Fopencode` 规则一致）。\n\n**快速验证命令：**\n```bash\n# 测试 antigravity-manager provider（支持 --variant）\nopencode run \"test\" --model antigravity-manager\u002Fclaude-sonnet-4-5-thinking --variant high\n\n# 若已安装 opencode-antigravity-auth 插件，验证 google provider 仍可独立工作\nopencode run \"test\" --model google\u002Fantigravity-claude-sonnet-4-5-thinking --variant max\n```\n\n### 如何接入 Kilo Code?\n1.  **协议选择**: 建议优先使用 **Gemini 协议**。\n2.  **Base URL**: 填写 `http:\u002F\u002F127.0.0.1:8045`。\n3.  **注意**: \n    - **OpenAI 协议限制**: Kilo Code 在使用 OpenAI 模式时，其请求路径会叠加产生 `\u002Fv1\u002Fchat\u002Fcompletions\u002Fresponses` 这种非标准路径，导致 Antigravity 返回 404。因此请务必填入 Base URL 后选择 Gemini 模式。\n    - **模型映射**: Kilo Code 中的模型名称可能与 Antigravity 默认设置不一致，如遇到无法连接，请在“模型映射”页面设置自定义映射，并查看**日志文件**进行调试。\n\n### 如何在 Python 中使用?\n```python\nimport openai\n\nclient = openai.OpenAI(\n    api_key=\"sk-antigravity\",\n    base_url=\"http:\u002F\u002F127.0.0.1:8045\u002Fv1\"\n)\n\nresponse = client.chat.completions.create(\n    model=\"gemini-3-flash\",\n    messages=[{\"role\": \"user\", \"content\": \"你好，请自我介绍\"}]\n)\nprint(response.choices[0].message.content)\n```\n\n### 如何使用图片生成 (Imagen 3)?\n\n#### 方式一：OpenAI Images API (推荐)\n```python\nimport openai\n\nclient = openai.OpenAI(\n    api_key=\"sk-antigravity\",\n    base_url=\"http:\u002F\u002F127.0.0.1:8045\u002Fv1\"\n)\n\n# 生成图片\nresponse = client.images.generate(\n    model=\"gemini-3-pro-image\",\n    prompt=\"一座未来主义风格的城市，赛博朋克，霓虹灯\",\n    size=\"1920x1080\",      # 支持任意 WIDTHxHEIGHT 格式，自动计算宽高比\n    quality=\"hd\",          # \"standard\" | \"hd\" | \"medium\"\n    n=1,\n    response_format=\"b64_json\"\n)\n\n# 保存图片\nimport base64\nimage_data = base64.b64decode(response.data[0].b64_json)\nwith open(\"output.png\", \"wb\") as f:\n    f.write(image_data)\n```\n\n**支持的参数**：\n- **`size`**: 任意 `WIDTHxHEIGHT` 格式（如 `1280x720`, `1024x1024`, `1920x1080`），自动计算并映射到标准宽高比（21:9, 16:9, 9:16, 4:3, 3:4, 1:1）\n- **`quality`**: \n  - `\"hd\"` → 4K 分辨率（高质量）\n  - `\"medium\"` → 2K 分辨率（中等质量）\n  - `\"standard\"` → 默认分辨率（标准质量）\n- **`n`**: 生成图片数量（1-10）\n- **`response_format`**: `\"b64_json\"` 或 `\"url\"`（Data URI）\n\n#### 方式二：Chat API + 参数设置 (✨ 新增)\n\n**所有协议**（OpenAI、Claude）的 Chat API 现在都支持直接传递 `size` 和 `quality` 参数：\n\n```python\n# OpenAI Chat API\nresponse = client.chat.completions.create(\n    model=\"gemini-3-pro-image\",\n    size=\"1920x1080\",      # ✅ 支持任意 WIDTHxHEIGHT 格式\n    quality=\"hd\",          # ✅ \"standard\" | \"hd\" | \"medium\"\n    messages=[{\"role\": \"user\", \"content\": \"一座未来主义风格的城市\"}]\n)\n```\n\n```bash\n# Claude Messages API\ncurl -X POST http:\u002F\u002F127.0.0.1:8045\u002Fv1\u002Fmessages \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"x-api-key: sk-antigravity\" \\\n  -d '{\n    \"model\": \"gemini-3-pro-image\",\n    \"size\": \"1280x720\",\n    \"quality\": \"hd\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"一只可爱的猫咪\"}]\n  }'\n```\n\n```\n\n**参数优先级**: `imageSize` 参数 > `quality` 参数 > 模型后缀\n\n**✨ 新增 `imageSize` 参数支持**:\n\n除了 `quality` 参数外,现在还支持直接使用 Gemini 原生的 `imageSize` 参数:\n\n```python\n# 使用 imageSize 参数(最高优先级)\nresponse = client.chat.completions.create(\n    model=\"gemini-3-pro-image\",\n    size=\"16:9\",           # 宽高比\n    imageSize=\"4K\",        # ✨ 直接指定分辨率: \"1K\" | \"2K\" | \"4K\"\n    messages=[{\"role\": \"user\", \"content\": \"一座未来主义风格的城市\"}]\n)\n```\n\n```bash\n# Claude Messages API 也支持 imageSize\ncurl -X POST http:\u002F\u002F127.0.0.1:8045\u002Fv1\u002Fmessages \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"x-api-key: sk-antigravity\" \\\n  -d '{\n    \"model\": \"gemini-3-pro-image\",\n    \"size\": \"1280x720\",\n    \"imageSize\": \"4K\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"一只可爱的猫咪\"}]\n  }'\n```\n\n**参数说明**:\n- **`imageSize`**: 直接指定分辨率 (`\"1K\"` \u002F `\"2K\"` \u002F `\"4K\"`)\n- **`quality`**: 通过质量等级推断分辨率 (`\"standard\"` → 1K, `\"medium\"` → 2K, `\"hd\"` → 4K)\n- **优先级**: 如果同时指定 `imageSize` 和 `quality`,系统会优先使用 `imageSize`\n\n\n#### 方式三：Chat 接口 + 模型后缀\n```python\nresponse = client.chat.completions.create(\n    model=\"gemini-3-pro-image-16-9-4k\",  # 格式：gemini-3-pro-image-[比例]-[质量]\n    messages=[{\"role\": \"user\", \"content\": \"一座未来主义风格的城市\"}]\n)\n```\n\n**模型后缀说明**：\n- **宽高比**: `-16-9`, `-9-16`, `-4-3`, `-3-4`, `-21-9`, `-1-1`\n- **质量**: `-4k` (4K), `-2k` (2K), 不加后缀（标准）\n- **示例**: `gemini-3-pro-image-16-9-4k` → 16:9 比例 + 4K 分辨率\n\n#### 方式四：Cherry Studio 等客户端设置\n在支持 OpenAI 协议的客户端（如 Cherry Studio）中，可以通过**模型设置**页面配置图片生成参数：\n\n1. **进入模型设置**：选择 `gemini-3-pro-image` 模型\n2. **配置参数**：\n   - **Size (尺寸)**: 输入任意 `WIDTHxHEIGHT` 格式（如 `1920x1080`, `1024x1024`）\n   - **Quality (质量)**: 选择 `standard` \u002F `hd` \u002F `medium`\n   - **Number (数量)**: 设置生成图片数量（1-10）\n3. **发送请求**：直接在对话框中输入图片描述即可\n\n**参数映射规则**：\n- `size: \"1920x1080\"` → 自动计算为 `16:9` 宽高比\n- `quality: \"hd\"` → 映射为 `4K` 分辨率\n- `quality: \"medium\"` → 映射为 `2K` 分辨率\n\n\n## 📝 开发者与社区\n\n*   **版本演进 (Changelog)**:\n    *   **v4.1.33 (2026-05-01)**:\n        -   **[核心修复] 解决 Antigravity IDE  OAuth Token 刷新失效及 invalid_grant 报错问题。**\n        -   **[核心修复] 解决由于项目 ID 冲突导致的 403 报错，并实现企业\u002F个人配额的自动重试降级。**\n        -   **[功能增强] 支持旧账号数据的自动兼容与静默升级，旧用户无需重新登录即可恢复功能。**\n    *   **v4.1.32 (2026-04-18)**:\n        -   **[代理增强] Gemini 代理生产级稳定性重构**:\n            -   **指纹同构化**: 重写 `requestId` 生成逻辑，严格遵循官方 `agent\u002F{timestamp}\u002F{hex8}` 路径指纹。\n            -   **链路追踪注入**: 在 OpenAI\u002FClaude 协议转换层强制注入 `__cloudCodeMeta` 追踪 ID，实现协议级流量拟真。\n            -   **冗余重试窗口**: 针对 `10xx`\u002F`503`\u002F`529` 等瞬时错误实现 1500ms 原地容错窗口，大幅提升高并发稳定性。\n        -   **[核心修复] 修正反代服务拦截漏洞 (Issue #3027)**:\n            -   修复了在应用启动但未点击“启动”按钮时，后端代理端口已处于活动状态并能处理请求的逻辑缺陷。\n            -   现在服务初始运行状态默认为禁止，只有在显式启动（手动或自动）后才会放行代理流量，确保了 UI 状态与后端逻辑的严格一致。\n            -   管理后台 API 路径已做豁免处理，确保基础管理功能不受影响。\n        -   **[核心修复] 彻底解决账号切换时的“状态失效”与“指纹冲突”问题**:\n            -   **指纹同步**: 实现了 `serviceMachineId` 在磁盘配置与 `state.vscdb` 数据库间的同步注入，解决了切换账号后 VS Code 弹出“环境变更”并要求重新登录的顽疾。\n            -   **校验降级**: 弱化了企业版账号的项目预检逻辑。当无法自动解析到 `project_id` 时，系统将改为记录警告而非抛错中断切换，确保权限受限账号依然可以完成切换并正常使用。\n        -   **[重要提示] 账号切换与风险建议**:\n            -   **自动重试提示**: 如果在 Antigravity 客户端不停地出现 `retry`，请尝试切换账号使用即可。\n            -   **风险控制说明**: 对于反代用户，虽然本次更新了部分增强，但使用第三方工具仍可能因违反服务条款而被暂停使用。如有必要，建议使用 Free 账号或企业 Free 账号。\n\n    *   **v4.1.31 (2026-03-25)**:\n        -   **[推荐项目] 支持新成员 [Antigravity-Tools-LS](https:\u002F\u002Fgithub.com\u002Flbjlaq\u002FAntigravity-Tools-LS)**: 专为 AI 协议设计的语言服务器，提供极致的开发辅助与调试体验。\n        -   **[核心修复] 稳定企业切换与多 OAuth 客户端认证 (PR #2330)**:\n            -   **多客户端支持**: 引入了对多 OAuth-client 的支持与 `oauth_client_key` 跟踪机制，支持主动切换。\n            -   **企业模式增强**: 加格了企业模式切换时的预检（检测 `project_id`），并优化了失败提示。\n            -   **状态显示优化**: 改进了需要验证 (Verification Required)、风险 (Risk)、受限 (Rate Limited) 等异常账号状态的 UI 显示。\n            -   **API 访问回退**: 为 `fetchAvailableModels` 接口添加了 Sandbox -> Daily -> Prod 的自动回退路径，在遇到 429 或 5xx 错误时自动尝试备选环境。\n        -   **[代理修复] 修复使用 Gemini v1internal 协议时的 400 错误 (PR #2356)**:\n            -   **冲突避让**: 解决了 `v1internal` 协议不支持同时使用 `googleSearch` 和 `functionDeclarations` 的限制。\n            -   **智能注入**: 现在当请求中包含函数定义时，代理将自动跳过 Google 搜索工具的注入，确保请求成功率。\n        -   **[代理修复] 标准化 Gemini SSE 错误格式，防止 IDE 崩溃 (Issue #2371)**:\n            -   **格式规范化**: 将 Gemini 处理器的流式错误输出包装为标准 OpenAI `choices` 格式，彻底解决了 IDE 解析器因 `TypeError` 导致的 UI 冻结问题。\n            -   **连接自愈**: 为 SSE 流添加了标准的 `data: [DONE]` 终止符，并优化了错误状态下的存储路径探测逻辑。\n    *   **v4.1.30 (2026-03-15)**:\n        -   **[核心优化] 引入 fetchAvailableModels 接口的多级降级机制 (PR #2329)**:\n            -   **端点降级策略**: 为 `fetchAvailableModels` API 引入了 Sandbox -> Daily -> Prod 的端点自动降级机制。当请求遇到 `429 (Too Many Requests)` 或 `5xx` 服务器错误时，系统会自动平滑切换到备选端点，显著提升了配额刷新和模型列表获取的稳定性。\n            -   **逻辑对齐**: 将配额获取的错误处理和重试逻辑与核心 API 处理器 (Handler) 进行了对齐，确保了请求管道在极端情况下的行为一致性。\n        -   **[核心修复] 优化 Gemini SSE 流错误处理，防止传输编码错误 (PR #2322)**:\n            -   **错误封装导出**: 修复了 Gemini SSE 流 en 遇到上游错误时直接抛出原始错误导致客户端触发 `TransferEncodingError` 的问题。系统现在会将流错误捕获并封装为标准的 JSON 格式数据帧输出，确保连接能够优雅关闭并向前端传递清晰的错误信息。\n            -   **多协议对齐**: 该修复同步应用到了 Gemini 原生处理器与 Claude 协议映射器，确保了跨协议流式输出的一致性和健壮性。\n    *   **v4.1.29 (2026-03-12)**:\n        -   **[重要提醒] 谷歌风控与第三方工具使用风险**:\n            -   由于谷歌加强风控，第三方工具会违反服务条款而被暂停使用 Antigravity、Gemini CLI 或 Gemini Code Assist。\n            -   使用第三方软件、工具或服务访问 Antigravity、Gemini CLI 或 Gemini Code Assist（例如，使用 OpenClaw 和 Antigravity OAuth）违反了适用的条款和政策。此类行为可能导致您的帐户被暂停或终止。建议只使用切换功能\n            -   **申诉链接**: 如果您认为帐户被误封，请通过 [此链接](https:\u002F\u002Fforms.gle\u002FhGzM9MEUv2azZsrb9) 进行申诉。\n            -   如果你对新的反代功能感兴趣可以查看 [TG 频道](https:\u002F\u002Ft.me\u002FAntigravityManager) 获取最新动态。\n            -   ![风险提示](docs\u002Fimages\u002FCleanShot%202026-03-12%20at%2009.34.34@2x.png)\n        -   **[核心功能] 账号感知的动态模型重映射与回退 (PR #2286)**:\n            -   **动态回退逻辑**: 解决了由于不同账号对 Gemini Pro 模型层级（如 `high` \u002F `low`）访问权限不一致导致的 `404\u002F400` 报错问题。系统现在会根据选中账号的实际权限，在同系列模型间自动执行平滑回退（例如：`gemini-3.1-pro-high` -> `gemini-3.1-pro-low` -> 默认层级）。\n            -   **账号权限实时校验**: 在请求进入处理器前，动态通过账号文件数据校验目标模型的可用性，实现真正意义上的“账号感知”调度。\n            -   **重映射优先级优化**: 确立了 `API 弃用规则 > 账号感知回退 > 用户自定义映射 > 系统默认映射` 的科学优先级链条。\n            -   **文档同步**: 新增了 `docs\u002Fmodel-remapping-logic.md`，完整记录了复杂的重映射逻辑流程。\n        -   **[核心修复] Windows CLI 探测增强与路径扫描优化 (PR #2298)**:\n            -   **路径主动扫描**: 引入了对 `APPDATA`、`LOCALAPPDATA` 以及 `NVM_HOME` 等路径的自动扫描机制，确保即使 CLI 未正确配置在系统 `PATH` 中也能被精准识别。\n            -   **脚本处理优化**: 改进了 Windows 环境下 `.cmd` 和 `.bat` 脚本的调用方式，解决了直接执行无法稳定获取版本号的问题。\n            -   **执行安全加固**: 新增了路径安全性校验逻辑，通过绝对路径检查与危险字符过滤，有效防范命令注入风险。\n        -   **[持续集成] 引入 GitHub Actions CI 工作流 (PR #2298)**:\n            -   **自动化质量控制**: 构建了基础的 CI 流水线，涵盖 Rust 代码格式化检查、静态分析以及跨平台编译测试，提升了代码合规性与交付稳定性。\n    *   **v4.1.28 (2026-03-03)**:\n        -   **[重要提醒] 谷歌风控与第三方工具使用风险**:\n            -   由于谷歌加强风控，第三方工具会违反服务条款而被暂停使用 Antigravity、Gemini CLI 或 Gemini Code Assist。\n            -   使用第三方软件、工具或服务访问 Antigravity、Gemini CLI 或 Gemini Code Assist（例如，使用 OpenClaw 和 Antigravity OAuth）违反了适用的条款和政策。此类行为可能导致您的帐户被暂停或终止。\n            -   **申诉链接**: 如果您认为帐户被误封，请通过 [此链接](https:\u002F\u002Fforms.gle\u002FhGzM9MEUv2azZsrb9) 进行申诉。\n            -   **[后续规划] 关于未来版本更迭**:\n                -   我们计划在后续推送新版本，届时可能会将“账号切换”与“反代代理”功能解耦为独立的模块或工具。\n                -   由于作者近期工作繁忙，发布可能会有延迟，感谢理解。\n                -   欢迎关注公众号 **Ctrler** 或 **[TG 频道](https:\u002F\u002Ft.me\u002FAntigravityManager)** 获取最新动态。\n            -   **请谨慎使用本项目。**\n        -   **[核心修复] 全系列模型限流锁定修复 (Fix Issue #2209)**:\n            -   **统一归一化逻辑**: 修复了 Claude 和 Gemini 系列模型在发生 429 (Too Many Requests) 错误时，由于限流 Key 未归一化导致负载均衡器无法识别锁定状态的问题。\n            -   **熔断器联动增强**: 确保即使在禁用\"额度保护\"的情况下，内置熔断器也能通过归一化后的模型 ID（如 `claude`, `gemini-3-flash` 等）精确拦截已耗尽账号，消除 90s 的无效等待。\n        -   **[核心修复] Gemini 系列模型 adaptive 模式下错误注入 `thinkingLevel` 导致 400 报错 (Fix Issue #2208)**:\n            -   **根因定位**: 4.1.27 引入的自适应识别逻辑将 `gemini-3.1-pro-high` \u002F `gemini-3.1-pro-low` 等 Gemini 系列模型误判为支持 `thinkingLevel`，而 `thinkingLevel` 是 Vertex AI Claude 原生协议专有参数，Gemini 系列底层走 v1internal 协议，仅接受 `thinkingBudget`，导致请求被 Google API 拒绝并返回 `400 INVALID_ARGUMENT`。\n            -   **条件收窄**: 将注入 `thinkingLevel` 的触发条件从 `contains(\"gemini-3\")` 修正为 `contains(\"claude\")`，确保 `thinkingLevel` 仅在 Claude 协议路径下注入，Gemini 系列模型在 adaptive 模式下统一回落到安全的 `thinkingBudget: 24576`。\n            -   **零附带损伤**: OpenAI 协议与 Gemini 原生协议路径本身无此问题，本次修复仅针对 Claude 协议映射器，影响范围最小。\n        -   **[核心修复] 修复 Claude Code 4.1.27+ 联网搜索 (Internal Tool) 失效问题 (Issue #2224)**:\n            -   **混合工具支持**: 克服了 Gemini v1internal API 对 `googleSearch` 与自定义 `functionDeclarations` 同时使用的限制。\n            -   **智能感知注入**: 重构了工具注入引擎，实现在 Gemini 2.0+ 和 3.0 系列模型上自动同时开启内置搜索与自定义开发者工具。\n            -   **多协议对齐**: 本次修复同步覆盖了 OpenAI 和 Gemini Native 协议，确保全协议栈在高性能模型下的联网能力一致性。\n            -   **后向兼容**: 针对旧版 Gemini 1.5 模型保留了自动排他转换逻辑，规避 400 错误。\n        -   **[核心修复] gemini-3-flash \u002F gemini-3.1-flash 函数调用时缺少 thought_signature 导致 400 报错 (Fix Issue #2167)**:\n            -   **根因定位**: 三个协议映射器（OpenAI \u002F Claude \u002F Gemini 原生）的模型识别逻辑均未将 `gemini-3-flash` 系列纳入 \"thinking 模型\" 范畴，致使在首次函数调用（无 Session 签名缓存）时，`thoughtSignature` 字段未被注入，Google v1internal API 返回 `400 INVALID_ARGUMENT`。\n            -   **OpenAI 协议**: 新增 `is_gemini_flash_thinking` 判断变量，在 `functionCall` 构建阶段，当 Session 缓存为空时自动注入哨兵值 `skip_thought_signature_validator`。\n            -   **Claude 协议**: 将 `gemini-3-flash` \u002F `gemini-3.1-flash` 加入 `target_model_supports_thinking` 识别列表；无签名时 flash 模型不再强制禁用 thinking，改为依赖现有哨兵注入路径（`build_contents` L1249-1256），保留模型思考能力。\n            -   **Gemini 原生协议**: 在 `wrap_request` 的 `functionCall` 处理块中，当 Session 缓存为空时对 flash 模型补充哨兵 fallback，覆盖首次调用场景。\n            -   **零附带损伤**: flash 模型不触发 `thinkingConfig` 注入逻辑，不影响非思考类请求的正常路径；顺带修复了 `test_wrap_request_with_signature` 单元测试中 `session_id` 参数位置错误的既有 Bug。\n        -   **[核心修复] Token 统计时区偏差修复 (Fix Issue #2214)**:\n            -   **自动时区贴合**: 将 Token 统计的基准时间从标准时间 (UTC) 切换为系统本地时间 (Local Time)。\n            -   **全球多时区支持**: 引入了 SQLite `'localtime'` 转换机制。无论用户身处全球何处，统计图表的时间轴都将自动与其系统时钟对齐，彻底解决了北京时间或其他非 UTC 时区下的数据错位问题。\n\n    *   **v4.1.27 (2026-03-01)**:\n        -   **[核心优化] 代理配置初始化与工具图片保留修复 (Issue #2156)**:\n            -   **补全默认配置**: 修复了 `ProxyConfig` 默认初始化时缺失 `global_system_prompt`、`proxy_pool` 和 `image_thinking_mode` 字段导致的编译失败问题。\n            -   **模式匹配完善**: 补充了 `OpenAIContentBlock` 枚举匹配中的未知类型兜底分支 (`_ => {}`)，消除非穷尽匹配的编译警告\u002F错误。\n            -   **图片无条件保留**: 移除冗余的 `preserve_tool_result_images` 开关，现已强制保留 `tool_result` 中的图片数据结构，转为大模型支持的 `inlineData` 结构，大幅简化逻辑。\n        -   **[功能增强] 修改 docker-compose.yml 的配置 (PR #2185)**:\n            -   **命名空间更新**: 将构建的默认镜像名称从 `antigravity-manager` 更新为 `lbjlaq\u002Fantigravity-manager`。\n            -   **环境变量占位符**: 为环境变量添加了带默认值的占位符语法，允许用户通过宿主机的环境变量或 `.env` 文件来灵活覆盖默认配置。\n        -   **[核心修复] OpenCode thinking budget 参数全面兼容 (Issue #2186)**:\n            -   **架构支持**：解决了 Vercel AI SDK (`@ai-sdk\u002Fanthropic`) 配合 OpenCode 使用时，因原生蛇形命名 `budget_tokens` 导致系统无法启动并抛出 `AI_UnsupportedFunctionalityError: 'thinking requires a budget'` 的问题。\n            -   **双字段输出**：在向 OpenCode \u002F Claude CLI 等外部客户端同步模型配置时，自动同时输出标准的 `budget_tokens` 与小驼峰的 `budgetTokens` 字段。\n            -   **服务端适配**：后端配置解析器现已原生支持这两种命名变体。\n        -   **[核心修复] 解决免费账号配额耗尽后的无限重试与路由死锁问题 (Issue #2184)**：\n            -   **问题根源**：修补了 Google API `fetchAvailableModels` 接口在特定负载下无法正确返回 `remainingFraction` 的缺陷。由于缺失 `project` 标识，导致接口错误地为已耗尽配额（HTTP 429）的账号返回 `1.0`（100%），进而导致智能路由算法将请求持续分配给不可用账号，引发长时间重试及配额显示错误。\n            -   **负载修复**：修改配额刷新请求，在负载中精准注入正确的 `{\"project\": project_id}` 结构。恢复了配额信息的准确感知，并在未破坏原生字段（如 `supportsThinking`）的前提下实现了接口完全兼容。\n            -   **自愈恢复**：通过读取真实配额，系统现已能够实时识别免费账号的耗尽状态并将其可用度置为 0%，无缝触发多账号自愈轮询（Smart Status Self-healing），解决请求受阻与长等待问题。\n        -   **[核心修复] 解决首页 Gemini 绘图平均配额显示为 0 的问题 (Issue #2160)**：\n            -   **匹配更新**：将 Dashboard 中的绘图模型匹配逻辑从硬编码的 `gemini-3-pro-image` 更新为包含最新的 `gemini-3.1-flash-image`。\n            -   **配置同步**：在 `modelConfig.ts` 中补全了新版绘图模型的 UI 定义，确保图标和标签正常渲染。\n        -   **[核心功能] 全协议动态模型规格 (Model Specs) 集成 (Issue #2176)**：\n            -   **动态引擎**：实现了“动态优先、静态兜底”的规格引擎，优先识别 API 返回的 `max_output_tokens` 等硬限额数据。\n            -   **静态资源**：引入 `model_specs.json` 集中管理 30+ 种模型的默认参数，彻底告别映射器中的硬编码逻辑。\n            -   **协议注入**：统一了 OpenAI、Claude 和 Gemini 协议处理器对 Token 限额的注入方式，增强了跨版本兼容性。\n        -   **[核心修复] 深度解决 Claude -> Gemini 3 路径下的 400 INVALID_ARGUMENT 异常**：\n            -   **自适应识别**：修正了自适应模式逻辑，确保映射后的 Gemini 3 模型能正确使用 `thinkingLevel` 支持，而非失效的 budget 逻辑。\n            -   **冲突规避**：实现了参数排他性检查，在开启分级思维时自动剥离不兼容的 `thinkingBudget`。\n            -   **Token 溢出保护**：为 `maxOutputTokens` 自动提升补齐逻辑增加了 `65536` 的模型硬上限保护，根除参数越界导致的请求失败。\n    *   **v4.1.26 (2026-02-27)**:\n        -   **[功能增强] 优化配额刷新逻辑，支持同步禁用账号**:\n            -   **逻辑放宽**: “刷新所有”和“批量刷新”现在不再跳过标记为 `disabled` 或 `proxy_disabled` 的账号。\n            -   **自动恢复**: 允许通过刷新操作尝试重新激活因 Token 过期或临时错误而被禁用的账号，提升了多账号管理的灵活性。\n        -   **[核心修复] 修复 Windows 系统下后台任务导致 cmd 黑框闪烁的问题**:\n            -   **静默执行**: 通过为 `std::process::Command` 封装注入 `CREATE_NO_WINDOW` 标志，解决了在 Windows 端应用底层组件（如版本探测、重启更新等）调用系统命令时引发的命令行窗口一闪而过的视觉干扰，确保全过程无边框静默执行。\n    *   **v4.1.25 (2026-02-27)**:\n        -   **[核心功能] 动态画图模型与新架构支持**:\n            -   **动态解析**: 移除了针对 `gemini-3-pro-image` 的硬编码限制。通过新增的 `clean_image_model_name` 智能清洗后缀（如 `-4k`, `-16x9`），全面兼容如 `gemini-3.1-flash-image` 等任意未来新增的画图模型。\n            -   **配额自适应**: 优化了 `normalize_to_standard_id`，使用 `image` 关键词宽泛匹配，确保新模型也能正确触发配额保护机制。\n        -   **[核心功能] 聊天接口 (Chat Completions) 画图拦截支持**:\n            -   **跨界融合**: OpenAI 和 Claude 协议的对话流现在能智能探测画像生成意图。当使用带有 `image` 的模型名时，系统会将常规文本生成请求静默转移给高级画图引擎。\n            -   **流式回显**: 生成完成后，通过 Markdown 格式（`![Generated Image](url)`）以 SSE 流式返回图片链接，完美适配所有支持 Markdown 的聊天客户端。\n        -   **[核心修复] 彻底修复画图重定向 404 与参数穿透失效**:\n            -   **404 移除**: 移除了底层调用中残留的旧模型硬编码，根除因模型信息不一致导致的 404 Not Found 崩溃及账号受损。\n            -   **精准参数继承**: 修复了未传参数时系统强制塞入默认 `1024x1024` 的行为。现在，如果模型名带有后缀（如 `gemini-3-pro-image-16x9-4k`），后台会严格优先解析后缀分辨率进行穿透绘图。\n    *   **v4.1.24 (2026-02-26)**:\n        -   **[功能调整] 禁用自动预热调度程序，保留手动预热**:\n            -   **变更说明**: 为了减少不必要的后台资源占用，本版本已注释掉自动预热（Smart Warmup）的后台调度逻辑。\n            -   **设置隐藏**: 设置页面中的“智能预热”配置项已隐藏。\n            -   **手动保留**: 账号管理页面的手动预热功能保持不变，仍可正常使用。\n            -   **恢复指引**: 如果您需要自动预热功能，可以自行拉取本项目源代码，在 `src-tauri\u002Fsrc\u002Flib.rs` 中取消 `start_scheduler` 的注释并解除 `Settings.tsx` 中相关 UI 的注释后重新编译使用。\n        -   **[核心修复] 智能版本指纹选择与启动 Panic 修复 (Issue #2123)**:\n            -   **问题根源**: 1) `constants.rs` 中的 `KNOWN_STABLE_VERSION` 硬编码了低版本号，当本地 IDE 检测失败时回退该版本作为请求头，导致 Google 拒绝 Gemini 3.1 Pro 模型。2) 新增的远端版本网络调用直接在 `LazyLock` 初始化（Tokio 异步上下文）中执行，导致 `Cannot block the current thread` 严重崩溃。\n            -   **修复方案**: 1) 引入\"智能最大版本\"策略 `max(本地版本, 远端版本, 4.1.27)`，始终取最高值。2) 将网络探测逻辑移至独立 OS 线程并配合 `mpsc` 通道，安全避开异步运行时限制。保证无论本地版本新旧，指纹均不低于上游要求，且应用能稳定启动。\n        -   **[核心修复] 动态模型 maxOutputTokens 限额系统 (替代 PR #2119 硬编码方案)**:\n            -   **问题根源**: 部分客户端发送的 `maxOutputTokens` 超过模型物理上限（如 Flash 限制 64k），导致上游返回 400 错误。\n            -   **三层限额架构**:\n                -   **第一层（动态优先）**: 实时读取账号 `quota.models` 数据。\n                -   **第二层（静态默认表）**: `model_limits.rs` 内置已知限额（如 Flash 65536）。\n                -   **第三层（全局兜底）**: 默认 131072。\n            -   **实现细节**: 在 `wrap_request()` 中注入裁剪逻辑，确保请求参数合法。\n    *   **v4.1.23 (2026-02-25)**:\n        -   **[安全增强] 优化与原生对齐应用层与底层特征指纹，提升请求稳定性与防拦截能力。**\n        -   **[核心修复] 将 v1beta thinkingLevel 转换为 v1internal thinkingBudget (PR #2095)**:\n            -   **问题根源**: OpenClaw、Cline 等客户端发送 v1beta 格式的 `thinkingLevel` 字符串（`\"NONE\"` \u002F `\"LOW\"` \u002F `\"MEDIUM\"` \u002F `\"HIGH\"`）到 `generationConfig.thinkingConfig`。当 AGM 通过 Google v1internal API 代理请求时，Google 会因为 v1internal 仅接受数字型 `thinkingBudget` 而拒绝请求，返回 `400 INVALID_ARGUMENT`。\n            -   **修复方案**: 在 `wrap_request()` 的现有 budget 处理逻辑之前，新增一个早期转换步骤：检测 `thinkingLevel` 字符串，将其映射为对应的数字 `thinkingBudget`（`NONE`→0, `LOW`→4096, `MEDIUM`→8192, `HIGH`→24576），然后删除 `thinkingLevel` 字段并写入 `thinkingBudget`，确保下游所有 budget 处理逻辑（预算封顶、`maxOutputTokens` 调整、自适应检测）都能看到正确的数值预算。\n            -   **测试**: 已验证 OpenClaw 发送 `thinkingLevel: \"LOW\"` 到 `gemini-3.1-pro-high`（Gemini 原生协议），请求现返回 `200 OK`，不再报 400 错误。\n        -   **[核心修复] 账号数据损坏与后台任务无限循环修复 (PR #2094)**:\n            -   **问题根源**: 当用户在设置中输入过大的刷新间隔值（如 999999999）时，`interval * 60 * 1000` 超过 JS 引擎 32 位有符号整数上限 `2,147,483,647ms`，浏览器会将 `setInterval` 延迟静默截断为 1ms，导致前端每秒触发数千次 `refreshAllQuotas`\u002F`syncAccountFromDb` 请求，进而引发多线程并发写同一 `[uuid].json` 文件，造成字节流交错、JSON 尾部残留，账号数据永久损坏。\n            -   **原子文件写入 (`account.rs`)**: `save_account` 改为先写入 UUID 后缀的临时文件，再通过 `fs::rename`（POSIX）\u002F `MoveFileExW`（Windows）原子替换目标文件，与已有的 `save_account_index` 保持一致，从根本上消除并发写导致的 JSON 损坏。\n            -   **setInterval 溢出保护 (`BackgroundTaskRunner.tsx`)**: 对 `refresh_interval` 和 `sync_interval` 两个定时器的延迟参数加上 `Math.min(..., 2147483647)` 上界限制，防止超过 INT32_MAX 后被浏览器截断为 1ms 无限循环。\n            -   **输入验证 (`Settings.tsx`)**: 将 `refresh_interval` 和 `sync_interval` 输入框的 `max` 属性从 `60` 更新为 `35791`（35791 min × 60000 \u003C INT32_MAX），并在 `onChange` 中添加 `NaN` fallback（默认为 1）及范围夹紧 `[1, 35791]`，从源头阻断非法值输入。\n        -   **[核心优化] OAuth 换票专属：剔除 JA3 指纹与动态 User-Agent 伪装**:\n            -   **纯净请求**: 仅针对 `exchange_code`（首次授权）和 `refresh_access_token`（静默续期）的换票请求，移除了底层网络库的 Chrome JA3 指纹伪装，恢复标准纯净的 TLS特征。\n            -   **动态 UA**: 换票时自动提取编译时版本号 (`CURRENT_VERSION`) 构建专属的 `User-Agent`（如 `vscode\u002F1.X.X (Antigravity\u002F4.1.27)`），以匹配纯净 TLS 链路。\n        -   **[功能增强] API 反代页面与设置页模型列表全面接入动态模型数据**:\n            -   **问题根源**: \"API 反代 → 支持模型与集成\"列表与\"模型路由中心\"的目标模型选择下拉框，以及\"设置 → 固定配额模型\"列表，此前均仅从静态 `MODEL_CONFIG` 读取硬编码模型信息，导致账号实际下发的动态新模型（如 `GPT-OSS 120B`、`Gemini 3.1 Pro (High)` 等）无法出现在这些列表中。\n            -   **修复方案**:\n                -   重构 `useProxyModels` Hook：以账号 `quota.models` 动态数据为第一优先数据源，聚合所有账号里所有模型的 `display_name`（为主展示名称）和 `name`（为模型 ID）；`MODEL_CONFIG` 仅作为图标\u002F分组的样式补充，以及无账号数据时的静态兜底。\n                -   新增自动懒加载逻辑：`ApiProxy` 页面本身不调用 `fetchAccounts`，现在 Hook 内部检测到 store 为空时自动触发，保证动态模型在任意导航路径下均可正常展示。\n                -   重构 `PinnedQuotaModels` 组件：采用同等策略，从 `useAccountStore` 拉取全账号动态模型，并修复了已固定的 \"thinking\" 类型模型显示\"未知\"的问题，改为优先展示其真实 `display_name`。\n            -   **去重优化**: 所有列表均基于模型原始 `name`（小写）去重，并额外过滤掉 `-thinking` 后缀的 MODEL_CONFIG 静态别名条目（这类变体已由账号数据中的 `supports_thinking` 标记覆盖）。\n    *   **v4.1.22 (2026-02-21)**:\n        -   **[重要提醒] 2api 风控风险提示**:\n            -   由于近期的谷歌风控原因，使用 2api 功能会导致账号被风控的概率显著增加。\n            -   **强烈建议**: 为了确保您的账号安全与调用稳定性，建议减少或停止使用 2api 功能。目前更原生、更稳定的 **gRPC (`application\u002Fgrpc`)** 或 **gRPC-Web (`application\u002Fgrpc-web`)** 协议代理支持仍在积极测试中，如果您有相关的测试经验或想法，非常欢迎联系讨论，也欢迎您建立新分支一起探索！\n            -   \u003Cdetails>\u003Csummary>📸 点击查看 gRPC 实时转换 OpenAI 规范测试演示\u003C\u002Fsummary>\u003Cimg src=\"docs\u002Fimages\u002Fusage\u002Fgrpc-test.png\" alt=\"gRPC Test\" width=\"600\">\u003C\u002Fdetails>\n        -   **[核心优化] Claude Sonnet 4.5 迁移至 4.6 (PR #2014)**:\n            -   **模型升级**: 引入 `claude-sonnet-4-6` 及 `claude-sonnet-4-6-thinking` 作为主推模型。\n            -   **平滑过渡**: 自动将 legacy 模型 `claude-sonnet-4-5` 重定向至 `4.6`。\n            -   **全局适配**: 更新了全部 12 种语言的本地化文件、UI 标签（Sonnet 4.6, Sonnet 4.6 TK, Opus 4.6 TK）以及预设路由。\n        -   **[核心优化] Gemini Pro 模型名称迁移 (PR #2063)**: 将 `gemini-pro-high\u002Flow` 迁移至 `gemini-3.1-pro`，确保与 Google 最新 API 命名对齐。\n        -   **[重大架构] 国际化 (i18n) 与结构化模型配置集成 (PR #2040)**:\n            -   **架构重构**: 引入了全新的 i18n 翻译框架，将硬编码的模型展示逻辑解耦至结构化 `MODEL_CONFIG`。\n            -   **逻辑适配**: 在账号表格、详情弹窗和设置页面中集成了基于 i18n 标签的动态去重机制，修复了 Gemini 3.1 Pro 额度重复显示的 UI 问题。\n            -   **多语言提升**: 优化并修正了所有 12 种语言的版本描述，将 `Claude 4.5` 描述全面升级为正式版 `4.6`，并将 `G3` 描述统一为 `G3.1`。\n            -   **[核心修复] Claude Opus 4.6 思考模式 400 报错 (Claude 协议)**:\n            -   **参数专项对齐**: 修复了 `claude-opus-4-6-thinking` 在 Claude 协议下返回 `400 INVALID_ARGUMENT` 的问题。通过强制对齐 `thinkingBudget` (24576) 与 `maxOutputTokens` (57344)，并剔除在该模式下不兼容的 `stopSequences`，确保其请求参数与 100% 成功的 OpenAI 协议完全一致，提升了对 Claude 原生协议客户端的兼容性。\n    *   **v4.1.21 (2026-02-17)**:\n        -   **[核心修复] Cherry Studio \u002F Claude 协议兼容性 (Fix Issue #2007)**:\n            -   **maxOutputTokens 限制**: 修复了 Cherry Studio 等客户端发送超大 `maxOutputTokens` (128k) 导致 Google API 返回 `400 INVALID_ARGUMENT` 的问题。现在自动将 Claude 协议的输出上限限制为 **65536**，确保请求始终在 Gemini 允许的范围内。\n            -   **Adaptive 思考模式对齐**: 针对 Gemini 模型优化了 Claude 协议的 `thinking: { type: \"adaptive\" }` 行为。现在自动映射为 **24576** 的固定思考预算 (与 OpenAI 协议一致)，解决了 Gemini Vertex AI 对 `thinkingBudget: -1` 的不兼容问题，显著提升了 Cherry Studio 的思考模式稳定性。\n        -   **[核心修复] 生产环境自定义协议支持 (PR #2005)**:\n            -   **协议修复**: 默认启用 `custom-protocol` 特性，修复了生产环境下自定义协议 (如 `tauri:\u002F\u002F`) 加载失败的问题，确保本地资源和特殊协议请求的稳定性。\n        -   **[核心优化] 托盘图标与窗口生命周期管理**:\n            -   **智能托盘**: 引入 `AppRuntimeFlags` 状态管理，实现了窗口关闭行为与托盘状态的联动。\n            -   **行为优化**: 当托盘启用时，关闭窗口将自动隐藏而非退出应用；当托盘禁用时，关闭窗口将正常退出，提供了更符合直觉的桌面体验。\n        -   **[核心增强] Linux 版本检测与 HTTP 客户端鲁棒性**:\n            -   **版本解析**: 增强了 Linux 平台的版本号提取逻辑 (`extract_semver`)，能从复杂的命令行输出中准确识别版本，提升了自动更新和环境检测的准确性。\n            -   **客户端降级**: 为 HTTP 客户端构建过程增加了自动降级机制。当代理配置导致构建失败时，系统会自动回退到无代理模式或默认配置，防止因网络配置错误导致应用完全不可用。\n        -   **[核心修复] Cherry Studio 联网搜索空响应修复 (\u002Fv1\u002Fresponses)**:\n            -   **SSE 事件补全**: 重写了 `create_codex_sse_stream`，补全了 OpenAI Responses API 规范要求的完整 SSE 事件生命周期（`response.output_item.added`、`content_part.added\u002Fdone`、`output_item.done`、`response.completed`），解决了 Cherry Studio 因事件缺失导致无法组装响应内容的问题。\n            -   **联网搜索注入修复**: 过滤了 Cherry Studio 发送的 `builtin_web_search` 工具声明，防止其与 `inject_google_search_tool` 冲突，确保 Google Search 工具被正确注入。\n            -   **搜索引文回显**: 为 Codex 流式响应添加了 `groundingMetadata` 解析，支持在联网搜索结果中回显搜索查询和来源引文。\n        -   **[优化] Claude 协议联网与思考稳定性 (PR #2007)**:\n            -   **移除联网降级**: 移除了 Claude 协议中针对联网搜索的激进模型降级逻辑，避免不必要的模型回退。\n            -   **移除思考历史降级**: 移除了 `should_disable_thinking_due_to_history` 检查，不再因历史消息格式问题永久禁用思考模式，改为依赖 `thinking_recovery` 机制自动修复。\n        -   **UI 优化 (Fix #2008)**: 改进了冷却时间的显示颜色 (使用蓝色)，提高了在小字体下的可读性。\n    *   **v4.1.20 (2026-02-16)**:\n        *   **[✨ 新春祝福] 祝大家马年一马当先，万事如意！Code 运昌隆，上线无 Bug！🧧**\n        *   **[Critical]** 修复了 Claude Opus\u002FHaiku 等模型在 Antigravity API 上的 `400 INVALID_ARGUMENT` 错误（通过恢复 v4.1.16 的核心协议格式）。\n        *   增强了流式响应的健壮性，优化了对心跳包和非从零开始的 Thinking Block 的处理。\n        *   **[核心修复] 修复图像生成配额同步问题 (Issue #1995)**：\n            *   **放宽模型过滤**：优化了配额抓取逻辑，增加了对 `image` \u002F `imagen` 关键字的支持，确保图像模型的配额信息能正常同步。\n            *   **即时刷新机制**：在图像生成成功后立即异步触发全局配额刷新，实现了 UI 侧剩余配额的实时反馈。\n        *   **[核心修复] 修复 OpenAI 流式收集器工具调用合并 Bug (PR #1994)**：\n            *   **ID 冲突校验**：在聚合流式片段时引入 ID 校验，防止多个工具调用因索引重叠而导致参数被错误拼接。\n            *   **索引稳定性优化**：优化了流式输出中的索引分配逻辑，确保多轮数据传输下工具调用索引始终单向递增。\n        *   **[核心优化] 极致拟真请求伪装 (Request Identity Camouflage)**:\n            *   **动态版本伪装**: 实现了智能版本探测机制。Antigravity 现在会自动读取本地安装的真实版本号构建 User-Agent，彻底告别了硬编码的 \"1.0.0\" 时代。\n            *   **Docker 环境兜底**: 针对无头模式（Docker\u002FLinux Server），内置了“已知稳定版”指纹库。当无法检测到本地客户端时，自动伪装为最新稳定版客户端（如 v1.16.5），确保服务端看到的永远是合法的官方客户端。\n            *   **全维度 Header 注入**: 补全了 `X-Client-Name`, `X-Client-Version`, `X-Machine-Id`, `X-VSCode-SessionId` 等关键指纹头，实现了从网络层到应用层的像素级伪装，进一步降低了 403 风控概率。\n        *   **[核心功能] 后台自动刷新开关与设置热保存**:\n            *   **独立开关**: 在设置页面新增了“后台自动刷新”的独立开关，允许用户更精细地控制后台任务。\n            *   **配置热保存**: 实现了设置项（自动刷新、智能预热、配额保护）的热保存机制，无需手动点击保存按钮即可实时生效。\n        *   **[逻辑优化] 智能预热与配额保护解耦**:\n            *   **解除锁定**: 彻底移除了“额度保护”对“智能预热”的强制绑定。现在开启额度保护仅会强制开启“后台自动刷新”（用于检测配额），而不会强制启动预热请求。\n            *   **[重要建议]**: 建议用户在当前版本暂时关闭“额度保护”和“后台自动刷新”功能，以避免因频繁请求导致的潜在问题。\n    *   **v4.1.19 (2026-02-15)**:\n        -   **[核心修复] 修复 Claude Code CLI 工具调用空文本块错误 (Fix #1974)**:\n            -   **字段缺失修复**: 修复了 Claude Code CLI 在工具调用过程中，因发送空文本块 (`text: \"\"`) 导致上游 API 报错 `Field required` 的问题。\n            -   **空值过滤**: 在协议转换层增加了对无效空文本块的自动过滤与清理。\n        -   **[核心功能] Gemini 模型 MCP 工具名模糊匹配支持**:\n            -   **幻觉修复**: 针对 Gemini 模型经常幻觉出错误的 MCP 工具名称（如显式调用 `mcp__puppeteer_navigate` 而非注册名 `mcp__puppeteer__puppeteer_navigate`）的问题，实现了智能模糊匹配算法。\n            -   **三级匹配策略**: 引入了后缀匹配、包含匹配及 Token 重叠度评分机制，显著提升了 Gemini 模型调用 MCP 工具的成功率。\n        -   **[核心修复] Opencode 同步逻辑修正 (Fix #1972)**:\n            -   **模型缺失修复**: 修复了 Opencode CLI 同步时缺失 `claude-opus-4-6-thinking` 模型定义的问题，确保该模型能被客户端正确识别和调用。\n    *   **v4.1.18 (2026-02-14)**:\n        -   **[核心升级] JA3 指纹伪装 (Chrome 123) 全面实装**:\n            -   **反爬虫突破**: 引入 `rquest` 核心库并集成 BoringSSL，实现了像素级复刻 Chrome 123 的 TLS 指纹 (JA3\u002FJA4)，有效解决高防护上游的 403\u002FCaptchas 拦截问题。\n            -   **全局覆盖**: 指纹伪装已应用至全局共享客户端及代理池管理器，确保从配额查询到对话补全的所有出站流量均模拟为真实浏览器行为。\n        -   **[架构重构] 通用流式响应处理 (Universal Stream Handling) (Issue #1955)**:\n            -   **双核兼容**: 重构了 SSE 处理与调试日志模块，通过 `Box\u003Cdyn Stream>` 实现了对 `reqwest` (标准) 与 `rquest` (伪装) 响应流的统一兼容，消除了底层类型冲突。\n        -   **[核心功能] 账号错误详情增强 (Account Error Details Expansion)**:\n            -   **详情解读**: 为“已禁用”和“403 Forbidden”状态的账号引入了深度错误详情弹窗，自动展示底层 API 报错原因（如 `invalid_grant` 等）。\n            -   **验证链接识别**: [新] 智能检测错误文本中的 Google 验证\u002F申诉链接，支持在弹窗内直接点击跳转，加速账号修复流程。\n            -   **时间校准**: 修复了由于单位转换错误导致的“检测时间”显示为未来的 Bug。\n        -   **[i18n] 全球化多语言支持大满贯**:\n            -   **全语言适配**: 为全部 12 种支持语言（阿、西、日、韩、缅、葡、俄、土、越、英及简繁中）同步补全了账号详情与错误状态词条。\n            -   **本地化精修**: 优化了各语言下的术语匹配（特别是日语、土耳其语和繁体中文），确保全球用户都能获得准确的母语提示。\n        -   **[核心修复] 修复图像生成模型后缀导致的配额匹配失效 (Issue #1955)**:\n            -   **模式归一化**: 修复了 `gemini-3-pro-image` 及其分辨率\u002F比例后缀（如 `-4k`, `-16x9`）因归一化匹配不精确导致的配额校验失效问题。\n            -   **配额对齐**: 确保所有图像模型变体都能正确映射到标准 ID，从而准确触发账号配额保护，解决了“无可用配额账号”的误报。\n    *   **v4.1.17 (2026-02-13)**:\n        -   **[用户体验] 自动更新体验升级 (PR #1923)**:\n            -   **后台下载**: 实现了更新包的后台静默下载，下载过程中不再阻断用户操作。\n            -   **进度反馈**: 新增下载进度条显示，实时反馈下载状态。\n            -   **重启提示**: 下载完成后会弹出更友好的重启提示，支持“立即重启”或“稍后重启”。\n            -   **逻辑优化**: 优先检查 `updater.json`，减少对 GitHub API 的直接依赖，提升检查速度。\n        -   **[文档更新] 跨平台安装脚本 (PR #1931)**:\n            -   **一键安装**: 在 README 中更新了 Option A 安装方式，推荐使用跨平台一键安装脚本。\n        -   **[社区建设] 新增 Telegram 频道入口**:\n            -   **社群卡片**: 在“设置 -> 关于”页面新增了 Telegram 频道卡片，方便用户快速加入官方频道获取最新资讯。\n            -   **布局优化**: 调整了关于页面的卡片网格布局，适配了 5 列显示，确保界面整洁美观。\n    *   **v4.1.16 (2026-02-12)**:\n        -   **[核心修复] 修复 Claude 协议 (Thinking 模型) 400 错误 (V4 方案)**:\n            -   **协议对齐**: 彻底修复了 Claude 3.7\u002F4.5 Thinking 等模型在通过代理调用时因参数结构不匹配导致的 `400 Invalid Argument` 错误。\n            -   **统一注入**: 废弃了导致冲突的根目录 `thinking` 字段注入，现在统一使用 Google 原生协议推荐的 `generationConfig.thinkingConfig` 嵌套结构。\n            -   **预算适配**: 为 Claude 模型适配了默认 16k 的思考预算 (Thinking Budget)，并解决了 Rust 借用检查导致的编译与运行时异常。\n        -   **[Bug修复] 修复 OpenAI 流式响应 Usage 重复问题 (Issue #1915)**:\n            -   **Token爆炸修复**: 修复了在流式传输模式下 (stream=true)，`usage` 字段被错误地附加到每一个数据块 (Chunk) 中，导致客户端 (如 Cline\u002FRoo Code) 统计的 Token 用量呈指数级虚高的问题。\n        -   **[核心优化] 开启 Linux 平台原生自动更新支持 (PR #1891)**:\n            -   **全平台覆盖**: 在 `updater.json` 中增加了对 `linux-x86_64` 和 `linux-aarch64` 平台的支持，使 Linux AppImage 用户现在也能正常收到自动更新通知。\n            -   **发布流优化**: 自动匹配并读取 Linux 版本的 `.AppImage.sig` 签名文件，实现了 macOS、Windows 与 Linux 三大主流平台的自动更新能力闭环。\n        -   **[新增功能] 跨平台一行命令安装脚本支持 (PR #1892)**:\n            -   **安装体验升级**: 新增 `install.sh` (Linux\u002FmacOS) 和 `install.ps1` (Windows) 脚本，支持通过极简的 `curl` 或 `irm` 命令实现全自动下载、安装与环境配置。\n            -   **智能适配**: 脚本支持自动识别操作系统、架构、包管理器（DEB\u002FRPM\u002FAppImage\u002FDMG\u002FNSIS），并提供版本锁定与 Dry-Run 预览模式。\n        -   **[核心优化] OpenCode 配置与本地二进制解耦及自定义网络支持 (Issue #1869)**:\n            -   **环境解耦**: 后端不再强制校验 `opencode` 二进制是否存在，允许在 Docker 等隔离环境下仅通过配置文件管理同步状态。\n            -   **自定义 BaseURL**: 前端新增 \"Custom Manager BaseURL\" 设置，支持手动指定 Manager 访问地址，完美解决 Docker Compose 容器互联与自定义反代场景下的连接问题。\n            -   **完全本地化**: 为新功能补全了中、英双语 I18n 支持，并修复了 OpenCode 同步弹窗的 JSX 渲染异常。\n        -   **[UI 修复] 修复 API 代理模板生成的 Python 代码缩进不一致问题 (PR #1879)**:\n            -   **显示优化**: 移除了 Python 集成示例代码块中多余的行首空格，确保从界面复制的代码可以直接运行，无需手动调整缩进。\n        -   **[核心修复] 解决 Gemini 图像生成因关键词匹配导致的 effortLevel 冲突 (PR #1873)**:\n            -   **逻辑冲突修复**: 彻底修复了 `gemini-3-pro-image` 及其 4k\u002F2k 变体因包含 `gemini-3-pro` 关键词，被系统错误判定为支持 Adaptive Thinking 从而误注入 `effortLevel` 导致的 HTTP 400 错误。\n        -   **[文档更新] 发布 Gemini 3 Pro (Imagen 3) 图像生成全功能调用指南**:\n            -   **深度指南**: 新增 [Gemini 3 Pro 图像模型调用指南](docs\u002Fgemini-3-image-guide.md)，详细说明了宽高比自动映射、画质等级对应关系图表，以及新增的图生图 (Image-to-Image) 与后缀魔法用法。\n        -   **[安装优化] 官方 Homebrew Cask 维护与更新**:\n            -   **版本同步**: 更新 `antigravity-tools.rb` Cask 配置至 v4.1.16，确保 macOS 与 Linux 用户通过 `brew install` 始终获取最新稳定版本。\n            -   **参数清洗**: 在代理请求层增加了对图像生成模型的特殊过滤，确保不再为非思维链模型注入不兼容的生成参数。\n    *   **v4.1.15 (2026-02-11)**:\n        -   **[核心功能] 开启 macOS 与 Windows 原生自动更新支持 (PR #1850)**:\n            -   **端到端自动更新**: 启用了 Tauri 的原生更新插件，支持在应用内直接检测、下载并安装更新。\n            -   **发布工作流修复**: 彻底修复了 Release 工作流中生成更新元数据 (`updater.json`) 的逻辑。现在系统会自动根据 `.sig` 签名文件构建完整的更新索引，支持 darwin-aarch64, darwin-x86_64 以及 windows-x86_64 架构。\n            -   **体验打通**: 配合前端已有的更新提醒组件，实现了从发布到安装的全自动化闭环。\n        -   **[核心修复] 解决切换账号时由于空 Project ID 导致的 400 错误 (PR #1852)**:\n            -   **空值过滤**: 在 Proxy 层增加了对 `project_id` 的空字符串过滤逻辑。\n            -   **自动纠错**: 当检测到账号数据中的 `project_id` 为空时，现在会触发自动重新获取流程，有效解决了 Issue #1846 和 #1851 中提到的 \"Invalid project resource name projects\u002F\" 错误。\n        -   **[故障排查] 针对 HTTP 404 \"Resource projects\u002F... not found\" 的解决建议 (Issue #1858)**:\n            -   **验证项目 ID**: 登录 [Google Cloud Console](https:\u002F\u002Fconsole.cloud.google.com\u002F)，在项目选择器中搜索报错提到的 ID（如 `bold-spark-xxx`）。若项目不存在，请创建新项目并启用所需的 Vertex AI API。\n            -   **重置账户会话**: 尝试在 Antigravity 应用中“删除账户”并“重新添加”，以清除旧的会话残留。\n            -   **CLI 辅助验证**: 建议使用 Gemini CLI (`gcloud auth login`) 重新进行身份验证，并确保 `gcloud config set project` 指向了正确的有效项目。\n        -   **[故障排查] 针对 HTTP 403 \"Forbidden\" 错误的解决建议 (Issue #1834)**:\n            -   **检查验证链接**: 请检查 API 响应中是否包含提示 \"To continue, verify your account at...\" 的链接。若有，请点击该链接并按照 Google 提示完成验证。\n            -   **确认计划资格**: 访问 [FAQ 页面](https:\u002F\u002Fantigravity.google\u002Fdocs\u002Ffaq#why-am-i-ineligible-for-a-google-one-ai-plan) 确认您的账号是否符合 Google One AI 计划或 Gemini Code Assist 的使用要求。\n            -   **自动恢复**: 部分 403 错误（如触发风险控制或配额调整）可能会在等待一段时间后自动恢复正常。\n    *   **v4.1.15 (2026-02-11)**:\n        -   **[核心修复] Cloudflared 公网访问设置持久化 (Issue #1805)**:\n            -   **设置记忆**: 修复了 Cloudflared (CF Tunnel) 的 Token、隧道模式及 HTTP\u002F2 设置在应用重启后丢失的问题。\n            -   **热更新同步**: 实现了设置的实时持久化。现在切换隧道模式、修改 Token (失焦同步) 或切换 HTTP\u002F2 选项时，配置都会立即保存，确保重启后恢复如初。\n        -   **[核心修复] 修复 Warmup 过程中的 403 禁用标记 (PR #1803)**:\n            -   **禁用识别**: 修复了账号在 Warmup (预热) 过程中返回 403 错误时未被标记为 `is_forbidden` 的问题。\n            -   **自动跳过**: 现在 Warmup 过程中检测到 403 将立即标记并持久化账号禁用状态，并在后续的调度、预热和配额检查中自动跳过该账号，避免无效请求。\n        -   **[UI 优化] 迷你视图 (Mini View) 状态显示与交互增强 (PR #1816)**:\n            -   **状态指示点**: 在迷你视图底部新增了请求状态圆点。成功 (200-399) 显示为绿色，失败显示为红色，直观反馈最近一次请求结果。\n            -   **模型名称回退**: 优化了模型名称显示逻辑。当 `mapped_model` 为空时，自动回退显示原始模型 ID 而非 \"Unknown\"，提升信息透明度。\n            -   **刷新动画优化**: 改进了刷新按钮的动画效果，使旋转动画仅作用于 `RefreshCw` 图标本身，交互更加细腻。\n        -   **[核心功能] Claude 4.6 Adaptive Thinking 模式支持**:\n            -   **Dynamic Effort**: 全面支持 `effort` 参数 (low\u002Fmedium\u002Fhigh)，允许用户动态调整模型的思考深度与预算。\n            -   **Token 限制自适应**: 修复了 Adaptive 模式下 `maxOutputTokens` 未能正确感知 Budget 导致被截断的问题，确保长思维链不被腰斩。\n        -   **[文档更新] 新增 Adaptive 模式测试用例**:\n            -   提供了 `docs\u002Fadaptive_mode_test_examples.md`，涵盖多轮对话、复杂任务场景及 Budget 模式切换的完整验证指南。\n        -   **[核心功能] 图片生成 imageSize 参数支持**:\n            -   **直接参数支持**: 新增对 Gemini 原生 `imageSize` 参数的直接支持,可在所有协议(OpenAI\u002FClaude\u002FGemini)中使用。\n            -   **参数优先级**: 实现了清晰的参数优先级逻辑:`imageSize` 参数 > `quality` 参数推断 > 模型后缀推断。\n            -   **全协议兼容**: OpenAI Chat API、Claude Messages API 和 Gemini 原生协议均支持通过 `imageSize` 字段直接指定分辨率(\"1K\"\u002F\"2K\"\u002F\"4K\")。\n            -   **向后兼容**: 完全兼容现有的 `quality` 参数和模型后缀方式,不影响现有代码。\n        -   **[核心功能] Opencode 提供商隔离与清理工作流 (PR #1820)**:\n            -   **隔离同步逻辑**: 实现 Opencode 提供商的独立同步机制,防止状态污染,确保数据纯净。\n            -   **清理工作流**: 新增资源清理工作流,优化资源管理,提升系统运行效率。\n            -   **稳定性增强**: 增强了同步过程的稳定性和可靠性。\n    *   **v4.1.15 (2026-02-11)**:\n        -   **[核心功能] Homebrew Cask 安装检测与支持 (PR #1673)**:\n            -   **应用升级**: 新增了对 Homebrew Cask 安装的检测逻辑。如果应用是通过 Cask 安装的，现在可以直接在应用内触发 `brew upgrade --cask` 流程，实现无缝升级体验。\n        -   **[核心修复] Gemini 图像生成配额保护 (PR #1764)**:\n            -   **保护生效**: 修复了配额保护机制可能会错误统计文本请求的问题，并确保在绘图配额耗尽时能正确拦截 `gemini-3-pro-image` 的请求。\n        -   **[UI 优化] 修复导航栏边界与显示问题 (PR #1636)**:\n            -   **边界修复**: 修复了导航栏右侧菜单在特定窗口宽度下可能超出边界或显示不全的问题。\n            -   **兼容性**: 此次合并保留了主分支上的 Mini View 等新特性，只应用了必要的样式修正。\n        -   **[UI 优化] 修复英文模式下的布局溢出与水平滚动 (Issue #1783)**:\n            -   **全局限制**: 在全局样式中封锁了水平轴溢出，杜绝了因文字过长导致的页面横向抖动。\n            -   **响应式增强**: 优化了导航栏断点，将文字胶囊的显示阈值提高至 1120px，确保长英文标签在窄窗口下自动切换为图标模式，保持布局整洁。\n        -   **[核心修复] 修复处理复杂 JSON Schema 时可能发生的栈溢出问题 (Issue #1781)**:\n            -   **安全加固**: 为 `flatten_refs` 等深度递归逻辑引入了 `MAX_RECURSION_DEPTH` (10) 限制，有效防止了由循环引用或过深嵌套导致的程序崩溃。\n        -   **[核心修复] 修复流式输出下多个工具调用被错误拼接的问题 (Issue #1786)**:\n            -   **索引校正**: 修正了 `create_openai_sse_stream` 中 `tool_calls` 的索引分配逻辑，确保同一个 chunk 中的多个工具调用拥有独立且连续的 `index`，避免了参数被错误拼接导致解析失败的现象。\n        -   **[核心修复] 修复 Claude Thinking 模型多轮对话时的签名错误 (Issue #1790)**:\n            -   **签名注入与降级**: 在 OpenAI 协议转换层中增加了对历史消息思考块签名的自动注入逻辑。当无法获取有效签名时，自动将其降级为普通文本块，从而解决了 Claude-opus-thinking 等模型在多轮对话中因签名缺失导致的 HTTP 400 错误。\n        -   **[核心修复] 修复 Google Cloud 项目 ID 获取失败导致的 503 错误 (Issue #1794)**:\n            -   **增加兜底**: 修复了由于账号权限导致无法获取官方项目 ID 时会跳过该账号的 Bug。现在系统会自动回退到经验证稳定的通用 Project ID (`bamboo-precept-lgxtn`)，确保 API 请求的连续性。\n        -   **[i18n] 完善 Settings 与 ApiProxy 国际化支持 (PR #1789)**:\n            -   **重构**: 将 `Settings.tsx` 和 `ApiProxy.tsx` 中硬编码的中文字符串替换为 `t()` 国际化调用。\n            -   **翻译补全**: 同步更新了韩语、缅甸语、葡萄牙语、俄语、土耳其语、越南语、繁体中文和简体中文的本地化词条。\n        -   **[核心修复] 修复 IP 白名单删除失败问题 (Issue #1797)**:\n            -   **参数规范化**: 修复了由于前端与后端参数命名风格 (snake_case vs camelCase) 不一致导致无法删除白名单 IP 的问题。同时统一了黑名单管理与 IP 访问日志的相关参数，确保全系统参数传递的一致性。\n    *   **v4.1.12 (2026-02-10)**:\n        -   **[核心功能] OpenCode CLI 深度集成 (PR #1739)**:\n            -   **自动探测**: 新增了对 OpenCode CLI 的自动检测与环境变量配置同步支持。\n            -   **一键同步**: 支持通过“外部 Providers”卡片将 Antigravity 的配置无缝注入到 OpenCode CLI 环境，实现零配置接入。\n        -   **[核心修复] Claude Opus 思考预算自动注入 (PR #1747)**:\n            -   **预算修正**: 修复了 Opus 模型在自动启用思考模式时，未能正确注入默认思考预算 (Thinking Budget) 的问题，防止因预算缺失导致的上游错误。\n        -   **[核心优化] Claude Opus 4.6 Thinking 全面升级 (Issue #1741, #1742, #1743)**:\n            -   **模型迭代**: 正式引入 `claude-opus-4-6-thinking` 支持，提供更强大的推理能力。\n            -   **无感迁移**: 实现了从 `claude-opus-4.5` \u002F `claude-opus-4` 到 `4.6` 的自动重定向，旧版配置无需修改即可直接享受新模型。\n        -   **[核心修复] 账户索引自动修复机制 (PR #1755)**:\n            -   **容错增强**: 修复了在部分极端情况下（如文件损坏）账户索引无法自动重建的问题。现在系统会在检测到索引异常时自动触发自我修复流程，确保账号数据安全可用。\n        -   **[核心修复] 修复 IP 黑名单删除与时区问题 (PR #1748)**:\n            -   **参数修正**: 修复了 IP 黑名单删除接口因参数命名风格 (snake_case vs camelCase) 不匹配导致的删除失败问题。\n            -   **逻辑修复**: 修正了清除黑名单时传递了错误参数 (ip_pattern 而非 id) 的问题。\n            -   **时区校准**: 修复了宵禁时间 (Curfew) 判断逻辑，强制使用北京时间 (UTC+8)，解决了服务器本地时区非 UTC+8 时的判断偏差。\n            -   **拒绝对齐**: 优化了令牌拒绝响应，返回 403 状态码及 JSON 错误详情，对齐了统一错误响应标准。\n        -   **[核心功能] 新增迷你视图模式 (Mini View Mode) (PR #1750)**:\n            -   **便捷访问**: 新增迷你窗口模式，支持双向切换。该模式常驻桌面顶层，提供精简的快捷操作入口，方便用户即时查看状态与监控信息。\n        -   **[核心修复] Gemini 协议 400 错误自愈 (PR #1756)**:\n            -   **Token 补全**: 修复了在 Gemini 原生协议下调用持续思考模型（如 Claude Opus 4.6 Thinking）时，因 `maxOutputTokens` 小于 `thinkingBudget` 导致的 400 报错。现在系统会自动补全并对齐 Token 限制，确保请求合规。\n        -   **[核心修复] 修复 macOS 下 bun 全局安装的路径识别 (PR #1765)**:\n            -   **路径增强**: 新增对 `~\u002F.bun\u002Fbin` 及全局安装路径的探测，解决了 bun 用户无法自动同步 Claude CLI 配置的问题。\n        -   **[核心优化] 修复 Logo 文本在小容器下的换行与显示 (PR #1766)**:\n            -   **显示优化**: 使用 Tailwind CSS 容器查询逻辑优化了 Logo 文本的显示与隐藏切换，防止在容器空间不足时发生文字换行。\n        -   **[核心修复] Google Cloud Code API 404 重试与账号轮换 (PR #1775)**:\n            -   **智能重试**: 针对 Google Cloud Code API 返回的 404 错误（常见于分阶段发布或权限差异场景），新增自动重试与账号轮换机制。系统将以 300ms 短延迟进行重试，并自动切换到下一个可用账号。\n            -   **短周期避让**: 对 404 错误实施 5 秒软锁定（区别于其他服务端错误的 8 秒），在保护账号的同时最大程度减少用户等待时间。\n    *   **v4.1.11 (2026-02-09)**:\n        -   **[核心优化] 重构 Token 轮询逻辑 (High-End Model Routing Optimization)**:\n            -   **能力硬门槛**: 针对 `claude-opus-4-6` 等高端模型实施了严格的 Capability Filtering。系统现在会检查账号实际持有的 `model_quotas`，只有明确拥有目标模型配额的账号才能参与轮询，彻底解决了 Pro\u002FFree 账号因 \"Soft Priority\" 而被错误选中的问题。\n            -   **严格层级优先**: 确立了 `Ultra > Pro > Free` 的绝对优先级排序策略。只要 Ultra 账号可用，系统将始终优先调度 Ultra 账号，防止降级到 Pro 账号，确保了高端模型的服务质量。\n            -   **[配置警告]**: 请检查 `设置 -> 自定义模型映射` 或 `gui_config.json`，确保**没有**配置 `\"claude-opus-4-*\": \"claude-opus-4-5-thinking\"` 这样的通配符，否则会导致 `claude-opus-4-6-thinking` 被错误映射到 `claude-opus-4-5-thinking`。建议为 `claude-opus-4-6-thinking` 添加明确的精确映射。\n        -   **[核心修复] 修复配置热重载失效问题 (PR #1713)**:\n            -   **即时生效**: 修复了在 WebUI 或 Docker 环境下保存配置时，内存中的代理池配置未同步更新的问题。现在修改配置后无需重启即可立即生效。\n        -   **[Docker 优化] 新增本地绑定限制选项**:\n            -   **网络安全**: 新增 `ABV_BIND_LOCAL_ONLY` 环境变量。当设置为 `true` 时，Docker\u002FHeadless 模式将仅绑定 `127.0.0.1`，不再默认向 `0.0.0.0` 暴露服务，满足特定安全网络需求。\n        -   **[核心功能] 用户 Token 支持自定义过期时间 (PR #1722)**:\n            -   **灵活控制**: 创建用户 Token 时现在支持选择精确到分钟的自定义过期时间，不再局限于预设的固定时长。\n        -   **[核心修复] Token 编辑数据同步与参数封装 (PR #1720, #1722)**:\n            -   **数据同步**: 修复了编辑 Token 时部分字段数据未正确回显的问题。\n            -   **代码重构**: 优化了 Token 创建与更新的参数传递结构，提升了代码的可维护性。\n        -   **[核心修复] 修复代理认证信息持久化失效问题 (Issue #1738)**:\n            -   **魔术前缀机制**: 引入 `ag_enc_` 前缀来明确标识已加密的密码字段。\n            -   **双重加密防护**: 彻底解决了后端无法区分“用户输入的明文”与“已加密的密文”，导致在多次保存或导入导出时发生双重加密（Double Encryption）的问题。\n            -   **兼容性**: 完美兼容旧版配置（无前缀），并在下次保存时自动迁移到新格式。同时增强了批量导入功能的健壮性。\n        -   **[核心修复] 解决用户创建\u002F加载失败问题 (Issue #1719)**:\n            -   **数据清洗**: 在数据库初始化阶段增加了针对旧数据的清洗逻辑，自动将 NULL 值重置为默认值，修复了因字段缺失导致的列表接口崩溃。\n            -   **鲁棒性增强**: 优化了后端数据读取逻辑，为关键字段增加了防御性默认值处理。\n        -   **[前端修复] 修复用户 Token 续期功能失效**:\n            -   **参数修正**: 修正了续期接口调用时的参数命名风格 (snake_case -> camelCase)，解决了 \"missing required key\" 报错。\n        -   **[核心修复] 彻底解决 Google Cloud 项目 404 错误 (Issue #1736)**:\n            -   **移除无效 Mock 逻辑**: 彻底删除了随机生成 Project ID 的失效逻辑（如 `useful-flow-g3dts`），此类 ID 目前会被 Google API 拦截并返回 404。\n            -   **智能兜底策略**: 现在当账号无法自动获取项目 ID 时，系统会安全回退到经验证长期有效的稳定 Project ID `bamboo-precept-lgxtn`，确保 API 请求的连续性与稳定性。\n        -   **[核心修复] 增强网络环境下的流式传输稳定性 (Issue #1732)**:\n            -   **强制缓冲区冲刷 (Flush)**: 解决了在不稳定网络环境下，SSE 流因缺少末尾换行符而导致的对话挂起及 \"IO 为 0\" 问题。\n            -   **超时容错增强**: 将流式响应超时时间延长至 60s，有效对抗高延迟网络引发的异常中断。\n            -   **Session ID 稳定性优化**: 改进了会话标识生成算法，防止网络重连后的 ID 漂移及其引发的思维模型签名失效。\n    *   **v4.1.10 (2026-02-08)**:\n        -   **[核心功能] 扩展 CLI 探测路径以支持 Volta (PR #1695)**:\n            -   **路径增强**：在 `cli_sync` 和 `opencode_sync` 中新增了对 `.volta\u002Fbin` 及其内部二进制文件的自动探测支持，确保 Volta 用户在同步 CLI 配置时能够获得“零配置”的顺滑体验。\n        -   **[核心修复] 图像生成分辨率智能保护 (Issue #1694)**:\n            -   **逻辑保护**：重构了图像配置合并算法，优先保留模型名后缀（如 `-4k`, `-2k`）或显式参数（`quality: \"hd\"`）指定的高分辨率设置，防止由于请求体中的默认值导致的分辨率降级。\n            -   **能力增强**：支持在生成高分辨率图像的同时，完整保留并回显思维链（Thinking）内容。\n        -   **[核心功能] 高级思维与全局配置深度优化**:\n            -   **图像思维开关**：新增全局“图像思维模式”选项。启用时可获得双图（草图+终稿）及思维链；禁用时系统显式强制注入 `includeThoughts: false`，优先保证单图生成质量。\n            -   **UI 重构**：对“高级思维”模块进行了空间压缩，采用行式布局和紧凑控件，将垂直空间占用减少了 50%，极大提升了配置效率。\n            -   **全局提示词优化**：增强了输入框体验，添加了实时字符计数与超长警告。\n        -   **[i18n] 全球 10+ 语言同步更新**:\n            -   **多语言补全**：为高级思维模块补全了繁体中文、日语、韩语、阿拉伯语、西班牙语、俄语、越南语、土耳其语、葡萄牙语和缅甸语的完整翻译，确保全球体验一致。\n        -   **[核心修复] 全协议接口兼容性补全**:\n            -   **全渠道覆盖**：图像思维控制逻辑已同步覆盖 Gemini 原生协议、OpenAI 兼容协议以及 Claude (Anthropic) 协议。\n            -   **测试稳定性**：修复了后端单元测试中的全局状态竞争问题，并更新了 GitHub Release CI 脚本以支持发布覆盖。\n        -   **[核心修复] 账号代理绑定持久化与配额保护可靠性提升 (Issue #1700)**:\n            -   **绑定持久化**：修复了前端设置保存时因类型定义缺失导致 `account_bindings` 被覆盖的问题，确保绑定关系跨重启有效。\n            -   **保护增强**：增强了模型名归一化引擎以识别实际 API 模型名，并完善了触发保护后的内存同步与调度过滤逻辑，彻底消除保护逃逸。\n        -   **[核心功能] 优化全球上游代理 I18n 与样式 (Issue #1701)**:\n            -   **I18n 同步**：补全了全部 12 种支持语言的代理配置词条，解决 `zh.json` 内容缺失及各语言翻译不统一问题。\n            -   **样式优化**：重构了全球代理配置卡片，引入渐变背景与微动画，使其在视觉上与代理池设置保持一致。\n            -   **SOCKS5H 支持**：在界面增加了 `socks5h:\u002F\u002F` 协议建议提示，并统一了后端代理 URL 标准化逻辑，显著增强了远程 DNS 解析的引导。\n    *   **v4.1.9 (2026-02-08)**:\n        -   **[核心功能] 扩展 CLI 配置快速同步支持 (PR #1680, #1685)**:\n            -   **更多工具集成**: 现已支持同步配置到 **Claude Code**, **Gemini CLI**, **Codex AI**, **OpenCode** 以及 **Droid**。\n            -   **模型选择定制**: 为单模型 CLI (Claude, Codex, Gemini) 增加了模型选择下拉框，支持同步自定义模型 ID；为多模型 CLI (OpenCode, Droid) 实现了拖拽式模型列表管理。\n            -   **逻辑校准**: 深度适配了各 CLI 的预设逻辑（如 Claude 根节点的 `model` 字段及镜像环境清理），确保同步后的兼容性。\n            -   **交互优化**: 同步面板现支持默认折叠并适配平滑动画，同时优化了同步前后的 UI 状态反馈。\n            -   **备份安全性**: 同步前自动生成 `.antigravity.bak` 备份，支持一键还原。\n        -   **[核心功能] 新增全局系统提示词 (Global System Prompt) 支持 (PR #1669)**:\n            -   **统一指令注入**: 在“系统设置”中新增全局系统提示词配置，支持将自定义指令自动注入到所有 OpenAI、Claude 和 Gemini 协议请求中。\n            -   **前端界面**: 新增 `GlobalSystemPrompt` 组件，支持一键启用及多行内容编辑。\n        -   **[核心修复] 修复浮点数序列化精度丢失问题 (PR #1669)**:\n            -   **精度升级**: 将后端 `temperature` 和 `top_p` 的数据类型从 `f32` 升级为 `f64`。\n            -   **逻辑校准**: 解决了请求参数在反代过程中因浮点转换导致的微小偏差（如 `0.95` 变成 `0.949999...`），显著提升了上游调用的稳定性。\n        -   **[核心重构] 实现应用名称国际化 (PR #1662)**:\n            -   **UI 升级**: 移除了 `NavLogo` 和 `Settings` 页面中硬编码的 \"Antigravity Tools\"，全面采用 `app_name` 翻译键，确保 UI 语言切换的一致性。\n        -   **[核心修复] 修正 gemini-3-pro-image 因关键词匹配被误判定为思维模型的问题 (Issue #1675)**:\n            -   **问题根源**: `gemini-3-pro-image` 及其 4k\u002F2k 变体因包含 `gemini-3-pro` 关键词，被系统错误判定为“思维模型”（Thinking Model）。\n            -   **冲突修复**: 修正了误注入 `thinkingConfig` 与图像生成 `imageConfig` 发生的冲突，解决了导致后端分辨率降级（降至 1k）的问题。\n            -   **Token 优化**: 解决了因思维模型逻辑注入占位符或特定限制而触发的“Token 超限（131072）” 400 错误。\n        -   **[国际化] 日语翻译实现 100% 同步 (PR #1662)**:\n            -   **翻译补全**: 同步了 `en.json` 中的所有缺失键值，涵盖了 Cloudflared、断路器、OpenCode 同步等新功能。\n        -   **[核心重构] 重构 UpstreamClient 响应处理逻辑**:\n            -   **结构化响应**: 引入 `UpstreamCallResult` 统一管理上游请求结果，优化了流式与非流式响应的处理路径。\n    *   **v4.1.8 (2026-02-07)**:\n        -   **[核心功能] 集成 Claude Opus 4.6 Thinking 模型支持 (PR #1641)**:\n            -   **混合模式架构**: 实现了“静态配置 + 动态获取”的双模架构。模型列表通过 Antigravity API 动态拉取，而 Thinking 模式等高级元数据则由本地注册表静态补充，完美平衡了灵活性与稳定性。\n            -   **零配置接入**: `claude-opus-4-6` 系列模型自动启用 Thinking 模式并预设 Budget，无需用户手动干预即可享受最新推理能力。\n            -   **前沿模型映射**: 新增 `claude-opus-4-6-thinking` 及其别名 (`claude-opus-4-6`, `20260201`) 的支持，并将其归入 `claude-sonnet-4.5` 配额组进行统筹管理。\n        -   **[核心优化] 优化 OpenCode CLI 检测逻辑 (PR #1649)**:\n            -   **路径扩展**: 增加了对 Windows 环境下常见全局安装路径（如 `npm`, `pnpm`, `Yarn`, `NVM`, `FNM` 等）的自动扫描。\n            -   **稳定性增强**: 修复了在 `PATH` 环境不完整时可能导致检测失败的问题，并增强了对 `.cmd` 和 `.bat` 文件的支持。\n        -   **[核心修复] 修复监控日志缺失流式工具调用内容的问题**:\n            -   **多协议支持**: 重构了 SSE 解析逻辑，全面支持 OpenAI `tool_calls` 和 Claude `tool_use`。\n            -   **增量累积**: 实现了工具参数片段的流式累积，确保长参数工具调用能被完整记录并显示在监控面板中。\n        -   **[UI 优化] 导航栏与链接交互优化 (PR #1648)**:\n            -   **禁止拖拽**: 为导航栏及 Logo 等所有链接和图片添加了 `draggable=\"false\"`，防止用户在意外拖拽时触发浏览器的默认行为，提升交互稳定性。\n            -   **SmartWarmup 悬停增强**: 优化了智能预热组件图标在未激活状态下的悬停颜色切换逻辑，使界面反馈更加细腻一致。\n        -   **[核心功能] 账号自定义标签支持扩展 (PR #1620)**:\n            -   **长度限制**: 将标签长度限制从 20 字符优化为 15 字符，在前后端同步生效。\n            -   **后端验证**: 增强了后端 Rust 命令的验证逻辑，支持 Unicode 字符计数，并优化了错误处理。\n            -   **前端对齐**: 账户列表和卡片视图的编辑框均已同步 15 字符的最大长度。\n        -   **[核心修复] 修复 UserToken 页面剪贴板错误 (PR #1639)**:\n            -   **逻辑修复**: 修复了在 UserToken 页面尝试访问或写入剪贴板时可能触发的异常。\n            -   **体验优化**: 提高了剪贴板交互的鲁棒性，确保在各种环境下都能正常工作。\n        -   **[核心优化] 优化 Token 排序性能并减少磁盘 I\u002FO (PR #1627)**:\n            -   **内存配额缓存**: 将模型配额信息引入内存，在 `get_token` 排序 hot path 中直接使用缓存。\n            -   **性能提升**: 消除了排序过程中由于频繁读取磁盘文件（`std::fs::read_to_string`）导致的同步 I\u002FO 阻塞，显著降低了高并发下的请求推迟与延迟。\n        -   **[国际化] 修复自定义标签功能缺失的翻译 (PR #1630)**:\n            -   **翻译补全**: 补全了繁体中文等语种中“编辑标签”、“自定义标签占位符”以及“标签更新成功”提示的国际化翻译。\n        -   **[UI 修复] 修复 SmartWarmup 图标悬停效果缺失 (PR #1568)**:\n            -   **增加交互**: 为未启用状态的图标添加了悬停变色效果，与其他设置项保持一致。\n        -   **[核心修复] 修复 OpenAI 协议下 Vertex AI 思考模型签名缺失问题 (Issue #1650)**:\n            -   **Sentinel 注入**: 移除了对 Vertex AI (`projects\u002F...`) 模型的哨兵签名注入限制。现在即使缺少真实签名，系统也会自动注入 `skip_thought_signature_validator`，从而避免 `Field required for thinking signature` 错误。\n    *   **v4.1.7 (2026-02-06)**:\n        -   **[核心修复] 修复图像生成 API (429\u002F500\u002F503) 自动切换账号问题 (Issue #1622)**:\n            -   **自动重试**: 为 `images\u002Fgenerations` 和 `images\u002Fedits` 引入了与 Chat API 一致的自动重试与账号轮换机制。\n            -   **体验一致性**: 确保在某个账号配额耗尽或服务不可用时，请求能自动故障转移到下一个可用账号，不再直接失败。\n        -   **[核心功能] 新增账户自定义标签支持 (PR #1620)**:\n            -   **标签管理**: 支持为每个账户设置个性化标签，方便在多账户环境下快速识别。\n            -   **交互优化**: 账户列表和卡片视图均支持直接查看和内联编辑标签。\n            -   **多语言支持**: 完整适配中、英双语显示。\n        -   **[核心修复] 修复数据库为空时 `get_stats` 返回 NULL 导致崩溃的问题 (PR #1578)**:\n            -   **NULL 值处理**: 在 SQL 查询中使用 `COALESCE(SUM(...), 0)` 确保在没有日志记录时依然返回数值，解决了 `rusqlite` 无法将 `NULL` 转换为 `u64` 的问题。\n            -   **性能保留**: 保留了本地分支中通过单次查询获取多项统计数据的性能优化逻辑。\n\n        -   **[核心修复] Claude 403 错误处理与账号轮换优化 (PR #1616)**:\n            -   **403 状态映射**: 将 403 (Forbidden) 错误映射为 503 (Service Unavailable)，防止客户端（如 Claude Code）因检测到 403 而自动登出。\n            -   **自动禁用逻辑**: 检测到 403 错误时自动将账号标记为 `is_forbidden` 并从活跃池中移除，避免该账号在接下来的请求中被继续选中。\n            -   **临时风控识别**: 识别 `VALIDATION_REQUIRED` 错误，并对相关账号执行 10 分钟的临时阻断。\n            -   **轮换稳定性**: 修复了在账号额度耗尽 (QUOTA_EXHAUSTED) 时的过早返回问题，确保系统能正确尝试轮换到下一个可用账号。\n        -   **[核心功能] OpenCode CLI 配置同步集成 (PR #1614)**:\n            -   **一键同步**: 自动生成 `~\u002F.config\u002Fopencode\u002Fopencode.json`，支持 Anthropic 和 Google 双 Provider 自动配置。\n            -   **账号导出**: 可选同步账号列表至 `antigravity-accounts.json`，供 OpenCode 插件直接导入。\n            -   **备份与还原**: 同步前自动备份原有配置，支持一键还原。\n            -   **跨平台支持**: 统一适配 Windows、macOS 和 Linux 环境。\n            -   **体验优化**: 修复了 RPC 参数包装问题，补全了多语言翻译，并优化了配置文件不存在时的视图状态。\n        -   **[核心功能] 允许隐藏未使用的菜单项 (PR #1610)**:\n            -   **可见性控制**: 在设置页面新增“菜单项显示设置”，允许用户自定义侧边栏显示的导航项。\n            -   **界面美化**: 为极简用户提供更清爽的界面，隐藏不常用的功能入口。\n\n        -   **[核心修复] Gemini 原生协议图像生成完全修复 (Issue #1573, #1625)**:\n            -   **400 错误修复**: 修复了 Gemini 原生协议生成图片时，因请求体 `contents` 数组缺失 `role: \"user\"` 字段导致的 `INVALID_ARGUMENT` 错误。\n            -   **参数透传支持**: 确保 `generationConfig.imageConfig` (如 `aspectRatio`, `imageSize`) 能正确透传给上游，不再被错误过滤。\n            -   **错误码优化**: 优化了图像生成服务的错误映射，确保 429\u002F503 等状态码能正确触发客户端的重试机制。\n        -   **[核心增强] 自定义映射支持手动输入任意模型 ID**:\n            -   **灵活输入**: 在自定义映射的目标模型选择器中新增手动输入功能，用户现在可以在下拉菜单底部直接输入任意模型 ID。\n            -   **未发布模型体验**: 支持体验 Antigravity 尚未正式发布的模型，例如 `claude-opus-4-6`。用户可以通过自定义映射将请求路由到这些实验性模型。\n            -   **重要提示**: 并非所有账号都支持调用未发布的模型。如果您的账号无权访问某个模型，请求可能会返回错误。建议先在少量请求中测试，确认账号权限后再大规模使用。\n            -   **快捷操作**: 支持 Enter 键快速提交自定义模型 ID，提升输入效率。\n    *   **v4.1.6 (2026-02-06)**:\n        -   **[核心修复] 深度重构 Claude\u002FGemini 思考模型中断与工具循环自愈逻辑 (#1575)**:\n            -   **思考异常恢复**: 引入了 `thinking_recovery` 机制。当检测到历史消息中包含陈旧思考块或陷入状态循环时，自动进行剥离与引导，提升了在复杂工具调用场景下的稳定性。\n            -   **解决签名绑定错误**: 修正了误将缓存签名注入客户端自定义思考内容的逻辑。由于签名与文本强绑定，此举解决了会话中断或重置后常见的 `Invalid signature` (HTTP 400) 报错。\n            -   **会话级完全隔离**: 删除了全局签名单例，确保所有思维签名严格在 Session 级别隔离，杜绝了多账号、多会话并发时的签名污染。\n        -   **[修复] 解决 Gemini 系列由于 `thinking_budget` 越界导致的 HTTP 400 错误 (#1592, #1602)**:\n            -   **全协议路径硬截断**: 修复了 OpenAI 和 Claude 协议映射器在「自定义模式」下缺失限额保护的问题。现在无论选择何种模式（自动\u002F自定义\u002F透传），只要目标模型为 Gemini，后端都会强制执行 24576 的物理上限保护。\n            -   **自动适配与前端同步**: 重构了协议转换逻辑，使其基于最终映射的模型型号进行动态限额；同步更新了设置界面的提示文案，明确了 Gemini 协议的物理限制。\n        -   **[核心修复] Web Mode 登录验证修复 & 登出按钮 (PR #1603)**:\n            -   **登录验证**: 修复了 Web 模式下登录验证逻辑的异常，确保用户身份验证的稳定性。\n            -   **登出功能**: 在界面中新增\u002F修复了登出按钮，完善了 Web 模式下的账户管理闭环。\n    \u003Cdetails>\n    \u003Csummary>显示旧版本日志 (v4.1.5 及更早)\u003C\u002Fsummary>\n\n    *   **v4.1.5 (2026-02-05)**:\n        -   **[安全修复] 前端 API Key 存储迁移 (LocalStorage -> SessionStorage)**:\n            -   **存储机制升级**: 将 Admin API Key 的存储位置从持久化的 `localStorage` 迁移至会话级的 `sessionStorage`，显著降低了在公共设备上的安全风险。\n            -   **自动无感迁移**: 实现了自动检测与迁移逻辑。系统会识别旧的 `localStorage` 密钥，将其自动转移到 `sessionStorage` 并彻底清除旧数据，确保现有用户无缝过渡且消除安全隐患。\n        -   **[核心修复] 修复 Docker 环境下添加账号失败问题 (Issue #1583)**:\n            -   **账号上下文修复**: 修复了在添加新账号时 `account_id` 为 `None` 导致代理选择异常的问题。现在系统会为新账号生成临时 UUID,确保所有 OAuth 请求都有明确的账号上下文。\n            -   **日志增强**: 优化了 `refresh_access_token` 和 `get_effective_client` 的日志记录,提供更详细的代理选择信息,帮助诊断 Docker 环境下的网络问题。\n            -   **影响范围**: 修复了 Docker 部署环境下通过 Refresh Token 添加账号时可能出现的长时间挂起或失败问题。\n        -   **[核心修复] Web Mode 兼容性修复 & 403 账号轮换优化 (PR #1585)**:\n            -   **Security API Web Mode 兼容性修复 (Issue: 400\u002F422 错误)**:\n                -   为 `IpAccessLogQuery` 添加 `page` 和 `page_size` 的默认值,解决 `\u002Fapi\u002Fsecurity\u002Flogs` 返回 400 Bad Request 的问题\n                -   移除 `AddBlacklistWrapper` 和 `AddWhitelistWrapper` 结构体,解决 `\u002Fapi\u002Fsecurity\u002Fblacklist` 和 `\u002Fapi\u002Fsecurity\u002Fwhitelist` POST 返回 422 Unprocessable Content 的问题\n                -   前端组件参数名修正:`ipPattern` → `ip_pattern`,确保与后端 API 参数一致\n            -   **403 账号轮换优化 (Issue: 403 后未正确跳过账号)**:\n                -   在 `token_manager.rs` 中添加 `set_forbidden` 方法,支持标记账号为禁用状态\n                -   账号选择时检查 `quota.is_forbidden` 状态,自动跳过被禁用的账号\n                -   403 时清除该账号的 sticky session 绑定,确保立即切换到其他可用账号\n            -   **Web Mode 请求处理优化**:\n                -   `request.ts` 修复路径参数替换后从 body 中移除已使用的参数,避免重复传参\n                -   支持 PATCH 方法的 body 处理,补全 HTTP 方法支持\n                -   自动解包 `request` 字段,简化请求结构\n            -   **Debug Console Web Mode 支持**:\n                -   `useDebugConsole.ts` 添加 `isTauri` 环境检测,区分 Tauri 和 Web 环境\n                -   Web 模式下使用 `request()` 替代 `invoke()`,确保 Web 环境下的正常调用\n                -   添加轮询机制,Web 模式下每 2 秒自动刷新日志\n            -   **Docker 构建优化**:\n                -   添加 `--legacy-peer-deps` 标志,解决前端依赖冲突\n                -   启用 BuildKit 缓存加速 Cargo 构建,提升构建速度\n                -   补全 `@lobehub\u002Ficons` peer dependencies,修复前端依赖缺失导致的构建失败\n            -   **影响范围**: 此更新显著提升了 Docker\u002FWeb 模式下的稳定性和可用性,解决了 Security API 报错、403 账号轮换失效、Debug Console 不可用等问题,同时优化了 Docker 构建流程。\n        -   **[核心修复] 修复 Web\u002FDocker 模式下调试控制台崩溃与日志同步问题 (Issue #1574)**:\n            -   **Web 兼容性**: 修复了在非 Tauri 环境下直接调用原生 `invoke` API 导致的 `TypeError` 崩溃。现在通过兼容性请求层进行后端通信。\n            -   **指纹绑定修复**: 修复了生成指纹并绑定时,由于前后端参数结构不匹配导致的 `HTTP Error 422` 报错。通过调整后端包装类,使其兼容前端嵌套的 `profile` 对象。\n            -   **日志轮询机制**: 为 Web 模式引入了自动日志轮询功能(2秒\u002F次),解决了浏览器端无法接收 Rust 后端事件推送导致调试日志为空的问题。\n        -   **[核心优化] 补全 Tauri 命令的 HTTP API 映射**:\n            -   **全量适配**: 对齐了 30+ 个原生 Tauri 命令,为缓存管理(清理日志\u002F应用缓存)、系统路径获取、代理池配置、用户令牌管理等核心功能补全了 HTTP 映射,确保 Web\u002FDocker 版本的功能完整性。\n        -   **[安全修复] 任意文件读写漏洞加固**:\n            -   **API 安全层**: 彻底移除了高危接口 `\u002Fapi\u002Fsystem\u002Fsave-file` 及其关联函数,并在数据库导入接口中增加了路径遍历防范 (`..` 校验)。\n            -   **Tauri 安全增强**: 为 `save_text_file` 和 `read_text_file` 命令引入了统一的路径校验器,严禁目录遍历并封堵了系统敏感目录的访问权限。\n    *   **v4.1.4 (2026-02-05)**:\n        -   **[核心功能] 代理池持久化与账号筛选优化 (PR #1565)**:\n            -   **持久化增强**: 修复了代理池绑定在反代服务重启或重载时无法正确恢复的问题，确保绑定关系严格持久化。\n            -   **智能筛选**: 优化了 `TokenManager` 的账号获取逻辑,在全量加载、同步以及调度路径中增加了对 `disabled` 和 `proxy_disabled` 状态的深度校验，彻底杜绝已禁用账号被误选的问题。\n            -   **验证阻止支持**: 引入了 `validation_blocked` 字段体系，专门处理 Google 的 `VALIDATION_REQUIRED` (403 临时风控) 场景，实现了基于截止时间的智能自动绕过。\n            -   **状态清理加固**: 账号失效时同步清理内存令牌、限流记录、会话绑定及优先账号标志，保证内部状态机的一致性。\n        -   **[核心修复] 修复 Web\u002FDocker 模式下的关键兼容性问题 (Issue #1574)**:\n            -   **调试模式修复**: 修正了前端调试控制台 URL 映射错误（移除多余的 `\u002Fproxy` 路径），解决了 Web 模式下调试模式无法开启的问题。\n            -   **指纹绑定修复**: 为 `admin_bind_device_profile_with_profile` 接口增加了 `BindDeviceProfileWrapper` 结构，修复了前端发送嵌套参数导致的 HTTP 422 错误。\n            -   **向后兼容性**: 使用 `serde alias` 功能在 API 层同时支持 camelCase（前端）和 snake_case（后端文件），确保旧账号文件正常加载。\n        -   **[代码优化] 简化 API 处理结构**:\n            -   移除了多个管理 API 路由（如 IP 黑白名单管理、安全设置更新等）中的冗余包装层 (`Wrapper`)，直接解构业务模型，提升了代码的简洁性与开发效率。\n        -   **[核心修复] 解决 OpenCode 调用 Thinking 模型中断问题 (Issue #1575)**:\n            -   **finish_reason 强制修正**: 修复了工具调用时 `finish_reason` 被错误设置为 `stop` 导致 OpenAI 客户端提前终止对话的问题。现在系统会强制将有工具调用的响应 `finish_reason` 设置为 `tool_calls`，确保工具循环正常运行。\n            -   **工具参数标准化**: 实现了 shell 工具参数名称的自动标准化，将 Gemini 可能生成的 `cmd`\u002F`code`\u002F`script` 等非标准参数名统一转换为 `command`，提升了工具调用的兼容性。\n            -   **影响范围**: 修复了 OpenAI 协议下 Thinking 模型（如 `claude-sonnet-4-5-thinking`）的工具调用流程，解决了 OpenCode 等客户端的中断问题。\n\n    *   **v4.1.3 (2026-02-05)**:\n        -   **[核心修复] 解决 Web\u002FDocker 模式下安全配置与 IP 管理失效问题 (Issue #1560)**:\n            -   **协议对齐**: 修复了后端 Axum 接口无法解析前端 `invoke` 封装的嵌套参数格式（如 `{\"config\": ...}`）的问题，确保安全配置能正确持久化。\n            -   **参数规范化**: 为 IP 管理相关接口添加了 `camelCase` 重命名支持，解决了 Web 端 Query 参数大小写不匹配导致的添加失败与删除失效。\n        -   **[核心修复] 恢复 Gemini Pro 思考块输出 (Issue #1557)**:\n            -   **跨协议对齐**: 修复了自 v4.1.0 以来 `gemini-3-pro` 等模型在 OpenAI、Claude 和 Gemini 原生协议下思考块缺失的问题。\n            -   **智能注入逻辑**: 实现了 `thinkingConfig` 的自动注入与默认开启机制，确保即使客户端未发送配置，模型也能正确激活思考能力。\n            -   **鲁棒性增强**: 优化了 `wrapper.rs` 内部类型处理，解析并解决了高并发场景下的配置冲突。\n    *   **v4.1.2 (2026-02-05)**:\n        -   **[核心功能] 多协议客户端适配器 (ClientAdapter Framework) (Issue #1522)**:\n            -   **架构重构**: 引入 `ClientAdapter` 框架并应用 `Arc` 引用计数，实现了 Handler 层与下游客户端逻辑的完全解耦，支持更安全的跨线程共享。\n            -   **全协议兼容**: 针对 `opencode` 等第三方客户端，实现了 **4 种协议**（Claude\u002FOpenAI\u002FGemini\u002FOA-Compatible）的无缝接入，彻底解决了 `","Antigravity-Manager 是一个专业的 AI 账号管理和切换工具，专为 Antigravity 工具提供一键无缝账号切换功能。其核心功能包括多账号管理、协议转换以及智能请求调度，旨在消除不同厂商间的 API 协议壁垒，构建一个稳定且高效的本地 AI 中转站。该应用采用 Tauri v2 和 React 构建前端界面，后端则基于 Rust 语言开发，确保了高性能和跨平台兼容性。适用于需要频繁切换和管理多个 AI 服务账号的开发者及爱好者，在进行 AI 开发、测试或集成时尤为实用。",2,"2026-06-11 03:02:51","top_language"]