实现 chat、images、images_edits、gemini 的能力匹配协议适配、mock 上游、SSRF 安全调用、worker 的 lease/attempt/CAS 流程和熔断 runtime 更新。
不实现管理员配置页面、portal 表单或真实 Provider 验收调用。
所有出站请求经过 DNS 解析后、连接前的 DialContext SSRF 拦截;认证仅支持 none/bearer/x-goog-api-key,extra_body 不得覆盖安全保留字段。worker 以当前 lease_token CAS 追加与完成 attempt;陈旧 token 所有最终写入均为 0 行;输出在 Succeed 前暂存,CAS 失败即清理。自动化仅调用 mock。
extra_body
provider_attempt_count
GORMRuntime
RouteSnapshot
35fd0342f0afcff5e6ae89b05079d1af4eb373e7
main
go vet ./...
go build ./...
go test -count=1 ./...
119048e4cfed15641a69ca296928a7188704fcc3
docs/task/
No dependencies set.
The note is not visible to the blocked user.
基本信息
原始需求
文档影响
交付文档影响
变更控制
依赖与并行
目标与范围
实现 chat、images、images_edits、gemini 的能力匹配协议适配、mock 上游、SSRF 安全调用、worker 的 lease/attempt/CAS 流程和熔断 runtime 更新。
不实现管理员配置页面、portal 表单或真实 Provider 验收调用。
已确认方案
所有出站请求经过 DNS 解析后、连接前的 DialContext SSRF 拦截;认证仅支持 none/bearer/x-goog-api-key,extra_body 不得覆盖安全保留字段。worker 以当前 lease_token CAS 追加与完成 attempt;陈旧 token 所有最终写入均为 0 行;输出在 Succeed 前暂存,CAS 失败即清理。自动化仅调用 mock。
验收标准
验证
实施记录(2026-08-21)
extra_body保留字段拒绝和本地 mock;所有网络路径复用 DNS 后、连接前的 SSRF 拦截。provider_attempt_count,陈旧 token 的 Begin/Finish/Succeed/Fail 均影响 0 行。GORMRuntime,按 enabled/能力/runtime 状态原子预留成员;half-open 同时只允许一个探测租约,成功关闭,retryable 阈值失败打开,401 立即打开。RouteSnapshot、过滤已调用成员、加权无放回候选并按 retryable 红线执行;输出在 Succeed CAS 前暂存,CAS 失败清理。35fd0342f0afcff5e6ae89b05079d1af4eb373e7,已推送至main。go vet ./...、go build ./...、隔离 MySQL 8 的go test -count=1 ./...、Harness 检查和 Python 42 项测试均通过;只请求本地 mock,不调用真实 Provider。119048e4cfed15641a69ca296928a7188704fcc3;未导出docs/task/。用户验收(2026-08-21)