Skip to content

AnyBridge v0.5.8

Choose a tag to compare

@github-actions github-actions released this 11 Sep 05:30
· 6 commits to main since this release
  • 优化 Antigravity 稳定性与对话体验:

    • 内部依赖模型(checkpoint / fast model)现在跟随用户当前正在使用的 BYOK 模型,而不是平台默认 provider;默认 provider(如冷却中的 CPA)不再拖累内部请求。
    • 内部依赖模型失败时静默返回空响应,错误只写入诊断日志,不再把 [AnyBridge] 上游请求失败 提示条插入对话。
    • v1internal:streamGenerateContent 改为真流式透传:直接 pipe 上游 SSE 并逐块转换为 Gemini 帧(中间帧 OTHER,工具调用 TOOL_CALL,末尾补空 STOP),避免缓冲导致长回复时 Language Server 等待超时;上游不支持时自动回退到缓冲模式。
    • 新增回归测试(流式转换、内部模型跟随),local-proxyantigravity 共 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: {} } 格式修正。
    • 修复:两个生成端点统一包信封;流式先发内容帧(finishReasonOTHER / TOOL_CALL),随后补一个空 partsSTOP 终止帧;工具调用时标记 TOOL_CALL
  • 修复 Antigravity Agent 卡在 "Working." 不回复的致命问题:

    • 根因:/v1internal:streamGenerateContent 在上游失败(如商汤 HTTP 429: inference exceeds tpm/rpm limitHTTP 400: inference request is invalid)时,代理返回的是 HTTP 错误 + application/json;Antigravity Language Server 2.5.5 的流式解析器把该响应当流处理,触发空指针崩溃(panic: runtime error: invalid memory address or nil pointer dereferencegeneration.go:680 / stream_helpers.go:181),进程 exit code 2,界面永久停留在 "Working."。
    • 修复:Antigravity streamGenerateContent 分支捕获上游异常后统一降级为协议合法的 SSE 快照(HTTP 200 + text/event-stream),把错误信息作为模型文本回复返回,Agent 不再崩溃或卡死,用户能直接看到上游失败原因。
    • 新增回归测试,local-proxyantigravity 共 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-proxyantigravity 测试共 27 项全部通过。
  • 修复 Antigravity 自定义 API 模型可显示但无法对话的问题:

    • 根因是纯 BYOK 模型目录丢失了 Language Server 构建 Cascade 所需的内部模型注册,导致请求发往上游前即报 unknown model key MODEL_PLACEHOLDER_M36/M50/M318: model not found;同时自定义模型的运行枚举、modelProviderapiProvider 协议族不一致,生成的 ModelInfo 无法稳定注册。
    • 新增 M36、M50、M318 隐藏依赖模型,仅供 Language Server 内部使用,不加入模型下拉列表;这些内部生成请求统一路由到当前启用的 Antigravity BYOK 默认模型。
    • 自定义模型按运行枚举同步生成匹配的 Anthropic/OpenAI/Gemini Provider 字段,并携带真实 vertexModelId,保证模型目录、执行器与上游路由一致。
    • 使用真实 Antigravity Language Server 重启验证:模型解析错误清零;自定义主模型及 M36/M50/M318 内部模型均可经本地代理返回有效响应。
  • 修复 Antigravity 混合模式启动期网络卡死:使用 AbortController 硬超时覆盖 DNS、代理 CONNECT、TLS 与响应全生命周期,避免官方服务不可达时阻塞 IDE 状态刷新。

  • 完善 Antigravity 账号握手、模型目录、Token 计数、推理响应和遥测旁路处理,并补充协议三元组、隐藏依赖和内部路由回归测试。