Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
10/16 夜间速报:sub2api 的签名重试把三张图当文字重发,请求被撑到 157 万 token;codex2api 主干给 Argon 分了档
2026-10-16

10/16 夜间速报:sub2api 的签名重试把三张图当文字重发,请求被撑到 157 万 token;codex2api 主干给 Argon 分了档

10 月 16 日夜间这五十几分钟里四个仓库都没发新版本:codex2api 的主干给 Gemini 4 Argon 分了三档、并把禁用占位留在管理目录里不上线,sub2api 上一张还没合并的 PR 说明签名重试会把工具结果里的图片当文字重发、15,508 token 的请求能撑到 157 万,上游那条连续报了两天的 Compliance API 降级事件也在同一窗口转正。

中
中转站风控与更新速报@Karuha
10 月 16 日北京 18:30 到 19:35 这五十几分钟里,四个仓库都没有发出新版本,当前版本仍是 sub2api v0.2.17、CLIProxyAPI v8.0.31、codex-proxy v2.1.17、codex2api v3.1.01234。
codex2api 的主干落下一笔 24 个文件的改动,sub2api 与 CLIProxyAPI 各有一张新单,上游那条连续报了两天的降级事件在同一窗口里收尾。
要当场决定的是三件事:签名重试之后的请求为什么反而被上游判超长、面板里那些从来不上线的模型名要不要留在白名单、以及一条把版本号指错了的报障要不要照它改配置。

一、codex2api:主干落地 Argon 分档,禁用占位留在目录里但不发车

codex2api 的主干在北京 18:45 收下一笔提交 8cd964bb,24 个文件 +1177/−885。主干最新提交停在那一刻,发行版仍是 v3.1.04。
Argon 被拆成三档。gemini-4-argon-low、gemini-4-argon-medium、gemini-4-argon-high 三个 ID 都指向同一个上游 backing gemini-4-argon-high,低档与中档只是网关侧的选择6。
裸名 gemini-4-argon 保留成一个逻辑名,默认档位是 high;在 /v1/messages 上,它会在限流判定与账号选择之前被折进固定档5。Codex 的模型清单里,Argon 收成一个条目,按 key 给推理等级,上下文窗口写成 1,048,576 token5。
带 -disabled 的名字,本刊在 10 月 16 日午后那期报过 sub2api 那一侧的形态:上游同步把它一起写进账号白名单,调它一定回 404。这一笔落地的是 codex2api 自己那一侧的规则。
规则有三条。管理目录里保留这些名字,用禁用样式显示,也允许对单个账号做显式连接测试;它们不会出现在对外发布的模型列表里,不会被调度,批量测试也不会自动选中它们;只有这类名字的批量测试不再把账号判成错误5。
判据直接从上游 ID 现算:把名字按 - 与 _ 切开,任何一段等于 disabled 就算禁用,因此目录刷新之后状态不会停在旧值上6。
同一份投影有两个出口,AntigravityPublishedModelIDs 不带禁用名,AntigravityAdminModelIDs 带上6。
面板的配额口径也改了。目录里存在、但上游没给配额元数据的模型,现在显示为未知配额,不再自己补一个剩余百分比7。
对读者的处置只有一句:从 main 自己构建的部署,管理目录里会多出一串带 -disabled 的名字,那是留着给人看的,别把它加进分组白名单或客户端默认模型;这些名字照旧调不通。
一段 Go 源码,第 240 行起往下的区域被浅黄色高亮
codex2api 提交 8cd964bb 的 proxy/antigravity_models.go 第 240–313 行:第 242 行是只给管理目录用的 AntigravityAdminModelIDs,第 248 行起是 AntigravityDisabledModel,第 291 行跳过裸名 gemini-4-argon6

二、sub2api:签名重试把工具结果里的图片当文字重发

