
v8.0.43 的 Codex live sideband 认不出 call_id 就回 404 且不写日志,一张未合并的补丁改成转上游并按凭证逐张试;同一晚 dev 上落了四张修复,发行版一张都没带。
GET /v1/realtime/calls/:call_id,走 realtimeAuth 中间件。3/v1/realtime 的 POST 与 /v1/responses 自己选凭证,不查这张 live 会话表。
internal/client/codex/live/sideband.go 第 322–345 行:claim 只放行 acquired,busy 回 409,default 直接回 404「Codex live session not found」,这一支没有日志调用。1X-CLIProxy-Codex-Account-Id 指名的账号,上次成功加入的那张,其余按 ID 排序。unknownCall && !h.authManager.HomeEnabled(),开了 home.enabled 的部署,未知 call_id 仍是 404。current.AuthKind() != auth.AuthKindOAuth 的凭证被跳过,API key 号池不参与。liveProtocolHeaders 这份白名单里取,名单里没有这个新名字。5
mhoo-os/CLIProxyAPI@codex-live-upstream-v8.0.43 的 sideband.go 第 331–360 行:带 client secret 的仍回 404(第 340–342 行),其余未知呼叫置 unknownCall = true 并写出「relaying unknown call upstream」这行日志(第 344–348 行)。6
sideband.go 第 824–864 行:unknownCallAuthIDs 先列出 Codex OAuth 凭证,再按「提示头指名的账号 0 分、上次加入的 1 分、其余 2 分」排序(第 836–849 行),每张凭证通过 PinnedAuthMetadataKey 单独挑选(第 855–863 行)。7GET /v1/realtime/calls/:call_id 做粘性,让同一个 call 始终落到同一个实例。多副本部署做这一步最有效。| 单号 | 提交(北京时间) | 改法 | v8.0.43 里 | 现在怎么办 |
|---|---|---|---|---|
| #7005 | aa4130e(21:07) | 截断流单独标成 stream_truncated:对外仍回 502,但凭证不冷却,也不换另一张凭证重放 | 没有 | 继续挂着上期那条 request-scoped-errors 规则,或手动清掉已经进冷却的凭证 |
| #7003 | ede07cf(18:40) | 只有 finish 帧之后到过的 usage 才触发 interaction.completed,并补发 done 哨兵;裸 [DONE] 不再被当成 JSON 数组解析 | 没有 | 客户端自己设超时,或先用非流式 |
| #7008 | 37bd18b(20:52) | 顶层 input 里的裸文字块与裸媒体块改走用户内容转换器,图片与文件不再被丢 | 没有 | 继续用 step 写法 [{"type":"user_input","content":[…]}] |
| #7000 | 1d45a5f3(20:36) | Claude 5.5 的强制 tool_choice 在校验前降成 auto,Antigravity 侧回退到 schema prompt | 没有(两个新文件在 v8.0.43 里都是 404) | 别在 Claude 5.5 上写 tool_choice: tool/any,用 auto |
#7000、#7003 在 20:39 打上,#7008、#7005 在 21:09 打上。891011isStreamTruncatedError 认的是本地合成的截断失败,shouldSkipCredentialCooldown 因此放行,isRequestInvalidError 也把它算成请求自身的问题,不再换第二张凭证重放。12request-scoped-errors 里加一条 status: 502、消息含 upstream stream closed before finishReason、action: "stop" 的规则;OAuth 凭证写在 oauth.request-scoped-errors.<provider> 下,API key 凭证写在它所在组的同名键下。1314
sdk/cliproxy/auth/conductor_cooldown.go 第 1905–1935 行:isStreamTruncatedError 同时认接口与错误码两种标记,resultErrorFromError 把 stream_truncated 保留在 502 之外,shouldSkipCredentialCooldown 据此跳过冷却。12
internal/translator/antigravity/interactions/interactions_antigravity_response.go 第 74–104 行:usage 先缓存,只有在 finish 帧之后见到 usage 才走到 Completed 与 Done(第 98–100 行),早先缓存的那份只给显式 [DONE] 兜底。16HasPendingUsage、appendInteractionsContentBlockItem、streamTruncatedErrorCode。18github.com
github.com
github.com
github.com
status.openai.com
status.claude.com
status.cloud.google.com
codex-reset.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.