AnyBridge v0.5.8
-
优化 Antigravity 稳定性与对话体验:
- 内部依赖模型(checkpoint / fast model)现在跟随用户当前正在使用的 BYOK 模型,而不是平台默认 provider;默认 provider(如冷却中的 CPA)不再拖累内部请求。
- 内部依赖模型失败时静默返回空响应,错误只写入诊断日志,不再把
[AnyBridge] 上游请求失败提示条插入对话。 v1internal:streamGenerateContent改为真流式透传:直接 pipe 上游 SSE 并逐块转换为 Gemini 帧(中间帧OTHER,工具调用TOOL_CALL,末尾补空STOP),避免缓冲导致长回复时 Language Server 等待超时;上游不支持时自动回退到缓冲模式。- 新增回归测试(流式转换、内部模型跟随),
local-proxy与antigravity共 31 项全部通过。
-
修复 Antigravity 流式响应缺少 Cloud Code 信封导致 Language Server 空指针崩溃的根本问题:
- 根因:
v1internal:generateContent/v1internal:streamGenerateContent的正确响应格式是 Cloud Code 信封{ response, traceId, metadata };此前返回裸candidates,LS 解析时取envelope.Response得到 nil,在generation.go:680/stream_helpers.go:181空指针崩溃(进程exit code 2,界面永久卡在 "Working.")。参考开源实现vahapogut/antigravity-add-model的{ response: { candidates: [...] }, traceId: '', metadata: {} }格式修正。 - 修复:两个生成端点统一包信封;流式先发内容帧(
finishReason用OTHER/TOOL_CALL),随后补一个空parts的STOP终止帧;工具调用时标记TOOL_CALL。
- 根因:
-
修复 Antigravity Agent 卡在 "Working." 不回复的致命问题:
- 根因:
/v1internal:streamGenerateContent在上游失败(如商汤HTTP 429: inference exceeds tpm/rpm limit或HTTP 400: inference request is invalid)时,代理返回的是 HTTP 错误 +application/json;Antigravity Language Server 2.5.5 的流式解析器把该响应当流处理,触发空指针崩溃(panic: runtime error: invalid memory address or nil pointer dereference,generation.go:680/stream_helpers.go:181),进程exit code 2,界面永久停留在 "Working."。 - 修复:Antigravity
streamGenerateContent分支捕获上游异常后统一降级为协议合法的 SSE 快照(HTTP 200 +text/event-stream),把错误信息作为模型文本回复返回,Agent 不再崩溃或卡死,用户能直接看到上游失败原因。 - 新增回归测试,
local-proxy与antigravity共 28 项全部通过。 - 说明:商汤通道当前存在
tpm/rpm限流,gpt-5.6-luna(CPA)的 codex 额度仍在冷却;本次修复解决的是“上游报错时代理导致 LS 崩溃”,不改变上游配额本身。
- 根因:
-
修复 Antigravity 自定义模型能显示、但 Agent 对话被上游拒绝的问题:
- 根因是 Antigravity 发送 Gemini / Google 风格工具声明,参数 schema 使用 protobuf 大写枚举(
type: "OBJECT"/"STRING");代理原样透传给 OpenAI 兼容上游,导致 CPA 返回HTTP 400: Invalid schema for function 'browser_subagent': 'STRING' is not valid under any of the given schemas.,界面表现为Agent execution terminated due to error。 - 新增工具 schema 递归归一化:将
STRING/NUMBER/INTEGER/BOOLEAN/ARRAY/OBJECT(含 protobuf 数字枚举 1–6)转换为小写 JSON Schema,并递归处理properties/items/anyOf|oneOf|allOf;仅在输出到 OpenAI / Anthropic 上游时生效,normalizeGeminiTools保持不变,Gemini 上游仍收到 Google 大写枚举,避免反向破坏。 - 补充 3 条回归测试:OpenAI / Anthropic 必须收到小写 schema、Gemini 上游必须保留大写枚举;
local-proxy与antigravity测试共 27 项全部通过。
- 根因是 Antigravity 发送 Gemini / Google 风格工具声明,参数 schema 使用 protobuf 大写枚举(
-
修复 Antigravity 自定义 API 模型可显示但无法对话的问题:
- 根因是纯 BYOK 模型目录丢失了 Language Server 构建 Cascade 所需的内部模型注册,导致请求发往上游前即报
unknown model key MODEL_PLACEHOLDER_M36/M50/M318: model not found;同时自定义模型的运行枚举、modelProvider与apiProvider协议族不一致,生成的 ModelInfo 无法稳定注册。 - 新增 M36、M50、M318 隐藏依赖模型,仅供 Language Server 内部使用,不加入模型下拉列表;这些内部生成请求统一路由到当前启用的 Antigravity BYOK 默认模型。
- 自定义模型按运行枚举同步生成匹配的 Anthropic/OpenAI/Gemini Provider 字段,并携带真实
vertexModelId,保证模型目录、执行器与上游路由一致。 - 使用真实 Antigravity Language Server 重启验证:模型解析错误清零;自定义主模型及 M36/M50/M318 内部模型均可经本地代理返回有效响应。
- 根因是纯 BYOK 模型目录丢失了 Language Server 构建 Cascade 所需的内部模型注册,导致请求发往上游前即报
-
修复 Antigravity 混合模式启动期网络卡死:使用
AbortController硬超时覆盖 DNS、代理 CONNECT、TLS 与响应全生命周期,避免官方服务不可达时阻塞 IDE 状态刷新。 -
完善 Antigravity 账号握手、模型目录、Token 计数、推理响应和遥测旁路处理,并补充协议三元组、隐藏依赖和内部路由回归测试。