sub2api PR #8160 在北京 18:36 开出,2 个文件 +90/−4,基分支 main,head 分支是 liulixin-lex:fix/signature-retry-preserve-tool-result-media8。
它修的是签名错误的第二阶段重试。这个阶段会把工具块与思考块降级成纯文本再发一次,而降级 tool_result 的那一段,把整个 content 字段序列化后拼进一个 text 块9。
content 里嵌套的 image 与 document 块因此连同 base64 一起变成纯文本,上游按文字计 token8。
本刊在 v0.2.17 整包里核到了同一处:第 1346 行进入 case "tool_result":,第 1351 行就是那句 contentJSON, _ := json.Marshal(content),第 1359–1360 行把结果拼进 text9。
这条路径在 v0.2.17 里有两个调用点,gateway_forward.go 第 503 行与 gemini_messages_compat_service.go 第 789 行1011。
报障人给的复现是一次调用 3 个工具,每个 tool_result 的 content 是 [text, image(base64 JPEG)],三张图约 440 KB、526 KB 与 731 KB8。
/v1/messages/count_tokens 报 15,508 token;触发第二阶段重试之后,/v1/messages 回 400 prompt is too long: 1576277 tokens > 1000000 maximum8。
把图片从 tool_result 里挪到同一条 user 消息的普通 image 块之后,同一个请求回到 15,464 token,正常通过8。
count_tokens 算的是原始请求,膨胀发生在重试那一刻,所以从计数接口上看不出来8。级联链路上只要有一层触发第二阶段重试,就会撞上这个问题。
PR 的改法是把 tool_result.content 里的 image 与 document 块拆出来,按原顺序放在这条 tool_result 转换出的 text 块之后,仍在同一条 user 消息内;只有媒体块的时候,text 块只留 (tool_result) tool_use_id=… 前缀8。字符串 content 与纯 text 数组的 tool_result,输出与改动之前一致8。
这条还没合并。今天遇到「count_tokens 没过百万、第二阶段重试却回 400 prompt is too long」这个组合,先怀疑这里;客户端能控制请求体的时候,把图片放进 user 消息的普通 image 块是现在就有效的规避。
一段 Go 源码,第 1344 行到 1362 行被浅黄色高亮
sub2api v0.2.17 的 backend/internal/service/gateway_request.go 第 1344–1362 行:第 1346 行进入 tool_result 分支,第 1351 行把整个 content 序列化,第 1359–1360 行拼进 text 块9

三、CLIProxyAPI:#6685 说指纹钉在 2.1.63,源码里是 2.1.280

CLIProxyAPI issue #6685 在北京 18:54 开出,open、0 评论,作者 MintOcha12。
标题写的是把 Claude Code 指纹基线从 2.1.63 升到最新的 2.1.296,理由是 Anthropic 因为版本太旧拒收 claude-opus-5-512。
正文点出的那行是 defaultClaudeFingerprintUserAgent = "claude-cli/2.1.63 (external, cli)",并说它会被当成 x-anthropic-billing-header: cc_version=2.1.63.abc 发到上游12。
本刊在 v8.0.31 里核到的是另一个值。internal/runtime/executor/helps/claude_device_profile.go 第 23 行写的是 claude-cli/2.1.280 (external, cli)13,dev 分支的同一行也是 2.1.28014。
cloak 路径写进计费头的是 2.1.280:claude_executor_cloaking.go 第 315 行把 cc_version 固定成这个值15。
2.1.63 这个字符串在 v8.0.31 整包里只出现在三个翻译层的测试夹具里,内容是 x-anthropic-billing-header: cc_version=2.1.63.abc; cc_entrypoint=cli; cch=12345;16。拿 grep 的结果去看,很容易把这行当成运行时的基线。
报障人引用的「最新版本 v2.1.296」来自一个第三方发布镜像与 npm 包页,本刊没有独立核对12。
处置建议是先别按这条去改那个常量。指纹支持配置覆盖,config.example.yaml 第 455 行给出的示例就是 claude-cli/2.1.280 (external, cli)17。真遇到「Claude Code 版本太旧、不支持 Opus 5.5」这句话,值得先看代理侧有没有人把 user-agent 覆盖成旧版本,再看客户端自己报上来的版本。

四、同一窗口里的三条短条目

CLIProxyAPI PR #6684 在北京 18:37 开出,3 个 README 各加一节,收录第三方 Hermes 插件18。插件住在 Hermes Agent 一侧,按 CLIProxyAPI 的 provider 各注册一个提供方,用对应执行器接受的协议发请求;CLIProxyAPI 这一侧的转发行为不受影响18。
sub2api 有两条旧单在本窗口被更新。issue #3907(7 月 10 日开出)报限流与实际额度不符19,issue #6348(8 月 28 日开出)报 GLM Coding Plan 的 429 被按 5 小时处理、找不到能改的地方20。
两条都在北京 18:32 各新增一条内容相同的评论:这是同一个 bug,同一类型的账号里只要有一个回 429,全部都会被显示成 4291920。它们指向的报障是 #815921。
PR #7036 也在本窗口被更新,open、0 评论、正文为空,标题是让 Codex 出站身份画像对齐22。

五、上游与额度侧:OpenAI 那条降级事件转正

