
10 月 16 日傍晚这五十来分钟里,CLIProxyAPI 上同一族 Responses 中断缺陷出现了两份都还没合并的修复,一份让本地中断窗口随终端事件关闭、一份把 HTTP 回退的中断按 response ID 绑定;sub2api 上一张 OpenCode 大输入首字延迟的单被报障人自己关掉,四个仓库本窗口都没有新版本。
dev,3 个文件 +194/−2、3 笔提交5。TestResponsesLateInterruptDoesNotPoisonNextCreate 在 dev 的 355fd10e 上跑了一千次,16 次失败,每次都停在同一处断言:本该收到错误,实际收到的是一句 {"type":"response.incomplete","response":{"id":"unknown",…}}5。sdk/api/handlers/openai/openai_responses_websocket_forward.go 里,本地中断窗口在进入转发循环之前用 begin() 打开,关上它的是函数返回时才执行的 defer end()6。
openai_responses_websocket_forward.go 第 70–90 行:第 75 行 begin() 打开本地中断窗口,第 76 行的 defer end() 要等函数返回才执行;第 82 行是转发循环收取本地投递进来中断帧的那条分支6response.completed 那一刻关掉,它可能还开一会儿。客户端在这段空隙里发来的 response.interrupt,就落进了一扇还开着的窗口。ErrNoActiveUpstreamWebsocket(上游那一轮已经结束)时,就地投递给本地窗口7。completeResponsesWebsocketLocalInterrupt,由它写出一句 response.incomplete。这句话里的 response.id 直接取中断帧携带的 response_id8。response.completed,还会再收到一句 response.incomplete,而它的 response.id 跟刚结束的那一轮对不上。response.create。response.completed、response.done、response.incomplete 时先 end(),再把事件写给客户端;同一个流上新的 response.created 到来时重新 begin()。response.failed 也是终端事件,同样 end()。dev 上这条测试 16/1000 失败,改后 0/1000;同一条流程里另一条 flaky 测试从 49/1000 降到 0/10005。response.id 不对的 response.incomplete9。late_idle、stale_active、unknown_active 在修复前全部失败、修复后通过,另有一次真实模型冒烟,链路从 WebSocket 客户端到 HTTP 再到 gpt-6.1-sol,用的服务没有被替换或重启9。dev,另一份都要重基;#6515 自己也说与 #6500 有重叠9。所以这段修复还要在未合并状态里停一阵。https://opencode.ai/zen/go/v1 就没有这个延迟10。MissingSessionID。sub2api 会把出站的 x-opencode-session 收敛成它找到的第一个稳定标识:客户端头、客户端 body 里的 prompt_cache_key 或 metadata.user_id、已有的同名头,都没有才生成一个新 UUID。客户端不报任何稳定标识时,每一轮都是新会话11。opencode/1.0.0。源码注释写明 opencode.ai 前置的 Cloudflare 按客户端 UA 做 bot 拦截,Python-urllib 这类编程库 UA 会被拒绝并回 403,而这个 403 又被计入账号的凭证类 strike,健康账号会因此被自动禁用12。账号自己的 header_overrides 里显式写的 user-agent 优先级更高,会盖掉这次收敛13。manager.Update 改掉 authB 前缀之后,探测结果被正确地丢掉了。这条测试在 v8.0.31 上跑 400 次失败 9 次,改完 0 次;产品代码没有动。gpt-5.5;上一期登记的那张改这个默认值的 PR #8150 已经关闭、没有合并17。dev、有没有版本带上这段;#6515 与 #6676 谁先合、另一份怎么重基;#8024 有没有人重新开单给出成因。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
codex-reset.com
opentherank.com
status.openai.com
status.anthropic.com
status.cloud.google.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.