README.md
<div align="center"> <h3>您的个人高性能 AI 调度网关</h3> <p>不仅仅是账号管理,更是打破 API 调用壁垒的终极解决方案。</p> <p> <a href="https://github.com/lbjlaq/Antigravity-Manager">专业级 AI 账号管理与协议代理系统 (v4.1.33)
</a>
Antigravity Tools 是一个专为开发者和 AI 爱好者设计的全功能桌面应用。它将多账号管理、协议转换和智能请求调度完美结合,为您提供一个稳定、极速且成本低廉的 本地 AI 中转站。
通过本应用,您可以将常见的 Web 端 Session (Google/Anthropic) 转化为标准化的 API 接口,消除不同厂商间的协议鸿沟。
| 赞助商 (Sponsor) | 简介 (Description) |
|---|---|
| 感谢 PackyCode 对本项目的赞助!PackyCode 是一家可靠高效的 API 中转服务商,提供 Claude Code、Codex、Gemini 等多种服务的中转。PackyCode 为本项目的用户提供了特别优惠:使用此链接注册,并在充值时输入 “Ctrler” 优惠码即可享受 九折优惠。 | |
| 感谢 AICodeMirror 赞助了本项目!AICodeMirror 提供 Claude Code / Codex / Gemini CLI 官方高稳定中转服务,支持企业级高并发、极速开票、7×24 专属技术支持。 Claude Code / Codex / Gemini 官方渠道低至 3.8 / 0.2 / 0.9 折,充值更有折上折!AICodeMirror 为 Antigravity-Manager 的用户提供了特别福利,通过此链接注册的用户,可享受首充8折,企业客户最高可享 7.5 折! | |
| 感谢 VisionCoder 对本项目的支持。VisionCoder 开发平台 是一个可靠高效性 API 中继服务提供商,提供 Claude Code、Codex、Gemini 等主流 AI 模型,帮助开发者和团队更轻松地集成 AI 功能,提升工作效率。VisionCoder 为本站用户提供了专属福利:通过此链接注册并购买 Token Plan 限时活动,可享受“买 1 个月赠 1 个月”优惠。 |
如果您觉得本项目对您有所帮助,欢迎打赏作者!
<a href="https://www.buymeacoffee.com/Ctrler" target="_blank"></a>
| 支付宝 (Alipay) | 微信支付 (WeChat) | Buy Me a Coffee |
|---|---|---|
如果您喜欢本项目,可能也会对以下项目感兴趣:
/v1/chat/completions 端点,兼容 99% 的现有 AI 应用。/v1/messages 接口,支持 Claude Code CLI 的全功能(如思思维链、系统提示词)。429 (Too Many Requests) 或 401 (Expire) 时,后端会毫秒级触发 自动重试与静默轮换,确保业务不中断。gemini-3-pro-high)。size (如 1024x1024, 16:9) 参数自动映射到 Imagen 3 的相应规格。| 仪表盘 | |
| 账号列表 | |
| 关于页面 | |
| API 反代 | |
| 系统设置 |
| Claude Code 联网搜索 | |
| Cherry Studio 深度集成 | |
| Imagen 3 高级绘图 | |
| Kilo Code 接入 |
graph TD
Client([外部应用: Claude Code/NextChat]) -->|OpenAI/Anthropic| Gateway[Antigravity Axum Server]
Gateway --> Middleware[中间件: 鉴权/限流/日志]
Middleware --> Router[Model Router: ID 映射]
Router --> Dispatcher[账号分发器: 轮询/权重]
Dispatcher --> Mapper[协议转换器: Request Mapper]
Mapper --> Upstream[上游请求: Google/Anthropic API]
Upstream --> ResponseMapper[响应转换器: Response Mapper]
ResponseMapper --> Client
自动检测操作系统、架构和包管理器,一条命令完成下载与安装。
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/v4.1.33/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/install.ps1 | iex
支持的格式: Linux (
.deb/.rpm/.AppImage) | macOS (.dmg) | Windows (NSIS.exe)高级用法: 安装指定版本
curl -fsSL ... | bash -s -- --version 4.1.33,预览模式curl -fsSL ... | bash -s -- --dry-run
如果您已安装 Homebrew,也可以通过以下命令安装:
# 1. 订阅本仓库的 Tap
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
# 2. 安装应用
brew install --cask antigravity-tools
提示: 如果遇到权限问题,建议添加
--no-quarantine参数。
您可以选择通过一键安装脚本或 Homebrew 进行安装:
方式 1:一键安装脚本 (推荐)
curl -sSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/deploy/arch/install.sh | bash
方式 2:通过 Homebrew (如果您已安装 Linuxbrew)
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-tools
安装后会自动将 AppImage 添加到二进制路径并配置可执行权限。
前往 GitHub Releases 下载对应系统的包:
.dmg (支持 Apple Silicon & Intel).msi 或 便携版 .zip.deb 或 AppImage如果您希望在容器化环境中运行,我们提供了原生的 Docker 镜像。该镜像内置了对 v4.0.2 原生 Headless 架构的支持,可自动托管前端静态资源,并通过浏览器直接进行管理。
# 方式 1: 直接运行 (推荐)
# - API_KEY: 必填。用于所有协议的 AI 请求鉴定。
# - WEB_PASSWORD: 可选。用于管理后台登录。若不设置则默认使用 API_KEY。
docker run -d --name antigravity-manager \
-p 8045:8045 \
-e API_KEY=sk-your-api-key \
-e WEB_PASSWORD=your-login-password \
-e ABV_MAX_BODY_SIZE=104857600 \
-v ~/.antigravity_tools:/root/.antigravity_tools \
lbjlaq/antigravity-manager:latest
# 忘记密钥?执行 docker logs antigravity-manager 或 grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json
#### 🔐 鉴权逻辑说明
* **场景 A:仅设置了 `API_KEY`**
- **Web 登录**:使用 `API_KEY` 进入后台。
- **API 调用**:使用 `API_KEY` 进行 AI 请求鉴权。
* **场景 B:同时设置了 `API_KEY` 和 `WEB_PASSWORD` (推荐)**
- **Web 登录**:**必须**使用 `WEB_PASSWORD`,使用 API Key 将被拒绝(更安全)。
- **API 调用**:统一使用 `API_KEY`。这样您可以将 API Key 分发给成员,而保留密码仅供管理员使用。
#### 🆙 旧版本升级指引
如果您是从 v4.0.1 及更早版本升级,系统默认未设置 `WEB_PASSWORD`。您可以通过以下任一方式设置:
1. **Web UI 界面 (推荐)**:使用原有 `API_KEY` 登录后,在 **API 反代设置** 页面手动设置并保存。新密码将持久化存储在 `gui_config.json` 中。
2. **环境变量 (Docker)**:在启动容器时增加 `-e WEB_PASSWORD=您的新密码`。**注意:环境变量具有最高优先级,将覆盖 UI 中的任何修改。**
3. **配置文件 (持久化)**:直接修改 `~/.antigravity_tools/gui_config.json`,在 `proxy` 对象中修改或添加 `"admin_password": "您的新密码"` 字段。
- *注:`WEB_PASSWORD` 是环境变量名,`admin_password` 是配置文件中的 JSON 键名。*
> [!TIP]
> **密码优先级逻辑 (Priority)**:
> - **第一优先级 (环境变量)**: `ABV_WEB_PASSWORD` 或 `WEB_PASSWORD`。只要设置了环境变量,系统将始终使用它。
> - **第二优先级 (配置文件)**: `gui_config.json` 中的 `admin_password` 字段。UI 的“保存”操作会更新此值。
> - **保底回退 (向后兼容)**: 若上述均未设置,则回退使用 `API_KEY` 作为登录密码。
# 方式 2: 使用 Docker Compose
# 1. 进入项目的 docker 目录
cd docker
# 2. 启动服务
docker compose up -d
访问地址:
http://localhost:8045(管理后台) |http://localhost:8045/v1(API Base) 系统要求:
- 内存: 建议 1GB (最小 256MB)。
- 持久化: 需挂载
/root/.antigravity_tools以保存数据。- 架构: 支持 x86_64 和 ARM64。 详情见: Docker 部署指南 (docker)
Copyright © 2024-2026 lbjlaq
由于 macOS 的安全机制,非 App Store 下载的应用可能会触发此提示。您可以按照以下步骤快速修复:
sudo xattr -rd com.apple.quarantine "/Applications/Antigravity Tools.app"
--no-quarantine 参数来规避此问题:
brew install --cask --no-quarantine antigravity-tools
提示:授权链接包含一次性回调端口,请始终使用弹窗里生成的最新链接;如果授权时应用未运行或弹窗已关闭,浏览器可能会提示
localhost refused connection。
export ANTHROPIC_API_KEY="sk-antigravity"
export ANTHROPIC_BASE_URL="http://127.0.0.1:8045"
claude
~/.config/opencode/opencode.json 配置文件:
antigravity-manager(不覆盖 google/anthropic 原生配置)antigravity-accounts.json(plugin-compatible v3 格式),供 OpenCode 插件直接导入C:\Users\<用户名>\.config\opencode\(与 ~/.config/opencode 规则一致)。快速验证命令:
# 测试 antigravity-manager provider(支持 --variant)
opencode run "test" --model antigravity-manager/claude-sonnet-4-5-thinking --variant high
# 若已安装 opencode-antigravity-auth 插件,验证 google provider 仍可独立工作
opencode run "test" --model google/antigravity-claude-sonnet-4-5-thinking --variant max
http://127.0.0.1:8045。/v1/chat/completions/responses 这种非标准路径,导致 Antigravity 返回 404。因此请务必填入 Base URL 后选择 Gemini 模式。import openai
client = openai.OpenAI(
api_key="sk-antigravity",
base_url="http://127.0.0.1:8045/v1"
)
response = client.chat.completions.create(
model="gemini-3-flash",
messages=[{"role": "user", "content": "你好,请自我介绍"}]
)
print(response.choices[0].message.content)
import openai
client = openai.OpenAI(
api_key="sk-antigravity",
base_url="http://127.0.0.1:8045/v1"
)
# 生成图片
response = client.images.generate(
model="gemini-3-pro-image",
prompt="一座未来主义风格的城市,赛博朋克,霓虹灯",
size="1920x1080", # 支持任意 WIDTHxHEIGHT 格式,自动计算宽高比
quality="hd", # "standard" | "hd" | "medium"
n=1,
response_format="b64_json"
)
# 保存图片
import base64
image_data = base64.b64decode(response.data[0].b64_json)
with open("output.png", "wb") as f:
f.write(image_data)
支持的参数:
size: 任意 WIDTHxHEIGHT 格式(如 1280x720, 1024x1024, 1920x1080),自动计算并映射到标准宽高比(21:9, 16:9, 9:16, 4:3, 3:4, 1:1)quality:
"hd" → 4K 分辨率(高质量)"medium" → 2K 分辨率(中等质量)"standard" → 默认分辨率(标准质量)n: 生成图片数量(1-10)response_format: "b64_json" 或 "url"(Data URI)所有协议(OpenAI、Claude)的 Chat API 现在都支持直接传递 size 和 quality 参数:
# OpenAI Chat API
response = client.chat.completions.create(
model="gemini-3-pro-image",
size="1920x1080", # ✅ 支持任意 WIDTHxHEIGHT 格式
quality="hd", # ✅ "standard" | "hd" | "medium"
messages=[{"role": "user", "content": "一座未来主义风格的城市"}]
)
# Claude Messages API
curl -X POST http://127.0.0.1:8045/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-antigravity" \
-d '{
"model": "gemini-3-pro-image",
"size": "1280x720",
"quality": "hd",
"messages": [{"role": "user", "content": "一只可爱的猫咪"}]
}'
**参数优先级**: `imageSize` 参数 > `quality` 参数 > 模型后缀
**✨ 新增 `imageSize` 参数支持**:
除了 `quality` 参数外,现在还支持直接使用 Gemini 原生的 `imageSize` 参数:
```python
# 使用 imageSize 参数(最高优先级)
response = client.chat.completions.create(
model="gemini-3-pro-image",
size="16:9", # 宽高比
imageSize="4K", # ✨ 直接指定分辨率: "1K" | "2K" | "4K"
messages=[{"role": "user", "content": "一座未来主义风格的城市"}]
)
# Claude Messages API 也支持 imageSize
curl -X POST http://127.0.0.1:8045/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-antigravity" \
-d '{
"model": "gemini-3-pro-image",
"size": "1280x720",
"imageSize": "4K",
"messages": [{"role": "user", "content": "一只可爱的猫咪"}]
}'
参数说明:
imageSize: 直接指定分辨率 ("1K" / "2K" / "4K")quality: 通过质量等级推断分辨率 ("standard" → 1K, "medium" → 2K, "hd" → 4K)imageSize 和 quality,系统会优先使用 imageSizeresponse = client.chat.completions.create(
model="gemini-3-pro-image-16-9-4k", # 格式:gemini-3-pro-image-[比例]-[质量]
messages=[{"role": "user", "content": "一座未来主义风格的城市"}]
)
模型后缀说明:
-16-9, -9-16, -4-3, -3-4, -21-9, -1-1-4k (4K), -2k (2K), 不加后缀(标准)gemini-3-pro-image-16-9-4k → 16:9 比例 + 4K 分辨率在支持 OpenAI 协议的客户端(如 Cherry Studio)中,可以通过模型设置页面配置图片生成参数:
gemini-3-pro-image 模型WIDTHxHEIGHT 格式(如 1920x1080, 1024x1024)standard / hd / medium参数映射规则:
size: "1920x1080" → 自动计算为 16:9 宽高比quality: "hd" → 映射为 4K 分辨率quality: "medium" → 映射为 2K 分辨率版本演进 (Changelog):
v4.1.33 (2026-05-01):
v4.1.32 (2026-04-18):
requestId 生成逻辑,严格遵循官方 agent/{timestamp}/{hex8} 路径指纹。__cloudCodeMeta 追踪 ID,实现协议级流量拟真。10xx/503/529 等瞬时错误实现 1500ms 原地容错窗口,大幅提升高并发稳定性。serviceMachineId 在磁盘配置与 state.vscdb 数据库间的同步注入,解决了切换账号后 VS Code 弹出“环境变更”并要求重新登录的顽疾。project_id 时,系统将改为记录警告而非抛错中断切换,确保权限受限账号依然可以完成切换并正常使用。retry,请尝试切换账号使用即可。v4.1.31 (2026-03-25):
oauth_client_key 跟踪机制,支持主动切换。project_id),并优化了失败提示。fetchAvailableModels 接口添加了 Sandbox -> Daily -> Prod 的自动回退路径,在遇到 429 或 5xx 错误时自动尝试备选环境。v1internal 协议不支持同时使用 googleSearch 和 functionDeclarations 的限制。choices 格式,彻底解决了 IDE 解析器因 TypeError 导致的 UI 冻结问题。data: [DONE] 终止符,并优化了错误状态下的存储路径探测逻辑。v4.1.30 (2026-03-15):
fetchAvailableModels API 引入了 Sandbox -> Daily -> Prod 的端点自动降级机制。当请求遇到 429 (Too Many Requests) 或 5xx 服务器错误时,系统会自动平滑切换到备选端点,显著提升了配额刷新和模型列表获取的稳定性。TransferEncodingError 的问题。系统现在会将流错误捕获并封装为标准的 JSON 格式数据帧输出,确保连接能够优雅关闭并向前端传递清晰的错误信息。v4.1.29 (2026-03-12):
high / low)访问权限不一致导致的 404/400 报错问题。系统现在会根据选中账号的实际权限,在同系列模型间自动执行平滑回退(例如:gemini-3.1-pro-high -> gemini-3.1-pro-low -> 默认层级)。API 弃用规则 > 账号感知回退 > 用户自定义映射 > 系统默认映射 的科学优先级链条。docs/model-remapping-logic.md,完整记录了复杂的重映射逻辑流程。APPDATA、LOCALAPPDATA 以及 NVM_HOME 等路径的自动扫描机制,确保即使 CLI 未正确配置在系统 PATH 中也能被精准识别。.cmd 和 .bat 脚本的调用方式,解决了直接执行无法稳定获取版本号的问题。v4.1.28 (2026-03-03):
claude, gemini-3-flash 等)精确拦截已耗尽账号,消除 90s 的无效等待。thinkingLevel 导致 400 报错 (Fix Issue #2208):
gemini-3.1-pro-high / gemini-3.1-pro-low 等 Gemini 系列模型误判为支持 thinkingLevel,而 thinkingLevel 是 Vertex AI Claude 原生协议专有参数,Gemini 系列底层走 v1internal 协议,仅接受 thinkingBudget,导致请求被 Google API 拒绝并返回 400 INVALID_ARGUMENT。thinkingLevel 的触发条件从 contains("gemini-3") 修正为 contains("claude"),确保 thinkingLevel 仅在 Claude 协议路径下注入,Gemini 系列模型在 adaptive 模式下统一回落到安全的 thinkingBudget: 24576。googleSearch 与自定义 functionDeclarations 同时使用的限制。gemini-3-flash 系列纳入 "thinking 模型" 范畴,致使在首次函数调用(无 Session 签名缓存)时,thoughtSignature 字段未被注入,Google v1internal API 返回 400 INVALID_ARGUMENT。is_gemini_flash_thinking 判断变量,在 functionCall 构建阶段,当 Session 缓存为空时自动注入哨兵值 skip_thought_signature_validator。gemini-3-flash / gemini-3.1-flash 加入 target_model_supports_thinking 识别列表;无签名时 flash 模型不再强制禁用 thinking,改为依赖现有哨兵注入路径(build_contents L1249-1256),保留模型思考能力。wrap_request 的 functionCall 处理块中,当 Session 缓存为空时对 flash 模型补充哨兵 fallback,覆盖首次调用场景。thinkingConfig 注入逻辑,不影响非思考类请求的正常路径;顺带修复了 test_wrap_request_with_signature 单元测试中 session_id 参数位置错误的既有 Bug。'localtime' 转换机制。无论用户身处全球何处,统计图表的时间轴都将自动与其系统时钟对齐,彻底解决了北京时间或其他非 UTC 时区下的数据错位问题。v4.1.27 (2026-03-01):
ProxyConfig 默认初始化时缺失 global_system_prompt、proxy_pool 和 image_thinking_mode 字段导致的编译失败问题。OpenAIContentBlock 枚举匹配中的未知类型兜底分支 (_ => {}),消除非穷尽匹配的编译警告/错误。preserve_tool_result_images 开关,现已强制保留 tool_result 中的图片数据结构,转为大模型支持的 inlineData 结构,大幅简化逻辑。antigravity-manager 更新为 lbjlaq/antigravity-manager。.env 文件来灵活覆盖默认配置。@ai-sdk/anthropic) 配合 OpenCode 使用时,因原生蛇形命名 budget_tokens 导致系统无法启动并抛出 AI_UnsupportedFunctionalityError: 'thinking requires a budget' 的问题。budget_tokens 与小驼峰的 budgetTokens 字段。fetchAvailableModels 接口在特定负载下无法正确返回 remainingFraction 的缺陷。由于缺失 project 标识,导致接口错误地为已耗尽配额(HTTP 429)的账号返回 1.0(100%),进而导致智能路由算法将请求持续分配给不可用账号,引发长时间重试及配额显示错误。{"project": project_id} 结构。恢复了配额信息的准确感知,并在未破坏原生字段(如 supportsThinking)的前提下实现了接口完全兼容。gemini-3-pro-image 更新为包含最新的 gemini-3.1-flash-image。modelConfig.ts 中补全了新版绘图模型的 UI 定义,确保图标和标签正常渲染。max_output_tokens 等硬限额数据。model_specs.json 集中管理 30+ 种模型的默认参数,彻底告别映射器中的硬编码逻辑。thinkingLevel 支持,而非失效的 budget 逻辑。thinkingBudget。maxOutputTokens 自动提升补齐逻辑增加了 65536 的模型硬上限保护,根除参数越界导致的请求失败。v4.1.26 (2026-02-27):
disabled 或 proxy_disabled 的账号。std::process::Command 封装注入 CREATE_NO_WINDOW 标志,解决了在 Windows 端应用底层组件(如版本探测、重启更新等)调用系统命令时引发的命令行窗口一闪而过的视觉干扰,确保全过程无边框静默执行。v4.1.25 (2026-02-27):
gemini-3-pro-image 的硬编码限制。通过新增的 clean_image_model_name 智能清洗后缀(如 -4k, -16x9),全面兼容如 gemini-3.1-flash-image 等任意未来新增的画图模型。normalize_to_standard_id,使用 image 关键词宽泛匹配,确保新模型也能正确触发配额保护机制。image 的模型名时,系统会将常规文本生成请求静默转移给高级画图引擎。)以 SSE 流式返回图片链接,完美适配所有支持 Markdown 的聊天客户端。1024x1024 的行为。现在,如果模型名带有后缀(如 gemini-3-pro-image-16x9-4k),后台会严格优先解析后缀分辨率进行穿透绘图。v4.1.24 (2026-02-26):
src-tauri/src/lib.rs 中取消 start_scheduler 的注释并解除 Settings.tsx 中相关 UI 的注释后重新编译使用。constants.rs 中的 KNOWN_STABLE_VERSION 硬编码了低版本号,当本地 IDE 检测失败时回退该版本作为请求头,导致 Google 拒绝 Gemini 3.1 Pro 模型。2) 新增的远端版本网络调用直接在 LazyLock 初始化(Tokio 异步上下文)中执行,导致 Cannot block the current thread 严重崩溃。max(本地版本, 远端版本, 4.1.27),始终取最高值。2) 将网络探测逻辑移至独立 OS 线程并配合 mpsc 通道,安全避开异步运行时限制。保证无论本地版本新旧,指纹均不低于上游要求,且应用能稳定启动。maxOutputTokens 超过模型物理上限(如 Flash 限制 64k),导致上游返回 400 错误。quota.models 数据。model_limits.rs 内置已知限额(如 Flash 65536)。wrap_request() 中注入裁剪逻辑,确保请求参数合法。v4.1.23 (2026-02-25):
thinkingLevel 字符串("NONE" / "LOW" / "MEDIUM" / "HIGH")到 generationConfig.thinkingConfig。当 AGM 通过 Google v1internal API 代理请求时,Google 会因为 v1internal 仅接受数字型 thinkingBudget 而拒绝请求,返回 400 INVALID_ARGUMENT。wrap_request() 的现有 budget 处理逻辑之前,新增一个早期转换步骤:检测 thinkingLevel 字符串,将其映射为对应的数字 thinkingBudget(NONE→0, LOW→4096, MEDIUM→8192, HIGH→24576),然后删除 thinkingLevel 字段并写入 thinkingBudget,确保下游所有 budget 处理逻辑(预算封顶、maxOutputTokens 调整、自适应检测)都能看到正确的数值预算。thinkingLevel: "LOW" 到 gemini-3.1-pro-high(Gemini 原生协议),请求现返回 200 OK,不再报 400 错误。interval * 60 * 1000 超过 JS 引擎 32 位有符号整数上限 2,147,483,647ms,浏览器会将 setInterval 延迟静默截断为 1ms,导致前端每秒触发数千次 refreshAllQuotas/syncAccountFromDb 请求,进而引发多线程并发写同一 [uuid].json 文件,造成字节流交错、JSON 尾部残留,账号数据永久损坏。account.rs): save_account 改为先写入 UUID 后缀的临时文件,再通过 fs::rename(POSIX)/ MoveFileExW(Windows)原子替换目标文件,与已有的 save_account_index 保持一致,从根本上消除并发写导致的 JSON 损坏。BackgroundTaskRunner.tsx): 对 refresh_interval 和 sync_interval 两个定时器的延迟参数加上 Math.min(..., 2147483647) 上界限制,防止超过 INT32_MAX 后被浏览器截断为 1ms 无限循环。Settings.tsx): 将 refresh_interval 和 sync_interval 输入框的 max 属性从 60 更新为 35791(35791 min × 60000 < INT32_MAX),并在 onChange 中添加 NaN fallback(默认为 1)及范围夹紧 [1, 35791],从源头阻断非法值输入。exchange_code(首次授权)和 refresh_access_token(静默续期)的换票请求,移除了底层网络库的 Chrome JA3 指纹伪装,恢复标准纯净的 TLS特征。CURRENT_VERSION) 构建专属的 User-Agent(如 vscode/1.X.X (Antigravity/4.1.27)),以匹配纯净 TLS 链路。MODEL_CONFIG 读取硬编码模型信息,导致账号实际下发的动态新模型(如 GPT-OSS 120B、Gemini 3.1 Pro (High) 等)无法出现在这些列表中。useProxyModels Hook:以账号 quota.models 动态数据为第一优先数据源,聚合所有账号里所有模型的 display_name(为主展示名称)和 name(为模型 ID);MODEL_CONFIG 仅作为图标/分组的样式补充,以及无账号数据时的静态兜底。ApiProxy 页面本身不调用 fetchAccounts,现在 Hook 内部检测到 store 为空时自动触发,保证动态模型在任意导航路径下均可正常展示。PinnedQuotaModels 组件:采用同等策略,从 useAccountStore 拉取全账号动态模型,并修复了已固定的 "thinking" 类型模型显示"未知"的问题,改为优先展示其真实 display_name。name(小写)去重,并额外过滤掉 -thinking 后缀的 MODEL_CONFIG 静态别名条目(这类变体已由账号数据中的 supports_thinking 标记覆盖)。v4.1.22 (2026-02-21):
application/grpc) 或 gRPC-Web (application/grpc-web) 协议代理支持仍在积极测试中,如果您有相关的测试经验或想法,非常欢迎联系讨论,也欢迎您建立新分支一起探索!claude-sonnet-4-6 及 claude-sonnet-4-6-thinking 作为主推模型。claude-sonnet-4-5 重定向至 4.6。gemini-pro-high/low 迁移至 gemini-3.1-pro,确保与 Google 最新 API 命名对齐。MODEL_CONFIG。Claude 4.5 描述全面升级为正式版 4.6,并将 G3 描述统一为 G3.1。claude-opus-4-6-thinking 在 Claude 协议下返回 400 INVALID_ARGUMENT 的问题。通过强制对齐 thinkingBudget (24576) 与 maxOutputTokens (57344),并剔除在该模式下不兼容的 stopSequences,确保其请求参数与 100% 成功的 OpenAI 协议完全一致,提升了对 Claude 原生协议客户端的兼容性。v4.1.21 (2026-02-17):
maxOutputTokens (128k) 导致 Google API 返回 400 INVALID_ARGUMENT 的问题。现在自动将 Claude 协议的输出上限限制为 65536,确保请求始终在 Gemini 允许的范围内。thinking: { type: "adaptive" } 行为。现在自动映射为 24576 的固定思考预算 (与 OpenAI 协议一致),解决了 Gemini Vertex AI 对 thinkingBudget: -1 的不兼容问题,显著提升了 Cherry Studio 的思考模式稳定性。custom-protocol 特性,修复了生产环境下自定义协议 (如 tauri://) 加载失败的问题,确保本地资源和特殊协议请求的稳定性。AppRuntimeFlags 状态管理,实现了窗口关闭行为与托盘状态的联动。extract_semver),能从复杂的命令行输出中准确识别版本,提升了自动更新和环境检测的准确性。create_codex_sse_stream,补全了 OpenAI Responses API 规范要求的完整 SSE 事件生命周期(response.output_item.added、content_part.added/done、output_item.done、response.completed),解决了 Cherry Studio 因事件缺失导致无法组装响应内容的问题。builtin_web_search 工具声明,防止其与 inject_google_search_tool 冲突,确保 Google Search 工具被正确注入。groundingMetadata 解析,支持在联网搜索结果中回显搜索查询和来源引文。should_disable_thinking_due_to_history 检查,不再因历史消息格式问题永久禁用思考模式,改为依赖 thinking_recovery 机制自动修复。v4.1.20 (2026-02-16):
400 INVALID_ARGUMENT 错误(通过恢复 v4.1.16 的核心协议格式)。image / imagen 关键字的支持,确保图像模型的配额信息能正常同步。X-Client-Name, X-Client-Version, X-Machine-Id, X-VSCode-SessionId 等关键指纹头,实现了从网络层到应用层的像素级伪装,进一步降低了 403 风控概率。v4.1.19 (2026-02-15):
text: "") 导致上游 API 报错 Field required 的问题。mcp__puppeteer_navigate 而非注册名 mcp__puppeteer__puppeteer_navigate)的问题,实现了智能模糊匹配算法。claude-opus-4-6-thinking 模型定义的问题,确保该模型能被客户端正确识别和调用。v4.1.18 (2026-02-14):
rquest 核心库并集成 BoringSSL,实现了像素级复刻 Chrome 123 的 TLS 指纹 (JA3/JA4),有效解决高防护上游的 403/Captchas 拦截问题。Box<dyn Stream> 实现了对 reqwest (标准) 与 rquest (伪装) 响应流的统一兼容,消除了底层类型冲突。invalid_grant 等)。gemini-3-pro-image 及其分辨率/比例后缀(如 -4k, -16x9)因归一化匹配不精确导致的配额校验失效问题。v4.1.17 (2026-02-13):
updater.json,减少对 GitHub API 的直接依赖,提升检查速度。v4.1.16 (2026-02-12):
400 Invalid Argument 错误。thinking 字段注入,现在统一使用 Google 原生协议推荐的 generationConfig.thinkingConfig 嵌套结构。usage 字段被错误地附加到每一个数据块 (Chunk) 中,导致客户端 (如 Cline/Roo Code) 统计的 Token 用量呈指数级虚高的问题。updater.json 中增加了对 linux-x86_64 和 linux-aarch64 平台的支持,使 Linux AppImage 用户现在也能正常收到自动更新通知。.AppImage.sig 签名文件,实现了 macOS、Windows 与 Linux 三大主流平台的自动更新能力闭环。install.sh (Linux/macOS) 和 install.ps1 (Windows) 脚本,支持通过极简的 curl 或 irm 命令实现全自动下载、安装与环境配置。opencode 二进制是否存在,允许在 Docker 等隔离环境下仅通过配置文件管理同步状态。gemini-3-pro-image 及其 4k/2k 变体因包含 gemini-3-pro 关键词,被系统错误判定为支持 Adaptive Thinking 从而误注入 effortLevel 导致的 HTTP 400 错误。antigravity-tools.rb Cask 配置至 v4.1.16,确保 macOS 与 Linux 用户通过 brew install 始终获取最新稳定版本。v4.1.15 (2026-02-11):
updater.json) 的逻辑。现在系统会自动根据 .sig 签名文件构建完整的更新索引,支持 darwin-aarch64, darwin-x86_64 以及 windows-x86_64 架构。project_id 的空字符串过滤逻辑。project_id 为空时,现在会触发自动重新获取流程,有效解决了 Issue #1846 和 #1851 中提到的 "Invalid project resource name projects/" 错误。bold-spark-xxx)。若项目不存在,请创建新项目并启用所需的 Vertex AI API。gcloud auth login) 重新进行身份验证,并确保 gcloud config set project 指向了正确的有效项目。v4.1.15 (2026-02-11):
is_forbidden 的问题。mapped_model 为空时,自动回退显示原始模型 ID 而非 "Unknown",提升信息透明度。RefreshCw 图标本身,交互更加细腻。effort 参数 (low/medium/high),允许用户动态调整模型的思考深度与预算。maxOutputTokens 未能正确感知 Budget 导致被截断的问题,确保长思维链不被腰斩。docs/adaptive_mode_test_examples.md,涵盖多轮对话、复杂任务场景及 Budget 模式切换的完整验证指南。imageSize 参数的直接支持,可在所有协议(OpenAI/Claude/Gemini)中使用。imageSize 参数 > quality 参数推断 > 模型后缀推断。imageSize 字段直接指定分辨率("1K"/"2K"/"4K")。quality 参数和模型后缀方式,不影响现有代码。v4.1.15 (2026-02-11):
brew upgrade --cask 流程,实现无缝升级体验。gemini-3-pro-image 的请求。flatten_refs 等深度递归逻辑引入了 MAX_RECURSION_DEPTH (10) 限制,有效防止了由循环引用或过深嵌套导致的程序崩溃。create_openai_sse_stream 中 tool_calls 的索引分配逻辑,确保同一个 chunk 中的多个工具调用拥有独立且连续的 index,避免了参数被错误拼接导致解析失败的现象。bamboo-precept-lgxtn),确保 API 请求的连续性。Settings.tsx 和 ApiProxy.tsx 中硬编码的中文字符串替换为 t() 国际化调用。v4.1.12 (2026-02-10):
claude-opus-4-6-thinking 支持,提供更强大的推理能力。claude-opus-4.5 / claude-opus-4 到 4.6 的自动重定向,旧版配置无需修改即可直接享受新模型。maxOutputTokens 小于 thinkingBudget 导致的 400 报错。现在系统会自动补全并对齐 Token 限制,确保请求合规。~/.bun/bin 及全局安装路径的探测,解决了 bun 用户无法自动同步 Claude CLI 配置的问题。v4.1.11 (2026-02-09):
claude-opus-4-6 等高端模型实施了严格的 Capability Filtering。系统现在会检查账号实际持有的 model_quotas,只有明确拥有目标模型配额的账号才能参与轮询,彻底解决了 Pro/Free 账号因 "Soft Priority" 而被错误选中的问题。Ultra > Pro > Free 的绝对优先级排序策略。只要 Ultra 账号可用,系统将始终优先调度 Ultra 账号,防止降级到 Pro 账号,确保了高端模型的服务质量。设置 -> 自定义模型映射 或 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 添加明确的精确映射。ABV_BIND_LOCAL_ONLY 环境变量。当设置为 true 时,Docker/Headless 模式将仅绑定 127.0.0.1,不再默认向 0.0.0.0 暴露服务,满足特定安全网络需求。ag_enc_ 前缀来明确标识已加密的密码字段。useful-flow-g3dts),此类 ID 目前会被 Google API 拦截并返回 404。bamboo-precept-lgxtn,确保 API 请求的连续性与稳定性。v4.1.10 (2026-02-08):
cli_sync 和 opencode_sync 中新增了对 .volta/bin 及其内部二进制文件的自动探测支持,确保 Volta 用户在同步 CLI 配置时能够获得“零配置”的顺滑体验。-4k, -2k)或显式参数(quality: "hd")指定的高分辨率设置,防止由于请求体中的默认值导致的分辨率降级。includeThoughts: false,优先保证单图生成质量。account_bindings 被覆盖的问题,确保绑定关系跨重启有效。zh.json 内容缺失及各语言翻译不统一问题。socks5h:// 协议建议提示,并统一了后端代理 URL 标准化逻辑,显著增强了远程 DNS 解析的引导。v4.1.9 (2026-02-08):
model 字段及镜像环境清理),确保同步后的兼容性。.antigravity.bak 备份,支持一键还原。GlobalSystemPrompt 组件,支持一键启用及多行内容编辑。temperature 和 top_p 的数据类型从 f32 升级为 f64。0.95 变成 0.949999...),显著提升了上游调用的稳定性。NavLogo 和 Settings 页面中硬编码的 "Antigravity Tools",全面采用 app_name 翻译键,确保 UI 语言切换的一致性。gemini-3-pro-image 及其 4k/2k 变体因包含 gemini-3-pro 关键词,被系统错误判定为“思维模型”(Thinking Model)。thinkingConfig 与图像生成 imageConfig 发生的冲突,解决了导致后端分辨率降级(降至 1k)的问题。en.json 中的所有缺失键值,涵盖了 Cloudflared、断路器、OpenCode 同步等新功能。UpstreamCallResult 统一管理上游请求结果,优化了流式与非流式响应的处理路径。v4.1.8 (2026-02-07):
claude-opus-4-6 系列模型自动启用 Thinking 模式并预设 Budget,无需用户手动干预即可享受最新推理能力。claude-opus-4-6-thinking 及其别名 (claude-opus-4-6, 20260201) 的支持,并将其归入 claude-sonnet-4.5 配额组进行统筹管理。npm, pnpm, Yarn, NVM, FNM 等)的自动扫描。PATH 环境不完整时可能导致检测失败的问题,并增强了对 .cmd 和 .bat 文件的支持。tool_calls 和 Claude tool_use。draggable="false",防止用户在意外拖拽时触发浏览器的默认行为,提升交互稳定性。get_token 排序 hot path 中直接使用缓存。std::fs::read_to_string)导致的同步 I/O 阻塞,显著降低了高并发下的请求推迟与延迟。projects/...) 模型的哨兵签名注入限制。现在即使缺少真实签名,系统也会自动注入 skip_thought_signature_validator,从而避免 Field required for thinking signature 错误。v4.1.7 (2026-02-06):
[核心修复] 修复图像生成 API (429/500/503) 自动切换账号问题 (Issue #1622):
images/generations 和 images/edits 引入了与 Chat API 一致的自动重试与账号轮换机制。[核心功能] 新增账户自定义标签支持 (PR #1620):
[核心修复] 修复数据库为空时 get_stats 返回 NULL 导致崩溃的问题 (PR #1578):
COALESCE(SUM(...), 0) 确保在没有日志记录时依然返回数值,解决了 rusqlite 无法将 NULL 转换为 u64 的问题。[核心修复] Claude 403 错误处理与账号轮换优化 (PR #1616):
is_forbidden 并从活跃池中移除,避免该账号在接下来的请求中被继续选中。VALIDATION_REQUIRED 错误,并对相关账号执行 10 分钟的临时阻断。[核心功能] OpenCode CLI 配置同步集成 (PR #1614):
~/.config/opencode/opencode.json,支持 Anthropic 和 Google 双 Provider 自动配置。antigravity-accounts.json,供 OpenCode 插件直接导入。[核心功能] 允许隐藏未使用的菜单项 (PR #1610):
[核心修复] Gemini 原生协议图像生成完全修复 (Issue #1573, #1625):
contents 数组缺失 role: "user" 字段导致的 INVALID_ARGUMENT 错误。generationConfig.imageConfig (如 aspectRatio, imageSize) 能正确透传给上游,不再被错误过滤。[核心增强] 自定义映射支持手动输入任意模型 ID:
claude-opus-4-6。用户可以通过自定义映射将请求路由到这些实验性模型。v4.1.6 (2026-02-06):
thinking_recovery 机制。当检测到历史消息中包含陈旧思考块或陷入状态循环时,自动进行剥离与引导,提升了在复杂工具调用场景下的稳定性。Invalid signature (HTTP 400) 报错。thinking_budget 越界导致的 HTTP 400 错误 (#1592, #1602):
v4.1.5 (2026-02-05):
localStorage 迁移至会话级的 sessionStorage,显著降低了在公共设备上的安全风险。localStorage 密钥,将其自动转移到 sessionStorage 并彻底清除旧数据,确保现有用户无缝过渡且消除安全隐患。account_id 为 None 导致代理选择异常的问题。现在系统会为新账号生成临时 UUID,确保所有 OAuth 请求都有明确的账号上下文。refresh_access_token 和 get_effective_client 的日志记录,提供更详细的代理选择信息,帮助诊断 Docker 环境下的网络问题。IpAccessLogQuery 添加 page 和 page_size 的默认值,解决 /api/security/logs 返回 400 Bad Request 的问题AddBlacklistWrapper 和 AddWhitelistWrapper 结构体,解决 /api/security/blacklist 和 /api/security/whitelist POST 返回 422 Unprocessable Content 的问题ipPattern → ip_pattern,确保与后端 API 参数一致token_manager.rs 中添加 set_forbidden 方法,支持标记账号为禁用状态quota.is_forbidden 状态,自动跳过被禁用的账号request.ts 修复路径参数替换后从 body 中移除已使用的参数,避免重复传参request 字段,简化请求结构useDebugConsole.ts 添加 isTauri 环境检测,区分 Tauri 和 Web 环境request() 替代 invoke(),确保 Web 环境下的正常调用--legacy-peer-deps 标志,解决前端依赖冲突@lobehub/icons peer dependencies,修复前端依赖缺失导致的构建失败invoke API 导致的 TypeError 崩溃。现在通过兼容性请求层进行后端通信。HTTP Error 422 报错。通过调整后端包装类,使其兼容前端嵌套的 profile 对象。/api/system/save-file 及其关联函数,并在数据库导入接口中增加了路径遍历防范 (.. 校验)。save_text_file 和 read_text_file 命令引入了统一的路径校验器,严禁目录遍历并封堵了系统敏感目录的访问权限。v4.1.4 (2026-02-05):
TokenManager 的账号获取逻辑,在全量加载、同步以及调度路径中增加了对 disabled 和 proxy_disabled 状态的深度校验,彻底杜绝已禁用账号被误选的问题。validation_blocked 字段体系,专门处理 Google 的 VALIDATION_REQUIRED (403 临时风控) 场景,实现了基于截止时间的智能自动绕过。/proxy 路径),解决了 Web 模式下调试模式无法开启的问题。admin_bind_device_profile_with_profile 接口增加了 BindDeviceProfileWrapper 结构,修复了前端发送嵌套参数导致的 HTTP 422 错误。serde alias 功能在 API 层同时支持 camelCase(前端)和 snake_case(后端文件),确保旧账号文件正常加载。Wrapper),直接解构业务模型,提升了代码的简洁性与开发效率。finish_reason 被错误设置为 stop 导致 OpenAI 客户端提前终止对话的问题。现在系统会强制将有工具调用的响应 finish_reason 设置为 tool_calls,确保工具循环正常运行。cmd/code/script 等非标准参数名统一转换为 command,提升了工具调用的兼容性。claude-sonnet-4-5-thinking)的工具调用流程,解决了 OpenCode 等客户端的中断问题。v4.1.3 (2026-02-05):
invoke 封装的嵌套参数格式(如 {"config": ...})的问题,确保安全配置能正确持久化。camelCase 重命名支持,解决了 Web 端 Query 参数大小写不匹配导致的添加失败与删除失效。gemini-3-pro 等模型在 OpenAI、Claude 和 Gemini 原生协议下思考块缺失的问题。thinkingConfig 的自动注入与默认开启机制,确保即使客户端未发送配置,模型也能正确激活思考能力。wrapper.rs 内部类型处理,解析并解决了高并发场景下的配置冲突。v4.1.2 (2026-02-05):
ClientAdapter 框架并应用 Arc 引用计数,实现了 Handler 层与下游客户端逻辑的完全解耦,支持更安全的跨线程共享。opencode 等第三方客户端,实现了 4 种协议(Claude/OpenAI/Gemini/OA-Compatible)的无缝接入,彻底解决了 AI_TypeValidationError 报错。let_it_crash 快速失败机制,显著提升了高并发场景下的稳定性和错误反馈速度。event: error / 非流式 JSON),确保客户端能正确解析上游异常。proxy_disabled) 的问题。SignatureCache 机制,通过 session_id 物理隔离不同会话的思维签名存储,彻底杜绝多轮对话或并发请求导致的签名污染。[undefined])的识别与自动清洗逻辑,提升了对不同客户端(如 Cherry Studio)的兼容性。@lobehub/icons 图标库,在账号卡片、表格及详情页中展示不同模型的 brand 图标,视觉体验更佳。get_account_state_on_disk 机制,在获取 Token 的关键路径增加磁盘状态二次确认,彻底解决内存缓存延迟导致的禁用账号误选问题。toggle_proxy_status 指令,禁用账号时会自动检查并关闭对应的固定账号模式,并立即触发代理池重载。invalid_grant 错误并自动禁用账号时,现在会物理清理内存中的 Token、限流记录和会话绑定,确保故障账号即刻下线。Warmup) 与定时调度器 (Scheduler) 的禁用状态检查,大幅减少无效的后台网络请求。futures 流的并发执行机制,将顺序检查重构为并发处理(并发上限 20)。crypto.randomUUID API 导致的应用崩溃("Unexpected Application Error")及批量导入失败问题。v4.1.1 (2026-02-04):
request.ts 的命令映射,并新增对 PATCH 方法的支持,解决了 Web 端因映射缺失导致的 API 调用错误。UserToken 数据库初始化逻辑,支持从旧版本自动通过 ALTER TABLE 补全缺失列(如 expires_type, max_ips, curfew_* 等),极大提升了版本升级的稳定性。-e ABV_DATA_DIR=/app/data),解决了默认隐藏目录权限及可见性问题。GitHub API -> GitHub Raw -> jsDelivr 的三层回退机制,极大提升了版本检测的成功率。antigravityUnifiedStateSync.oauthToken 新格式,并保持对旧版格式的向下兼容。react-router 依赖至安全版本,修复了 ScrollRestoration 组件在服务端渲染 (SSR) 时可能造成的跨站脚本攻击 (XSS) 风险。v4.1.0 (2026-02-04):
ip:port),自动补全 http:// 方案。google.com 拦截问题;更换保底检查 URL 至 cloudflare.com。ProxyRequestLog 初始化时缺失 username 字段导致的编译错误。.no_proxy() 的客户端,防止 localhost 请求被错误路由到外部代理导致 502/401 错误。/internal/* 路径的鉴权,确保内部预热请求不会被拦截。v4.0.15 (2026-02-03):
v4.0.14 (2026-02-02):
ABV_API_KEY)的覆盖能够被前端正确获取。v4.0.13 (2026-02-02):
ref 冲突导致移动端/桌面端点击判定异常。v4.0.12 (2026-02-01):
connector.rs) 的核心逻辑,消除了历史遗留的低效代码。v4.0.11 (2026-01-31):
Sandbox -> Daily -> Prod。优先使用宽松环境,从源头减少 403 错误的发生。VALIDATION_REQUIRED (403) 错误时,系统会自动将该账号标记为“临时阻断”状态并持续 10 分钟。期间请求会自动跳过该账号,避免无效重试导致账号被进一步风控。TokenManager 实例,实现了管理后台与反代服务共享单例账号管理器。/health 和 /healthz 路由。"status": "ok" 和当前应用版本号的 JSON,方便监控系统进行版本匹配和存活检查。gemini-2.0-flash-thinking)中,默认或上游传入的 thinking_budget (例如 32k) 超过模型上限 (24k) 导致 API 报错 400 Bad Request 的问题。v4.0.9 (2026-01-30):
User-Agent 头部。这允许用户模拟任意客户端版本(如 Cheat 模式),有效绕过部分地区的版本封锁或风控限制。check_and_protect_quota() 函数在处理禁用账号时提前退出的逻辑缺陷。现在即便账号被禁用,系统仍会扫描并实时更新其 protected_models(模型级保护列表),确保配额不足的账号在重新启用后不会绕过保护机制继续被使用。src-tauri/src/modules/cache.rs 模块,用于计算和管理应用运行期间产生的各类临时文件分布(如翻译缓存、日志指纹等)。v4.0.8 (2026-01-30):
debug_logger.rs,支持捕获并记录 OpenAI、Claude 及 Gemini 处理器的原始请求、转换后报文及完整流式响应。TokenStats.tsx 中的 Tooltip 定位算法,确保在小窗口或高缩放比例下,悬浮提示信息始终在可视区域内显示,防止被窗口边界遮挡。LazyLock 预编译正则表达式解析版本号,提升运行效率并降低内存抖动。parametersJsonSchema 重命名为 parameters,确保与 Gemini 最新 API 规范完全对齐。/api/proxy/status 缺少 port 字段且 base_url 构造错误的问题,确保前端能正确显示监听地址。auth_mode 默认值改为 auto。在 Docker 或允许局域网访问的环境下,系统现在会自动激活身份验证,确保 WEB_PASSWORD 生效。ABV_AUTH_MODE 和 AUTH_MODE 环境变量,允许用户在启动时显式覆盖鉴权模式(支持 off, strict, all_except_health, auto)。v4.0.7 (2026-01-29):
[性能优化] 优化 Docker 构建流程 (Fix Issue #1271):
[性能优化] 解决 Docker 版本在大数据量下的卡顿与崩溃问题 (Fix Issue #1269):
spawn_blocking),彻底解决了在查看大型日志文件(800MB+)时可能导致的 UI 卡死及反代服务不可用的问题。[核心修复] 解决 OpenAI 协议 400 Invalid Argument 错误 (Fix Issue #1267):
maxOutputTokens: 81920 设置。该值超过了许多旧模型(如 gemini-3-pro-preview 或原生 Claude 3.5)的硬性限制,导致请求被直接拒绝。-thinking 结尾的模型自动注入 thinkingConfig,避免了对不支持该参数的标准模型(如 gemini-3-pro)产生副作用。[兼容性修复] 修复 OpenAI Codex (v0.92.0) 调用错误 (Fix Issue #1278):
external_web_access 字段,消除了 Gemini API 返回的 400 Invalid Argument 错误.name 字段的强制校验。当客户端发送缺失名称的无效工具定义时,代理层现在会自动跳过并记录警告,而不是直接让请求失败。[核心功能] 自适应熔断器 (Adaptive Circuit Breaker):
account_id:model 的复合 Key 限流追踪,确保单一模型的配额耗尽不会导致整个账号被锁定。[60, 300, 1800, 7200] 等多级退避阶梯,自动根据失败次数增加锁定时间。TokenManager 内存缓存,实现配置修改后反代服务即刻生效,无需重启。[核心优化] 完善日志清理与冗余压制 (Fix Issue #1280):
v4.0.6 (2026-01-28):
upsert (更新或新增) 模式。现在重新授权已存在的账号会平滑更新其 Token 和项目信息,不再弹出报错。TokenManager,确保所有平台共用同一套健壮的账号核验与存储逻辑。ModelCapacityExhausted 错误(如 503),将原有的固定 15 秒重试等待优化为 [5s, 10s, 15s] 阶梯式策略,显著减少了偶发性容量波动的等待时间。max_tokens 从 16k 提升至 81,920 (80k)。--no-autoupdate / --loglevel),解决了 cloudflared 进程启动即退出的问题。DETACHED_PROCESS 标志,实现了隧道的完全静默后台运行,消除了弹窗干扰。v4.0.5 (2026-01-28):
localhost 作为 OAuth 重定向 URI,绕过了 Google 对私网 IP 和非 HTTPS 环境的拦截策略。ar) 翻译支持。RateLimitTracker 和 TokenManager 中底层实现了手动与自动触发的清除逻辑,确保高并发下的状态一致性。DELETE /api/proxy/rate-limits),方便开发者进行编程化管理与集成。v4.0.4 (2026-01-27):
/v1/images/generate) 调用 Gemini 3 图像模型,支持 size、quality 等参数。docs/gemini-3-image-guide.md,提供完整的 Gemini 图像生成集成指南。common_utils.rs) 和 Gemini/OpenAI 映射逻辑,确保大尺寸 Payload 传输稳定。accounts.json),导致重启后或桌面端无法识别的问题。TokenManager 的保存逻辑,复用了 modules::account 的核心方法,确保了文件锁与索引更新的原子性。device_id 也会报“不安全的应用版本”警告。cloudcode-pa.googleapis.com) 当前频繁的 429 错误。订阅等级 > 剩余配额 > 健康分。确保在同等级、同配额情况下,始终优先通过历史表现最稳定的账号。TokenManager 核心接口,并完成了全量处理器(Claude, Gemini, OpenAI, Audio, Warmup)的同步适配,确保调度层变更对业务层透明。Retry-After 或速率限制头部包含带小数点的毫秒值,导致解析失败。v4.0.3 (2026-01-27):
ABV_MAX_BODY_SIZE,支持用户根据需求动态调整最大限制。state 参数的生成与回调验证,增强了 OAuth 流程的安全性和兼容性。v4.0.2 (2026-01-26):
/api/health) 的免鉴权豁免,避免 UI 加载初期因状态检测失败触发登录。admin_update_model_mapping 接口正确调用持久化逻辑,配置在重启容器后依然生效。minLength, pattern, format 等)前,自动将其转化为描述提示。CONSTRAINT_FIELDS 常量和 move_constraints_to_description 函数,确保模型能通过描述理解原始约束。{"minLength": 5} → {"description": "[Constraint: minLen: 5]"}extract_best_schema_from_union 函数,使用评分机制选择最佳类型(object > array > scalar)。"Accepts: type1 | type2" 提示到描述中,保留所有可能类型的信息。get_schema_type_name 函数,支持显式类型和结构推断。ToolAdapter trait,为不同 MCP 工具提供定制化 Schema 处理能力。PencilAdapter,自动为 Pencil 绘图工具的视觉属性(cornerRadius, strokeWidth)和路径参数添加说明。clean_json_schema_for_tool 函数应用工具特定优化。clean_json_schema_cached 函数和缓存统计功能,预计性能提升 60%+。ABV_WEB_PASSWORD 或 WEB_PASSWORD 环境变量设置独立的管理后台登录密码。API_KEY(确保向后兼容)。API_KEY 进行认证,实现权限隔离。v4.0.1 (2026-01-26):
v4.0.0 (2026-01-25):
deploy/arch/PKGBUILD.template 中硬编码 data.tar.zst 导致的提取失败问题。.deb 包。ABV_PUBLIC_URL 自定义,完美适配远程 VPS 或 NAS 部署场景。deploy 目录及其旧版脚本,项目结构更加现代。antigravity-manager,并整合专属的 docker/ 目录与部署手册。400 Invalid signature 报错。common.rs,实现全局统一调度。Retry-After 就立即重试导致封号的问题。现在所有处理器在重试前必须通过共享模块执行物理等待,有效保护 IP 信誉。ANTHROPIC_API_KEY 时自动移除冲突的 ANTHROPIC_AUTH_TOKEN,解决 Claude CLI 同步报错问题。ANTHROPIC_MODEL 等可能干扰模型输出的环境变量,确保 CLI 使用标准模型。/compact 提示,避免死锁。stream: false),后端也会自动建立流式连接与上游通信,极大提升了连接稳定性和配额利用率。mapped_model 和 account_email 字段,导致无法定位出错的具体模型和账号。v4.0.0 (2026-01-25):
gemini-2.5-flash。gemini-3-flash)。internal-background-task 会严格遵循用户的重定向规则。gemini-2.5-flash 和 gemini-2.5-flash-lite 模型当前正处于极度容量受限状态 (Rate Limited / Capacity Exhausted)。gemini-3-flash 或 gemini-3-pro-high),直到上游恢复。ko) 翻译支持,现在可以在设置中选择韩语界面。v3.3.49 (2026-01-22):
[核心修复] Thinking 后中断与 0 Token 防御 (Fix Thinking Interruption):
[核心修复] 移除 Flash Lite 模型以修复 429 错误 (Fix 429 Errors):
gemini-2.5-flash-lite 频繁出现 429 错误,具体原因为 上游 Google 容器容量耗尽 (MODEL_CAPACITY_EXHAUSTED),而非通常的账号配额不足。gemini-2.5-flash-lite 调用(如后台标题生成、L3 摘要压缩)及预设映射全部替换为更稳定的 gemini-2.5-flash。gemini-2.5-flash-lite,请务必修改为其他模型,否则可能会持续遇到 429 错误。[性能优化] 设置项即时生效 (Fix PR #949):
[代码清理] 后端架构重构与优化 (PR #950):
openai/collector.rs),显著提升了代码的可维护性。[核心修复] 设置项同步策略更新:
App.tsx 与 Settings.tsx 之间的状态冲突,确保配置加载过程中的 UI 一致性。[核心优化] 上下文压缩与 Token 节省:
[功能增强] API 监控看板功能升级 (PR #951):
[JSON Schema 优化] 递归收集 $defs 并完善回退处理 (PR #953):
collect_all_defs() 以递归方式从所有模式层级收集 $defs/definitions,解决了嵌套定义丢失的问题。flatten_refs() 以捕获并处理孤立的 $ref 字段。$ref 添加了回退逻辑,将其转换为带有描述性提示的字符串类型。[核心修复] 账号索引保护 (Fix Issue #929):
[核心优化] 路由器与模型映射深度优化 (PR #954):
[稳定性增强] OAuth 回调与解析优化 (Fix #931, #850, #778):
[网络优化] OAuth 通信质量提升 (Issue #948, #887):
[体验优化] 上游代理配置校验与提示增强 (Contributed by @zhiqianzheng):
v3.3.48 (2026-01-21):
cloudflared 进程创建逻辑中添加 CREATE_NO_WINDOW 标志,确保所有后台进程静默运行。v3.3.47 (2026-01-21):
size, quality) 解析配置,支持动态宽高比计算,quality: hd 自动映射为 4K 分辨率。cloudflared 隧道支持,允许用户在无公网 IP 或处于复杂内网环境下,通过 Cloudflare 隧道一键发布 API 服务。src-tauri/src/proxy/handlers/claude.rs 中因多进程并行合并产生的 <<<<<<< HEAD 冲突标记。/compact 操作繁琐,且现有压缩策略会破坏 LLM 的 KV Cache,导致成本飙升assistant 消息中的 Thinking 块文本内容(替换为 "...")signature 字段,解决 Issue #902(签名丢失导致 400 错误)gemini-2.5-flash-lite 生成 8 节 XML 结构化摘要(成本极低)[User: XML摘要] + [Assistant: 确认] + [用户最新消息]context_manager.rs 中实现 Token 估算、工具裁剪、Thinking 压缩、签名提取等核心功能call_gemini_sync() - 可复用的同步上游调用函数/compact,系统自动处理estimation_calibrator.rs):
estimation_calibrator.rs - 全局单例校准器,线程安全claude.rs, streaming.rs, context_manager.rsI: 0, O: 0 (实际请求成功但 Token 未记录)has_valid_signature_for_function_calls() 现在检查 Session Cacherequest.rs 中的签名验证逻辑session_id 参数传递到签名检查函数[Signature-Check] 系列日志用于追踪签名恢复过程400 Bad Request 错误。json_schema.rs 中实现 fix_tool_call_args,基于 JSON Schema 自动将字符串类型的数字/布尔值转换为目标类型,并处理非法字段。local_shell_call、apply_patch 等工具在多级反代或特定客户端下参数被错误格式化为字符串导致的异常。config.rs 的 default_monitored_models() 中添加 gemini-3-pro-image,与智能预热和配额关注列表保持一致QuotaProtection.tsx 中添加画图模型选项,调整布局为一行4个模型(与智能预热保持一致)X-Accel-Buffering: no 头部/v1/messages)、OpenAI (/v1/chat/completions) 和 Gemini 原生协议全部支持claude.rs:L877, openai.rs:L314, gemini.rs:L240[System Recovery] Your previous output contained an invalid signature.
Please regenerate the response without the corrupted signature block.
claude.rs:L1012-1030 - 增强现有逻辑,支持 String 和 Array 消息格式openai.rs:L391-427 - 完整实现,使用 OpenAIContentBlock::Text 类型gemini.rs:L17, L299-329 - 修改函数签名支持可变 body,注入修复提示词v3.3.46 (2026-01-20):
ja.json、zh-TW.json、vi.json、ru.json、tr.json 等多国语言文件中的键值重复警告。补全了 account_trend、by_model 等缺失翻译,确保 8 种语言下的 UI 展现高度一致。[DONE] 是 SSE (Server-Sent Events) 协议的标准结束标记,在代码和文档中经常出现。将其作为 stopSequence 会导致模型在解释 SSE 相关内容时输出被意外截断。stopSequences 数组中移除了 "[DONE]" 标记。finishReason 字段控制,无需依赖 stopSequence"data: [DONE]" 已在 mod.rs 中单独处理ARG USE_CHINA_MIRROR 构建参数。默认模式保持原汁原味的 Debian 官方源(适合海外/云构建);开启后自动切换为清华大学 (TUNA) 镜像源(适合国内环境)。start.sh 中的 cleanup 逻辑,改用 pkill 精准查杀 Xtigervnc 和 websockify 进程,并清理 /tmp/.X11-unix 锁文件,解决了重启后 VNC 无法连接的各种边缘情况。/v1/responses) 接收复杂对象数组 input 或 apply_patch 等自定义工具(缺失 Schema)时导致上游返回 400 (INVALID_ARGUMENT) 的兼容性缺陷。input_text 类型内容块,并将 developer 角色适配为系统指令。requestId 前缀为 agent-,解决部分客户端的 ID 识别问题。propertyNames、const 等 JSON Schema 字段。虽然已有白名单过滤逻辑,但由于 clean_json_schema_recursive 函数缺少对 Value::Array 类型的递归处理,导致嵌套在 anyOf、oneOf 或 items 数组内部的非法字段无法被清除,触发 Invalid JSON payload received. Unknown name "propertyNames"/"const" 错误。anyOf/oneOf 分支之前,先递归清洗每个分支内部的内容,确保合并的分支已被清理,防止非法字段在合并过程中逃逸。match 语句增加 Value::Array 分支,确保所有数组类型的值(包括 items、enum 等)都会被递归清理,覆盖所有可能包含 Schema 定义的数组字段。v3.3.45 (2026-01-19):
preferred_account_id 支持,允许通过 API 或 UI 强制锁定特定账号进行请求调度。ja.json 和 vi.json 中由于历史 PR 累积导致的重复键(Duplicate Keys)警告,提升了翻译规范性。start.sh 启动逻辑,支持自动清理 X11 锁文件及服务崩溃自动退出,提升生产环境稳定性。shm_size: 2gb,解决容器内浏览器及图形界面崩溃问题。storage.json 的探测时机,确保在进程关闭前准确获取路径,兼容自定义数据目录。localStorage 持久化,用户手动选择的条数将永久锁定并覆盖自动模式。v3.3.44 (2026-01-19):
Prompt is too long: 历史 Thinking Block 累积导致 Token 超限Invalid signature: 代理重启后内存签名缓存丢失,旧签名被 Google 拒收ContextManager 模块: 实现 Token 估算与历史清洗逻辑Soft (60%+ 压力): 保留最近 2 轮 Thinking,剥离更早历史Aggressive (90%+ 压力): 移除所有历史 Thinking Blockthought_signature,避免签名校验失败X-Context-Purified: true 标识,便于调试v3.3.43 (2026-01-18):
pro_low 译为“低消費”)。refresh_msg 的拼写错误(hiện đài -> hiện tại)。x-goog-api-key 请求头:
x-goog-api-key 头部。x-api-key。v3.3.42 (2026-01-18):
[Stream Data] 的问题。现在会自动拦截并聚合流式数据包,将分散的 delta 片段还原为完整的回复内容和“思考”过程,大幅提升调试效率。anyOf/oneOf 结构时,会自动识别并提取内容最丰富的分支属性向上合并,解决了模型报错 malformed function call 的顽疾。minLength, pattern, format 等字段前,自动将其转为文字描述追加到 description 中,确保模型依然能感知参数约束。request.rs 中的工具调用结构,确保历史修复逻辑(如布尔值转换、Shell 数组转换)在重构后依然稳如磐石。v3.3.41 (2026-01-18):
merge_consecutive_messages 逻辑,在请求进入 Proxy 时自动合并具有相同角色的连续消息流。解决了因 Spec/Plan 模式切换导致的角色交替违规产生的 400 Bad Request 错误。EnterPlanMode 工具调用,强制清空冗余参数,确保完全符合官方协议,解决了激活 Plan Mode 时的指令集校验失败问题。v3.3.40 (2026-01-18):
streaming.rs 中在文字块后非法追加思维块的逻辑,改由缓存机制实现静默同步。claude.rs 中扩展了 400 错误捕获关键词,覆盖了签名失效、顺序违规和协议不匹配场景。一旦触发,代理会自动执行消息降级并快速重试,实现用户无感知的异常自愈。Grep 和 Glob 工具的参数映射逻辑,将 query 准确映射为 path (Claude Code Schema),并支持默认注入执行路径 .。search 等模型幻觉进行修正,避免破坏原始工具调用签名。thought_signature 的情况,自动注入通用校验占位符,确保协议链路畅通。clean_cache_control_from_messages,确保 cache_control 不会干扰 Vertex AI/Anthropic 严格模式。v3.3.39 (2026-01-17):
allOf 合并、智能联合类型选择、Nullable 自动过滤及空对象参数补全,解决复杂工具定义导致的 400 错误。Search 到 grep 的自动重映射,并引入 Glob-to-Include 迁移(自动将 **/*.rs 等 Glob 模式移至包含参数),解决 Claude Code Error searching files 报错。search_code_definitions 等相关工具的参数映射逻辑,并强制执行布尔值类型转换。local_shell_call 的 command 参数返回数组,增强与 Google API 的兼容性。thinking_budget 调整 maxOutputTokens,确保满足 API 强约束;精简停止序列 (Stop Sequences) 以提升流式输出质量。v3.3.38 (2026-01-17):
~/.local/bin (curl 安装常用路径)、~/.npm-global/bin 以及 ~/bin 的扫描。nvm 目录的深度扫描,支持自动识别不同 Node.js 版本下安装的 CLI 工具,解决 M1 芯片用户手动安装检测不到的问题。is_retry状态,在重试请求中强制剥离所有历史签名。配合严苛的模型家族校验(Gemini 1.5/2.0 不再混用签名),杜绝了无效签名导致的 400 错误。v3.3.37 (2026-01-17):
StickySessionConfig 添加了 #[serde(default)] 属性,确保旧版本的配置文件(缺少粘性会话字段)能够被正确加载,避免了反序列化错误。ApiProxy.tsx 中引入了独立的加载状态和错误处理机制。现在,在获取配置时用户会看到加载动画,如果加载失败,系统将展示明确的错误信息并提供重试按钮,取代了之前的空白或错误状态。kCFPreferencesAnyApplication),导致无法正确检测默认浏览器,进而拦截了 OAuth 跳转。Entitlements.plist 中添加了 com.apple.security.temporary-exception.shared-preference.read-only 权限例外,显式允许读取全局配置。v3.3.36 (2026-01-17):
is_warmup_request 检测逻辑中的严重缺陷。旧逻辑会扫描最近 10 条历史消息,一旦历史记录中包含任何一条 "Warmup" 消息(无论是用户发送还是后台心跳残留),系统就会误判所有后续的用户输入(如 "continue")为 Warmup 请求并强制回复 "OK"。cache_control: {"type": "ephemeral"} 字段,导致 Google API 返回 Extra inputs are not permitted 400 错误。clean_cache_control_from_messages,并将其集成到 Anthropic (z.ai) 转发路径中,确保在发送给上游 API 前移除所有 cache_control 字段。gemini-2.5-flash 的配额状态强制映射给 gemini-3-flash。gemini-2.5-flash 仍有额度(如 100%)但 gemini-3-flash 已耗尽(0%)时,系统误判 gemini-3-flash 也为满额并触发预热,造成“无额度却预热”的幽灵请求。2.5 -> 3 映射逻辑。现在的预热调度器严格检查每个模型自身的配额百分比,只有当该模型实测为 100% 时才会触发预热。gemini-2.5-pro 模型的可靠性问题,已将其从支持列表中移除。gpt-4 系列别名(如 gpt-4, gpt-4o)已重新映射至 gemini-2.5-flash,确保服务连续性。gemini-2.5-pro 的用户将自动路由至 gemini-2.5-flash。前端不再显示该模型。.antigravity.bak。“恢复”功能现已升级,能智能检测备份文件,并优先提供“恢复原有配置”选项,而非单一的重置默认。PATH 中,只要存在于标准安装路径,也能被正确识别并调用。where 检测)时会短暂弹出控制台窗口的问题。通过添加 CREATE_NO_WINDOW 标志,现在所有后台检测命令都将静默执行。auth_mode 为 off 时,UI 会正确显示“Disabled”状态,而不是一直显示“Enabled”。v3.3.35 (2026-01-16):
settings.json, .claude.json)、Codex (auth.json, config.toml) 及 Gemini CLI (.env, settings.json, config.json)。~/.claude.json 中注入 "hasCompletedOnboarding": true,帮助新用户直接跳过 Claude CLI 的初始登录/引导步骤。ModalDialog。collector.rs) 在处理 content_block_start 事件时遗漏了 thinking 块的 signature 字段,导致签名丢失。Invalid signature in thinking block 错误。collector.rs 中添加了 signature 字段的提取和持久化逻辑,并补充了单元测试 test_collect_thinking_response_with_signature。request.rs 中实施严格签名验证,只使用已缓存且兼容的签名。未知或不兼容的签名会导致 thinking 块自动降级为普通文本,避免发送无效签名。Invalid signature in thinking block 错误,支持跨模型切换和冷启动场景,确保 Thinking 模型在所有模式下稳定工作。pendingLogsRef 和 ID 排重机制,杜绝日志列表中出现重复条目。totalCount,确保页码和总数准确无误。/monitor,使功能定位更加直观。v3.3.34 (2026-01-16):
/v1/responses 等专有接口在请求体中仅包含 instructions 或 input 而缺失 messages 字段时,转换逻辑未覆盖全场景,导致 Gemini 接收到空 Body。handle_completions 中反向移植了聊天接口的“请求标准化”逻辑。现在系统会强制检测 Codex 特有字段(instructions/input),即使 messages 为空或缺失,也会自动将其转化为标准的 System/User 消息对,确保上游请求合法。session_id 提取与调度逻辑。现在无论是 Chat 还是 Codex 接口,只要是同一段对话,系统都会尽量将其调度到同一个 Google 账号上。thoughtSignature 进行了二次编码,导致 Google Vertex AI 无法正确校验签名而返回 Invalid signature 错误。Thinking、ToolUse 和 ToolResult 处理逻辑中多余的 Base64 编码步骤,确保签名以原始格式正确透传给上游。ProxyMonitor 组件中因 Closure 导致的事件监听失效问题,该问题导致新请求无法自动显示在列表中。useRef 优化事件缓冲逻辑,并新增手动刷新按钮作为备份方案;同时在 Tauri 权限配置中显式允许了事件监听。gemini-pro 等 UI 简写键名无法匹配到后端定义的 gemini-3-pro-high 严格组。normalize_to_standard_id 的大小写不敏感匹配,确保 Gemini-3-Pro-High 等变体能被正确识别。isModelProtected 中增加了对 gemini-pro/flash 等 UI 列名的自动映射,确保 UI 上的锁图标能正确反映后端保护状态。usageMetadata 映射到 OpenAI 格式的 usage 字段,导致 Kilo 等客户端显示 Token 使用量为 0。OpenAIResponse 增加了标准的 usage 字段。prompt_tokens、completion_tokens 及 total_tokens 的逻辑。setBackgroundColor 调用。v3.3.33 (2026-01-15):
instructions 参数的处理逻辑,确保其作为系统指令(System Instructions)正确注入,提升与 Codex 等工具的兼容性。instructions 或 input 字段触发的 Responses 模式,无需客户端手动切换。gemini-3-pro-low/high/pro 统一归一化为内部别名 gemini-3-pro-preview 的逻辑,并确保在上游请求时正确还原为物理模型名 high。opus 关键字模型并确保其默认路由至高性能 Pro 预览线路。tool_use.id 的问题,确保 functionCall 和 functionResponse 均保留原始 ID,解决了调用 Claude 模型时的 Field required 错误。reasoning_content 的支持,将其正确映射为内部 thought 部分并注入思维链签名,显著提升了“思考型”模型的视觉回显效果。tool 角色消息中可能产生的冗余 Part 冲突,确保请求报文严格符合上游校验规范。TokenManager 中新增 has_available_account() 方法,综合判断账号的限流状态和配额保护状态。token_manager.rs: 新增 has_available_account() 方法,检查是否存在未被限流且未被配额保护的可用账号handlers/claude.rs: 优化 Fallback 模式判断逻辑,从简单的 google_accounts == 0 改为智能的可用性检查gemini-2.5-flash)与用户在 UI 勾选的标准名称(如 gemini-3-flash)不一致,导致精确字符串匹配失败,保护机制无法触发。normalize_to_standard_id,将所有物理模型名映射到 3 个标准保护 ID:
gemini-3-flash: 所有 Flash 变体 (1.5-flash, 2.5-flash, 3-flash 等)gemini-3-pro-high: 所有 Pro 变体 (1.5-pro, 2.5-pro 等)claude-sonnet-4-5: 所有 Claude Sonnet 变体 (3-5-sonnet, sonnet-4-5 等)model_mapping.rs: 新增归一化函数account.rs: 配额更新时归一化模型名并存储标准 IDtoken_manager.rs: 请求拦截时归一化 target_model 进行匹配gemini-2.5-flash,依然能正确归一化为 gemini-3-flash 并触发保护。GET /logs 接口供外部调用。session_id,并将 max_tokens 限制为 8,temperature 设置为 0,以降低资源消耗并避免 429 错误。INVALID_ARGUMENT 报错。
[Thinking, Text, ToolUse] 严格顺序校验。v3.3.32 (2026-01-15):
TokenManager 中限流记录的匹配精准度,解决了在多实例或复杂网络环境下可能出现的速率限制判定不一致问题。v3.3.31 (2026-01-14):
token_manager.rs 中的部分编译警告。Elastic-Recovery 逻辑,在注入占位结果前增加全量消息 ID 预扫描,避免了 Found multiple tool_result blocks with id 错误。v3.3.30 (2026-01-14):
pattern 参数错误放置在 description 或 query 字段的问题,增加了自动重映射逻辑。yes/no、-n 等非标准布尔值的自动转换支持,解决了 lineNumbers 等参数因类型错误导致的调用失败。sk- 开头,长度至少 10 个字符),防止无效输入。v3.3.29 (2026-01-14):
stream: true) 中缺少 Function Call 处理逻辑,导致客户端无法接收到工具调用信息。create_openai_sse_stream 函数只处理了文本内容、思考内容和图片,完全缺少对 functionCall 的处理。emitted_tool_calls),防止重复发送functionCall 检测和转换逻辑delta.tool_calls 数组call_idindex, id, type, function.name, function.arguments)stream: true + tools 参数的客户端现在可以正常接收 Function Call 数据。Prompt is too long 错误,并返回友好的中文/英文修复指引,引导用户执行 /compact。: ping),解决长耗时工具调用导致的连接超时断开问题。<style>、<script> 及内联 Base64 资源。accounts.json 时增加了对空文件的检测及自动重置逻辑。expected value at line 1 column 1。v3.3.28 (2026-01-14):
reasoning_content 累积逻辑,解决了 Gemini 3 Pro (high/low) 非流式响应中思考内容丢失的问题。-thinking 结尾的模型(如 claude-opus-4-5-thinking、claude-sonnet-4-5-thinking),自动注入 thinkingConfig 确保思考内容正常输出。thinkingBudget: 16000 配置,符合 Cloud Code API 规范。reasoning_content 字段正常工作,不影响 Anthropic 和 Gemini 原生协议。ExperimentalConfig 添加热更新机制,与其他配置项(mapping、proxy、security、zai、scheduling)保持一致。AxumServer 中添加 experimental 字段存储和 update_experimental() 更新方法,在 save_config 中自动触发热更新。~/.antigravity_tools/warmup_history.json,程序重启后冷却期仍然有效,解决状态丢失问题。gemini-3-flash、claude-sonnet-4-5、gemini-3-pro-high、gemini-3-pro-image),避免历史记录臃肿。@tanstack/react-virtual 虚拟滚动库,仅渲染可见行(约 20-30 行)v3.3.27 (2026-01-13):
v3.3.26 (2026-01-13):
limit/remaining 字段而失效的问题。现在直接使用模型数据中始终存在的 percentage 字段,确保任何受监控模型(如 Claude 4.5 Sonnet)配额低于阈值时,账号都能被立即禁用。quota_protection: claude-sonnet-4-5 (0% <= 10%)),便于排查。cache_control 字段清理机制,解决 Chrome Dev Tools MCP 等工具在 thinking block 中包含 cache_control 导致的 "Extra inputs are not permitted" 错误。
[DEBUG-593] 日志前缀,记录消息索引和块索引,便于问题定位和调试。deep_clean_cache_control() 函数,递归遍历所有嵌套对象和数组,移除任何位置的 cache_control 字段。cache_control。tool_result_compressor 模块,处理超大工具输出,降低 prompt 超长导致的 429 错误概率。
cache_control 字段导致的 API 错误,同时通过智能压缩降低了超大工具输出导致的 429 错误概率。/v1/images/generations 端点缺少 X-Account-Email 响应头的问题,现在监控面板能正确显示处理图片生成请求的账号信息。/v1/images/edits 端点缺少 X-Account-Email 响应头的问题,确保图片编辑请求的账号信息能被正确记录。/v1/audio/transcriptions 端点缺少 X-Account-Email 响应头的问题,完善了音频转录功能的监控支持。deploy/headless-xvfb/ 目录,提供针对 Linux 无界面服务器的一键安装、同步、升级脚本。v3.3.25 (2026-01-13):
process.rs 中的参数命名和可变性问题。v3.3.24 (2026-01-12):
claude-sonnet-4-5 错误显示的名称由 "Claude 3.5 Sonnet" 修正为 "Claude 4.5 Sonnet"。v3.3.23 (2026-01-12):
tray-icon.png) 分辨率从 22x22 提升至 44x44,解决了在高分屏下显示模糊的问题 (Fix Issue #557)。sort_thinking_blocks_first 逻辑,确保助手消息中的思考块始终位于最前,符合 Anthropic API 的 400 校验规则。v3.3.22 (2026-01-12):
gemini-3-flash, gemini-3-pro-high, claude-sonnet-4-5),仅在选中模型额度低于阈值时触发保护claude-sonnet-4-5,UI 强制至少保留一个模型gemini-3-flash, gemini-3-pro-high, claude-sonnet-4-5, gemini-3-pro-image)SmartWarmup.tsx 组件,提供与配额保护一致的勾选体验status 字段索引,统计查询性能提升 50 倍get_stats() 查询,从 3 次全表扫描合并为 1 次,查询时间减少 66%request_body 和 response_body 字段,数据传输量减少 90%+get_proxy_logs_paginated 命令,支持分页查询(每页 20 条)get_proxy_log_detail 命令,点击日志时才查询完整详情v3.3.21 (2026-01-11):
device.rs),支持指纹生成、绑定、恢复和版本管理。DeviceFingerprintDialog.tsx),提供可视化的指纹管理界面。X-Warmup-Intercepted 响应头标识email 而非 account_id 作为限流记录的 key。
chars().take() 安全截取字符串。cargo test 步骤,确保所有测试通过后才能构建发布版本。common_utils.rs 中联网搜索测试的模型映射断言(gemini-3-flash → gemini-2.5-flash)。gemini/wrapper.rs 中重复的测试模块定义,优化测试代码结构。common_utils_test_probe.rs 文件,提供自定义工具检测的测试用例。[Response too large (>10MB)] 而无法记录完整响应。update_checker.rs 模块,集成 GitHub API 自动检测最新版本。
update_settings.json)UpdateNotification.tsx Toast 通知组件。
os error 2 报错。现在当用户选择禁用且启动项已不存在时,系统将视为操作成功,不再阻断后续逻辑。usageMetadata 节点并映射 promptTokenCount 等原生字段。v3.3.20 (2026-01-09):
stream: true) 和非流式 (stream: false) 请求采用截然不同的配额限制策略。流式请求配额更宽松,非流式请求极易触发 429 错误。src-tauri/src/proxy/mappers/claude/collector.rs - Claude SSE 收集器src-tauri/src/proxy/mappers/openai/collector.rs - OpenAI SSE 收集器claude.rs 和 openai.rs handler,实现自动转换逻辑.run() 改为 .build().run() 模式,添加 RunEvent::Reopen 事件处理器。Regular。v3.3.19 (2026-01-09):
gpt-4*, o1-* 等)。model 字段到 RateLimitInfo 结构,支持针对特定模型进行限流锁定。mark_rate_limited_async、set_lockout_until、set_lockout_until_iso 等方法,添加可选的 model 参数。model: None 表示账号级别限流(保持原有行为),model: Some(...) 表示模型级别限流(新功能)。clear_all)并重试。[WARN]/[INFO]),便于调试和监控。v3.3.18 (2026-01-08):
quotaResetDelay 时,实时调用配额刷新 API 获取最新的 reset_time,精确锁定账号到配额恢复时间点。quotaResetDelayreset_timeset_lockout_until_iso 方法,支持使用 ISO 8601 时间字符串精确锁定账号。ModelCapacityExhausted 错误类型,处理服务端暂时无可用 GPU 实例的情况(15 秒重试)。createPortal 将下拉菜单渲染到 document.body,但 handleClickOutside 只检查 containerRef,导致点击选项时被误判为"点击外部"。dropdownRef 引用下拉菜单,修改 handleClickOutside 同时检查容器和下拉菜单,确保点击选项时不会关闭菜单。money_saving_tip、haiku_optimization_tip、haiku_optimization_btn、select_target_model<select> 替换为自定义 GroupedSelect 组件。
customMappingValue state 管理选中值models 动态生成 customMappingOptionsAddAccountDialog 中的 <dialog> 标签替换为 <div>,解决了 macOS 12.1 (Safari < 15.4) 等旧版本系统上点击“添加账号”按钮无反应的问题。claude-opus-4-5-thinking 等内置直通模型在 CLI 模式下被错误地应用家族映射规则(如被重定向到 gemini-3-pro-high)的问题。v3.3.17 (2026-01-08):
reasoning_content 字段,使 Gemini 3 模型的思考过程能够被 Cherry Studio 等客户端正确折叠显示。thought:true 标记自动分离思考内容到 reasoning_content 字段,正常内容保留在 content 字段,提升用户体验。streaming.rs 和 response.rs 中同时实现 reasoning_content 支持,确保所有响应模式下的一致性。content 和 reasoning_content 都为空时才跳过。stream_id 和 created_ts,符合 OpenAI 协议规范。anyOf/oneOf 被移除后导致字段缺少 type 属性的问题。anyOf/oneOf 之前,自动提取第一个非 null 类型到 type 字段,确保 Schema 有效性。type 时才提取,已有 type 的 Schema 不受影响,确保与标准 MCP Server 的兼容性。anyOf/oneOf 类型提取、已有类型保护等场景。GroupedSelect 组件替换原生 <select>,解决 Windows 下拉菜单过于透明的问题。createPortal 将下拉菜单渲染到 document.body,解决被父容器遮盖的问题。title 属性,鼠标悬停时显示完整的模型名称。en.json,添加缺失的英文翻译键,覆盖导航栏、账户管理、API 代理等模块。useTranslation hook 和 t() 函数实现动态翻译。zh.json 和 en.json,确保中英文翻译键的一致性。AccountGrid、AddAccountDialog、Navbar、Accounts、accountService 等 7 个文件,提升多语言支持质量。claude/request.rs、openai/request.rs、gemini/wrapper.rs 三个文件,提升了模型响应的一致性和准确性。v3.3.16 (2026-01-07):
futures::join_all 实现并发任务执行bg-white/60 改为 bg-gray-100/40,移除模糊效果,提升可读性。checkbox-primary 改为自定义蓝色样式,保持视觉一致性。bg-blue-500 dark:bg-blue-600),一眼识别已启用功能。slate-800/80 暗色背景,对比度更好。dark:border-base-200 改为 dark:border-gray-700/50,层次更清晰。dark:bg-gray-800/50,视觉分隔更明显。cn() 工具函数优化类名拼接,代码更简洁。fill: 'forwards' 防止动画结束时的白色闪烁。paths (数组) 改为 path (字符串),并实现了大小写不敏感的工具名匹配。RedactedThinking 导致报错的问题,现在会优雅降级为 [Redacted Thinking] 文本,保留上下文。clean_json_schema 误删名为 "pattern" 等非校验属性的 Bug,提高了 Schema 兼容性。last_used_account 锁的获取移到重试循环外,从每个请求 18 次锁操作降低到 1-2 次,大幅减少并发场景下的锁竞争。get_token() 操作添加 5 秒强制超时,防止系统过载或死锁时请求无限期挂起。info! 降级为 debug!,大幅减少日志输出量。streaming.rs 和 response.rs 中的 21 处日志级别,添加了 cleanup_old_logs() 自动清理函数。thinkingBudget: 16000 配置(而非错误的 thinkingLevel),符合 Cloud Code API 规范。-high 和 -low 后缀,API 需要完整的模型名称来识别特定变体。gemini-3-pro 基础模型的直接透传映射,支持不带后缀的调用。gemini-3-pro-high 和 gemini-3-pro-low 并获得包含 thinking 内容的响应。gemini-2.5-flash 支持 googleSearch 工具,现在所有模型(包括 Gemini 3 Pro、thinking 模型、Claude 别名)在启用联网时都会自动降级到 gemini-2.5-flash。n 参数的支持,允许一次请求返回多个候选结果。clean_json_schema 函数中添加了枚举值字符串化逻辑,将数字、布尔值、null 等自动转换为字符串。TYPE_STRING 类型,符合 Gemini v1internal API 的严格要求。/v1/audio/transcriptions 端点,兼容 OpenAI Whisper API,支持 15MB 文件大小限制。audio_url 支持将在后续版本中完整实现(需要与 v3.3.16 的 thinkingConfig 逻辑协调)。WEBKIT_DISABLE_DMABUF_RENDERER=1),解决了部分发行版(如 Ubuntu/Fedora)下窗口透明失效或黑屏的问题。brew install --cask 轻松安装并自动配置 AppImage 权限。tee***@gmail.com)。g-3-pro-high =u003e gpt-5.2)。account_email 和 mapped_model 列,向后兼容现有数据库。v3.3.15 (2026-01-04):
claude-opus-4-5-thinking 等模型进行首次请求时,如果没有有效签名,系统会自动禁用 thinking 模式以避免 API 拒绝,解决了 "Server disconnected without sending a response" 错误。cache_control 字段,解决 Anthropic API (z.ai 模式) 的 "Extra inputs are not permitted" 错误。query → pattern, Read: path → file_path),解决 Claude Code 工具调用验证错误。GEMINI_SAFETY_THRESHOLD 环境变量,支持 5 个安全级别 (OFF/LOW/MEDIUM/HIGH/NONE),默认 OFF 保持向后兼容。output_config.effort 参数,允许精细控制模型推理努力程度。v3.3.14 (2026-01-03):
WEB_SEARCH_FALLBACK_MODEL,提升可维护性functionDeclarations 和 googleSearchparse_error_count 和 last_valid_state 追踪,实现流式响应错误监控handle_parse_error() 用于优雅的流降级reset_error_state() 用于错误后恢复get_error_count() 用于获取错误计数lowQuotaCount 过滤器中添加 is_forbidden 检查,排除被禁用账户v3.3.13 (2026-01-03):
thinking: Field required 错误。gemini-2.5-flash)时,自动禁用 Thinking 并降级历史消息,避免 "Corrupted thought signature" 错误。只有带 -thinking 后缀的模型(如 gemini-2.5-flash-thinking)或 Claude 模型支持 Thinking。quotaResetDelay 无法正确解析的问题。
quotaResetDelay 的提取路径从 details[0].quotaResetDelay 修正为 details[0].metadata.quotaResetDelay,匹配 Google API 的实际 JSON 结构。parse_duration_string() 函数,支持解析所有 Google API 返回的时间格式,包括 "2h21m25.831582438s", "1h30m", "5m", "30s" 等复杂格式组合。RateLimitReason 枚举,区分 QUOTA_EXHAUSTED(配额耗尽)和 RATE_LIMIT_EXCEEDED(速率限制)两种限流类型,根据类型设置不同的默认等待时间(配额耗尽: 1小时,速率限制: 30秒)。"2h21m25s"),导致使用固定默认值 60 秒。账号被错误地认为"1分钟后恢复",实际可能需要 2 小时,导致账号陷入 429 循环,只使用前 2 个账号,后续账号从未被使用。"2h21m25.831582438s" → 8485秒),账号被正确标记为限流状态并等待准确的时间,确保所有账号都能被正常轮换使用,解决"只使用前 2 个账号"的问题。v3.3.12 (2026-01-02):
400: thinking.signature: Field required 错误。
skip_thought_signature_validator 哨兵值的逻辑,只使用真实签名或完全不添加 thoughtSignature 字段。v3.3.11 (2026-01-02):
gemini-3-flash 时模型输出 "Thinking Process" 或 "Actually, the instruction says..." 等困惑回复的问题。现在通用 OpenAI 协议请求将保持原汁原味。maxOutputTokens: 64000 的逻辑。该强制设置导致标准 Gemini 3 Flash/Pro 模型 (上限 8192) 拒绝请求并返回空响应,进而引发 Python 客户端出现 'NoneType' object has no attribute 'strip' 错误。修复后,代理将默认使用模型原生上限或尊重客户端参数。maxOutputTokens: 64000 的逻辑。该强制设置导致标准 Gemini 3 Flash/Pro 模型(上限 8192)拒绝请求并返回空响应,进而引发 Python 客户端出现 'NoneType' object has no attribute 'strip' 错误。修复后,代理将默认使用模型原生上限或尊重客户端参数。--user-data-dir 路径data/user-data 目录allow_methods 从泛型 Any 改为明确的方法列表(GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH),提升浏览器环境下的兼容性。max_age(3600) 配置,将 CORS 预检请求缓存时间设置为 1 小时,减少不必要的 OPTIONS 请求,提升性能。allow_credentials(false) 配置,与 allow_origin(Any) 配合使用时符合安全最佳实践。@dnd-kit 库实现,支持键盘导航和无障碍访问。v3.3.10 (2026-01-01):
prod → daily 双端点 Fallback 策略,当主端点返回 404/429/5xx 时自动切换到备用端点,显著提升服务可用性。pool_max_idle_per_host(16)、tcp_keepalive(60s) 等参数,优化连接复用,减少建立开销,特别适配 WSL/Windows 环境。/api/event_logging/batch 和 /healthz 等心跳请求从 INFO 降级到 TRACE,消除日志噪音。RUST_LOG=debug 可查看完整请求/响应 JSON,支持深度调试。-2k 分辨率,满足更高清的绘图需求。-21x9 (或 -21-9) 比例支持,适配带鱼屏显示。2560x1080 等自定义尺寸。POST /v1/models/detect 接口,支持实时探测特定模型的图片生成能力及配置组合。/v1/models 接口现在自动罗列所有分辨率与比例的画图模型变体(如 gemini-3-pro-image-4k-21x9),方便客户端调用。gemini-2.0-flash-exp 修正为 gemini-2.5-flash-lite,解决标题生成、摘要等后台任务的 404 错误。gemini-2.5-flash-lite。v3.3.9 (2026-01-01):
Scheduling Mode 现在正式覆盖 OpenAI (Cursor/Cherry)、Gemini 原生及 Claude 协议。quotaResetDelay 提取,并在 500/503/529 故障时自动触发 20s 避让隔离,实现平滑热切换。TokenManager 轮转时主动避开所有限流或隔离账号;全量限流时精准提示最短重置时间。v3.3.8 (2025-12-31):
代理监控模块 (核心致谢 @84hero PR #212):
UI 优化与布局改进:
Zai Dispatcher 调度器集成 (核心致谢 @XinXin622 PR #205):
Exclusive (专属)、Pooled (池化) 和 Fallback (回退) 三种调度模式,灵活平衡响应速度与账号安全性。账号异常自动处理 (核心致谢 @salacoste PR #203):
invalid_grant 错误)时,系统会自动将该账号标记为禁用状态,防止代理服务因重复尝试故障账号而产生 5xx 错误。invalid_grant 异常处理机制的详细说明文档。动态模型列表 API (智能化端点优化):
/v1/models (OpenAI) 和 /v1/models/claude (Claude) 接口现在实时聚合内置映射与用户自定义映射,修改设置即刻生效。gemini-3-pro-image-4k-16x9 等画图模型及所有自定义 ID。账号配额管理与模型分级路由 (运营优化与 Bug 修复):
v3.3.7 (2025-12-30):
pattern)迁移至描述字段,解决 Schema 拒绝问题。gemini-2.5-flash 以确保 100% 成功率。thoughtSignature 的提取与持久化逻辑,解决了多轮对话中因签名丢失导致的 400 错误。v3.3.6 (2025-12-30):
/v1/images/generations 端点,支持 model、prompt、n、size 及 response_format 等标准参数。/v1/images/edits 和 /v1/images/variations 端点。v3.3.5 (2025-12-29):
429 (限流/配额)、403 (权限) 或 401 (认证失效) 错误时,系统在重试时会 强制绕过 60s 会话锁定 并切换到账号池中的下一个可用账号,并实现故障迁移。2025-12-29T22:50:41+08:00),而非 UTC 时间,便于用户直观查看。v3.3.4 (2025-12-29):
input_image 块解析,并支持 file:// 本地路径自动转 Base64 上传。cache_control 的物理隔离)及 thoughtSignature 的上下文回填逻辑。v3.3.3 (2025-12-29):
ContentBlock::Thinking 消息中缺失 thought: true 标记导致的格式校验错误。此修复解决了 95% 以上的 Claude 思维链相关报错,大幅提升多轮对话稳定性。此问题会导致不管是否显式开启 thinking 功能,在多轮对话(特别是使用 MCP 工具调用)时都会出现 400 INVALID_REQUEST_ERROR。修复后,所有 thinking blocks 都会被正确标记,上游 API 能够准确识别并处理。v3.3.2 (2025-12-29):
web_search_tool_result 内容块。现在支持在 Cherry Studio 等兼容客户端中直接显示结构化的搜索引文及来源链接。thoughtSignature 存储机制。系统能够实时捕获流式响应中的最新签名,并自动为缺少签名的后续请求(特别是在会话恢复场景下)进行回填,显著减少了 400 INVALID_ARGUMENT 报错。GroundingMetadata 数据结构,解决了 PR #128 集成过程中发现的类型冲突与解析异常。thoughtSignature 在跨多个 SSE 块时能被正确提取与存储。v3.3.1 (2025-12-28):
cache_control 标记或 thought: true 字段引发的上游校验报错。通过"历史消息去思考化"策略,完美绕过了 Google API 兼容层的解析 Bug,确保了长会话的稳定性。pattern、minLength、maximum 等)迁移到描述字段中,既符合上游 Schema 规范,又保留了模型的语义提示。role标记,并增强了对 cache_control 的显式过滤与拦截,确保生成的 Payload 达到最佳兼容性。googleSearchRetrieval 等新一代工具定义,并提供统一的 googleSearch 载荷标准化映射,确保 Cherry Studio 等客户端的联网开关能完美触发。[undefined] 无效属性,从根源解决 400 INVALID_ARGUMENT 报错。[USER] 为真实对话,[AUTO] 为后台任务。v3.3.0 (2025-12-27):
/v1/responses 端点的深度适配与 shell 工具调用指令的智能转换 (SSOP)。thoughtSignature 存储与回填逻辑,解决了 Claude CLI 使用 Gemini 3 系列模型时的签名校验报错。/v1/completions 和 /v1/responses 路由,兼容更多传统 OpenAI 客户端。127.0.0.1,仅允许本机访问,保障隐私安全。allow_lan_access 配置开关,开启后监听 0.0.0.0 以允许局域网设备访问。v3.2.8 (2025-12-26):
gemini-3-pro-image)发送图片请求时因 content 格式不匹配导致的 400 错误。inlineData,使其具备与 Claude 协议同等的图像处理能力。v3.2.7 (2025-12-26):
propertyNames, const, anyOf, oneOf, allOf, if/then/else, not 等 MCP 工具常用但 Gemini 不支持的高级 JSON Schema 字段,解决 Claude Code v2.0.76+ 使用 MCP 工具时的 400 错误。["string", "null"])降级为单一类型,解决 "Proto field is not repeating" 错误。pattern 等的属性定义。import_custom_db 命令未注册导致的 "Command not found" 错误。现在用户可以正常选择自定义路径的 state.vscdb 文件进行账号导入。RetryInfo 解析,精准遵循 Google API 的重试指令并增加安全冗余,有效降低账号被封禁风险。image_gen 类型请求禁用 60s 时间窗口锁定,实现多账号极速轮换,解决画图 429 报错问题。v3.2.6 (2025-12-26):
mkdir 等静默命令,自动将空输出映射为显式成功信号,解决 Claude CLI 任务流中断与幻觉问题。stopSequences,精准切断流式输出,解决响应尾部冗余导致的解析报错。GoogleSearch 与 FunctionCall 的互斥检查,并在后台任务(Token Saver)重定向时自动剥离工具负载,根除了 400 工具冲突 (Multiple tools) 错误。RetryInfo,在触发限流时自动等待并重试,显著减少账号无效轮换。/resume 可能出现的签名失效报错,实现了自动剥离 Thinking 块的二次重试,提升会话恢复成功率。enumCaseInsensitive 等扩展字段的过滤。mappers 测试模块中缺失的导入及重复属性错误,并新增了内容块合并与空输出补全测试。v3.2.3 (2025-12-25):
canonicalize) 进行比对。std::env::current_exe() 路径,杜绝了 Antigravity-Manager 将自身误识别为核心进程而发生的“自杀”现象。v3.2.2 (2025-12-25):
tracing-appender 与 tracing-log,实现了终端与文件的双通道日志记录。现在包括系统启动、反代请求全链路(请求/响应/耗时)以及第三方库底层流水在内的所有调试信息,均会实时、自动地归档至本地 app.log 中。project_id 兜底机制。针对部分无 Google Cloud 项目权限的账号,系统现在会自动生成随机 ID 以确保反代服务及配额查询能正常运行,解决了“账号无资格获取 cloudaicompanionProject”导致的报错中断。try_init 模式修复了由于日志订阅器重复初始化导致的系统 Panic 崩溃,显著提升了在不同运行环境下的兼容性。write a 5-10 word title, Concise summary, prompt suggestion generator)。检测到正常用户请求(保留原映射),后台任务显示为 检测到后台自动任务(重定向),消耗去向一目了然。thoughtSignature 而导致的 400 INVALID_ARGUMENT 错误。gemini 单词中包含 mini 从而被误判定为 OpenAI 分组的问题。现在 Gemini 模型能正确实现原名穿透。v3.2.1 (2025-12-25):
state.vscdb 文件,方便从备份或其他位置恢复账号数据。project_id 到本地。functionCall 结果,解决了“空输出”报错。<thought> 标签在输出中展示,推理信息不再丢失。stop 序列、response_format (JSON 模式) 以及 tools 自定义工具的完整映射支持。system 消息导致报错的问题。multipleOf、exclusiveMinimum、pattern、const、if-then-else 等),解决 CLI 工具通过 API 调用工具时的 400 报错。<thought> 标签,确保 Claude Code 等高级工具的长对话稳定性。v3.2.0 (2025-12-24):
proxy 模块,实现了 mappers (协议转换)、handlers (请求处理)、middleware (中间件) 的完全解耦,大幅提升代码可维护性与扩展性。antigravity 与 Google 官方工具重名。为确保安装的是本项目,目前推荐使用上述原始文件安装。后续我们将推出官方 Tap。<a href="https://github.com/lbjlaq"></a> <a href="https://github.com/XinXin622"></a> <a href="https://github.com/llsenyue"></a> <a href="https://github.com/salacoste"></a> <a href="https://github.com/84hero"></a> <a href="https://github.com/karasungur"></a> <a href="https://github.com/marovole"></a> <a href="https://github.com/wanglei8888"></a> <a href="https://github.com/yinjianhong22-design"></a> <a href="https://github.com/Mag1cFall"></a> <a href="https://github.com/AmbitionsXXXV"></a> <a href="https://github.com/fishheadwithchili"></a> <a href="https://github.com/ThanhNguyxn"></a> <a href="https://github.com/Stranmor"></a> <a href="https://github.com/Jint8888"></a> <a href="https://github.com/0-don"></a> <a href="https://github.com/dlukt"></a> <a href="https://github.com/Silviovespoli"></a> <a href="https://github.com/i-smile"></a> <a href="https://github.com/jalen0x"></a> <a href="https://linux.do/u/wendavid"></a> <a href="https://github.com/byte-sunlight"></a> <a href="https://github.com/jlcodes99"></a> <a href="https://github.com/Vucius"></a> <a href="https://github.com/Koshikai"></a> <a href="https://github.com/hakanyalitekin"></a> <a href="https://github.com/Gok-tug"></a>
感谢所有为本项目付出汗水与智慧的开发者。
本项目在开发过程中参考或借鉴了以下优秀开源项目的思路或代码,排名不分先后:
版权许可: 基于 CC BY-NC-SA 4.0 许可,严禁任何形式的商业行为。
安全声明: 本应用所有账号数据加密存储于本地 SQLite 数据库,除非开启同步功能,否则数据绝不离开您的设备。