OpenAI 状态页在这一窗口里转正。Compliance API 成本数据延迟这条事件在北京 18:44 标记 resolved,最后一条更新是「All impacted services have now fully recovered.」23
这条事件从 10 月 15 日北京 01:00 挂到 10 月 16 日北京 18:44,约 41 小时 44 分钟23。
本刊最近几期一直在记它,读数是 Partial System Degradation、降级组件只有 Compliance API。现在状态页读数是 All Systems Operational,活动事件 0 条,25 个组件里没有一个是降级状态24。
Anthropic 状态页是 All Systems Operational,10 月 16 日一栏写着 No incidents reported today25。Google Cloud 的事件列表仍是 7 条,最近一条是 10 月 8 日到 9 日的 Cloud Storage26。
Codex 重置追踪站今天(UTC)没有重置。最近一次已验证的全局重置在 29 小时前,即 10 月 15 日 06:13 UTC,北京 10 月 15 日 14:13;累计 54 次全局重置、10 次 banked,节奏约每 4 天27。
同一页上两套概率并存:模型口径是 18% 与 33%,把最新提示帖计进去的 counted 口径是 24 小时 50%、48 小时 75%27。那条提示帖是 @thsottiaux 在北京 12:30 的回帖,原文是「Can't argue with that, Let's break the cycle.」,落在本窗口之前28;页内的公告区写着当前没有官方公布的窗口27。
另一个追踪站记最近一次重置为 10 月 15 日 04:55 UTC,自 2025 年 9 月以来 62 次,中位间隔 3.1 天,最长一次 68 天29。
官方开发者社区 Codex 分区本轮最新一条停在北京 16:02,落在窗口起点之前30。
Reddit 三个板块里,窗口内与额度沾边的只有 r/GeminiAI 两条:北京 18:31 有人问用量限制是不是突然变得极低31,18:37 有人说图片用量涨到四倍32。两条讲的都是 Gemini 应用个人订阅侧的体感,按本刊的收录口径不收为条目;r/OpenAI 与 r/ClaudeAI 窗口内没有额度或风控条目。

六、未闭合项(下期继续跟,不作结论)

  • codex2api:本窗口 main 落 8cd964bb;继续跟下一版会不会带上这笔,以及 #793 有没有维护者定性33
  • sub2api:本窗口登记 #8160,#3907 与 #6348 的新评论都指向 #8159,#7036 被更新;继续跟 #8160 会不会合并,以及 #8157、#8158、#8159、#8155、#8151、#8139、#8135、#8136、#8142、#8143、#8146、#8147、#8127、#8125、#8123、#7962、#7398
  • CLIProxyAPI:本窗口登记 #6685、#6684;继续跟 #6669 与 #6670 的关系,以及 #6676、#6677、#6515、#6675、#6605、#5764、#6661、#6667、#6659、#6671、#6673、#6625、#6603、#6500
  • codex-proxy:本窗口 0 条;继续跟 v2.1.18 正式版会不会打上 latest
下期优先回看三条:#8160 会不会合并、合并之后签名重试还会不会把请求体撑大;#6685 有没有维护者回应,还是被当作版本号写错关掉;codex2api 下一版会不会把禁用占位与未知配额一起带上。

References

  1. 1
    sub2api Releases

    github.com

  2. 2
    CLIProxyAPI Releases

    github.com

  3. 3
    codex-proxy Releases

    github.com

  4. 4
    codex2api Releases

    github.com

  5. 5
    codex2api 提交 8cd964bb

    github.com

  6. 6
    antigravity_models.go 第 240–313 行

    github.com

  7. 7
    antigravityQuota.ts 第 51–79 行

    github.com

  8. 8
    sub2api #8160

    github.com

  9. 9
    gateway_request.go 第 1344–1362 行

    github.com

  10. 10
    gateway_forward.go 第 503 行

    github.com

  11. 11
    gemini_messages_compat_service.go 第 789 行

    github.com

  12. 12
    CLIProxyAPI #6685

    github.com

  13. 13
    claude_device_profile.go 第 20–26 行

    github.com

  14. 14
    claude_device_profile.go 第 23 行(dev)

    github.com

  15. 15
    claude_executor_cloaking.go 第 310–317 行

    github.com

  16. 16
    openai_claude_request_test.go 第 1074 行

    github.com

  17. 17
    config.example.yaml 第 455 行

    github.com

  18. 18
    CLIProxyAPI #6684

    github.com

  19. 19
    sub2api #3907

    github.com

  20. 20
    sub2api #6348

    github.com

  21. 21
    sub2api #8159

    github.com

  22. 22
    sub2api #7036

    github.com

  23. 23
    OpenAI Status 事件 01M4XNQX7C6RCBNGX9H711WFSG

    status.openai.com

  24. 24
    OpenAI Status

    status.openai.com

  25. 25
    Claude Status

    status.anthropic.com

  26. 26
    Google Cloud Status

    status.cloud.google.com

  27. 27
    codex-reset.com

    codex-reset.com

  28. 28
    thsottiaux 帖 2110951585983631505

    x.com

  29. 29
    opentherank

    opentherank.com

  30. 30
    Codex - OpenAI Developer Community

    community.openai.com

  31. 31
    r/GeminiAI 1x7coei

    reddit.com

  32. 32
    r/GeminiAI 1x7cs74

    reddit.com

  33. 33
    codex2api #793

    github.com

中
中转站风控与更新速报@Karuha

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • 一、codex2api:主干落地 Argon 分档,禁用占位留在目录里但不发车
  • 二、sub2api:签名重试把工具结果里的图片当文字重发
  • 三、CLIProxyAPI:6685 说指纹钉在 2.1.63,源码里是 2.1.280
  • 四、同一窗口里的三条短条目
  • 五、上游与额度侧:OpenAI 那条降级事件转正
  • 六、未闭合项(下期继续跟,不作结论)