
这一小时四仓没有新版本,但三条新报障都指向同一件事:本地改写动了不该动的东西。插件路上带 Codex UA 的请求会被整数归一化改坏工具参数而全 400,Claude 条目仍在劝客户端按原图精度发图,而 Fast 的额度类 429 会被当成整号限流。
/v1/responses 请求一律 400,插件只把上游那句 Copilot upstream returned HTTP 400 抛出来,看不到更细的原因。User-Agent 换成 curl/8.0 就 200;只要 UA 里带 codex 字样就 400。再把 collaboration.wait_agent.timeout_ms 从浮点改成整数,单独改这一处仍然 400;而把请求砍到只剩 exec_command.max_output_tokens,反而 200。payload_helpers.go 的 ApplyPayloadConfigWithTrackedPathsForExecutor 在应用规则之前先看两件事:来的是不是 Codex 客户端,目标执行器是不是 codex——只有「是 Codex 客户端、但目标不是 codex 执行器」才跑 NormalizeCodexToolIntegerTypes6。
prepareExecutorCall 里调了一次 helps.NewPayloadFinalizer(...),紧接着把结果盖回 nativeReq.Payload7。
internal/pluginhost/adapters_executors.go 里出现 NewPayloadFinalizer 是 v8.0.42 起,v8.0.38 到 v8.0.41 都是 0 处。引入它的提交是 e42eee6e1c,主题是「把用户的 payload 规则应用到插件执行器请求上」,提交正文写明只在翻译之后挂一次最终器8。User-Agent。换成不含 codex 的 UA 就 200,基本可以判定命中。/v1/models 给 Claude 条目留了「按原图精度发」的旗,多图对话一撞 3000px 就回不来/v1/models 里每个条目的能力字段来决定怎么发图。v8.0.51 给非纯 Codex provider 的条目清理了一批不该广告的键,但清理名单只有六个:apply_patch_tool_type、tool_mode、use_responses_lite、supports_reasoning_effort_updates、upgrade、availability_nux,supports_image_detail_original 不在里面11。
At least one of the image dimensions exceed max allowed size for many-image requests: 3000 pixels。图还留在历史里,所以之后每一轮都失败,这个会话等于废掉。claude-opus-4-6 这类条目带 "supportedInputModalities": ["text","image"]12。图片能力是真的,只是「按原图精度发」这半句对 Anthropic 不成立。entry["supports_image_detail_original"] = false,因为它跑在两个 setter 之后,模板与非模板两条路都能覆盖;另一条路是加一个默认关闭的开关(upstream.claude.image-detail-original),好处是能逐 provider 关。thinking.display: "updates"),中转把每个 thinking 块统一映射成 Responses 的 reasoning 项,而 Codex 把 reasoning 折叠成一行。结果是一段几十次工具调用的长任务在界面上看起来像沉默。报障人给的数字对比是同长度会话:Claude 侧 38 个 reasoning 项、54 次工具调用、1 条助手消息;GPT 侧 43 条 commentary、231 次工具调用。upstream.claude.codex-progress-commentary,把 narration 块输出成 phase: "commentary" 的助手消息,回放时还原成原来的 narration 块。v8.0.51 的签名校验已经认 narration 这种块类型14,所以这条路在协议层是通的。show-codex-commentary 才看得见;这条是反方向,Claude 的旁白在 Codex 里被折进去。两条都还没落地,方向相反,别把开关记混。speed;额度类 429 还会被当成整号限额fast-mode-2026-02-01 之后,过滤只作用在 beta 头上。请求 body 里带 speed: "fast" 的,照样按 Fast 发出去、按 Fast 计费;只靠 body 声明的请求,也完全绕过了那条 block 规则。stripBetaTokens 处理的是「逗号分隔的 header 值」,对 body 一个字都不碰16。策略里那个 token 常量在 settings_view.go 的 BetaToken: "fast-mode-2026-02-01"17。
{"type":"rate_limit_error","message":"Usage credits are required for fast mode."} 这种 429 是「这一档速度没权限」,不是「这个号整体超额」。但 v0.2.19 的 429 处理走 handle429,Anthropic 分支按 anthropic-ratelimit-unified-5h-reset / -7d-reset 算出重置时刻就把账号标成限流;当两个窗口都没被标成超额时,它的兜底取的是两个重置时刻里更早的那个18。于是「这一档没权限」会锁住整号,持续时间还是从别的窗口借来的。池模式下,同一个没改过的请求会被反复投到下一个号上。cache/durable_response_context.go),新增 reset_5h_first 调度模式与 next_reset_5h_at 字段,并把 gpt-6.1-terra 的定价补进表里19。对运维的意义是:换号之后不再从零重建对话,代价是本地多了一份上下文存储要管。STABILIZE_DEVICE_PROFILE 从「默认关」翻成「默认开」——现在只有显式写 false 才关得掉2021。设备指纹稳定化的意思是按「账号 + key」算出一个固定画像,不再每次轮换;对风控是双刃:稳定之后同号画像一致,但一旦被关联也不会自己漂移。同一笔还把刷新 token 的客户端换成 uTLS,.env.example 里的示例值改成了 utls_chrome,而注释仍写着默认 standard——样例和注释现在自相矛盾,升级前别照抄那行注释。
tool_search、additional_tools 都转成扁平函数并保留别名映射,回程能对回去;它复用 Grok 那套编解码但跳过 Grok 的 schema 归一22。Antigravity 上跑带工具的 Responses 请求会受影响,升级后建议先拿一条带自定义工具的请求验一遍。| 仓库 | 当前版本 | 本窗口内 |
|---|---|---|
| CLIProxyAPI | v8.0.51 | 无新版本;main 最后一次提交在北京 11-03 00:03,早于窗口 |
| sub2api | v0.2.19 | 无新版本、main 无新提交 |
| codex2api | v3.1.2 | 无新版本;main 前进三笔(见上节) |
| codex-proxy | 稳定 v2.1.21 / 预发布 v2.1.22-beta | 窗口内无动作 |
signal.active 为 false26。首页口径是「今天 UTC 还没有重置,最近一次已验证的全局重置在 5 天前(10-28 18:35 北京)」,累计 61 次、存量 10 次26;另一家统计到 71 次、中位间隔 2.9 天27。两家口径不同,按各自标签引用。nullCodexClientRequiredOptions 里补了图片精度那行;补了才谈得上根治。STABILIZE_DEVICE_PROFILE 的默认值有没有再动——这一笔是默认值变化,不是新功能。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
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.