
10 月 17 日北京 15:20 到 16:22 这六十来分钟里四个中转仓库没发新版本:v8.0.32 有两处平方级开销,一个能发 tools 的已认证请求就能占满一个核;五个推理入口都不校验请求体,坏 JSON 会被改写后转给上游。
cleanJSONSchema 对一份 schema 跑大约二十个阶段。1convertConstToEnum、convertEnumValuesToStrings、moveConstraintsToDescription、removeUnsupportedKeywords、removeKeywords、cleanupRequiredFields、sanitizeArrayItems 与 sanitizeObjectProperties。1
internal/util/gemini_schema.go 第 184–233 行:sanitizeObjectProperties(第 187 行)与 sanitizeArrayItems(第 212 行)都先 findPaths 收集全部路径,再在循环里逐条 gjson.Get 读出、sjson.SetBytes 或 sjson.Delete 写回——第 202–203、223–226 行就是那次整份复制。| 平铺 schema | 耗时 | 混合 schema | 耗时 |
|---|---|---|---|
| 0.17 MB | 0.21 s | 0.15 MB | 2.5 s |
| 0.34 MB | 0.84 s | 0.29 MB | 10.3 s |
| 0.69 MB | 3.2 s | 0.59 MB | 44.4 s |
| 1.38 MB | 12.7 s | 1.18 MB | 170.5 s |
sanitizeAntigravityToolSchemasForModel 先把 request.tools 单独摘成一份小文档,再交给 sanitizeAntigravityToolSchemaDocumentForModel。11parametersJsonSchema 调一次 util.RenameKey,内含一次 sjson.SetRawBytes 加一次 sjson.DeleteBytes,各复制一份。11
internal/runtime/executor/antigravity_executor_request.go 第 211–261 行:第 217–228 行是逐声明的改名循环(第 222 行 util.RenameKey),第 244–259 行是逐声明的清洗与写回(第 245 行 gjson.Get、第 253 行 sjson.SetRawBytes);两个循环都作用在同一份 payloadStr 上,所以每个声明都要复制整份工具文档。functionDeclarations 数组):| 声明数 | 请求体 | 耗时 | 分配 |
|---|---|---|---|
| 250 个普通工具 | 0.81 MB | 3.1 s | 2.0 GB |
| 500 个普通工具 | 1.61 MB | 10.2 s | 7.7 GB |
| 1000 个普通工具 | 3.23 MB | 41.8 s | 30.5 GB |
| 4000 个极小工具 | 0.38 MB | 30.0 s | 13.7 GB |
| 8000 个极小工具 | 0.76 MB | 2 分 5 s | 54.4 GB |
$ref 走查在共享定义上指数级增长。12tools。任何已认证的客户端都满足。2server.max-request-body-bytes,默认 0 表示不限,超过上限的请求直接回 413。13Content-Length 与分块传输的流。14| 入口与客户端 body | 上游实际收到 | 客户端看到 |
|---|---|---|
/v1/messages,缺最后一个 } | 仍不合法,"stream":false 被写进最后一条 message | 上游 400 |
/v1/messages,合法 body 后跟 trailing | 合法,尾随字节被静默丢掉 | 正常 |
generateContent,缺最后一个 } | 仍不合法,safetySettings 与 model 被写进 contents | 上游 400 |
/v1/chat/completions,缺最后一个 } | 一份完整合法的 Claude 请求,被真的执行 | 上游 400 |
/v1/responses,缺最后一个 } | 同上 | 上游 400 |
ReadRequestBody,identity 路径在第 36–37 行直接把原文返回。15json.Valid 只出现在解压失败那条兜底分支里。15
sdk/api/handlers/request_body.go 第 21–56 行:第 36–37 行在 Content-Encoding 为空或 identity 时直接 return raw, nil,没有任何 JSON 校验;第 46 行的 json.Valid 只在解码出错、且原始字节本身合法时才放行——也就是说,最常走的那条路根本不检查。server.max-request-body-bytes 对这条也有效:超大坏 body 连解析都进不来。13gao5253678 在那张单下写:「我也是这个问题,回退到 0.2.16 就好了」。4ding-1988 开出,最初只有一句「升级到 v0.2.17 后充值无法回调」与一张截图。4JustYannicc 开了 PR #6715,base 是 dev。5GET /v8/management/oauth/auth-url?provider=codex&flow=device 会先返回验证地址与用户码,再轮询结果。5flow=device 仍走浏览器回调,v0 路由不变。5Add 配置文件与 auth 目录,配置事件只触发一次重载,不重挂。24github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
opentherank.com
community.openai.com
x.com
reddit.com
reddit.com
reddit.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.