
这一小时四仓无新版本:Codex 的 HTTP 流式执行器把帧之间的空行弄丢,正常元数据事件会被当成一条报错发给客户端,v8.0.33 上就是这样;另一张额度补丁补上第三处缺口,五分钟探活会把周额度耗尽的号重新排到队首。
data 行,没有 event 行。response.metadata 就是这样发的。openai_chatgpt_moderation_metadata 那组统计,与请求成功与否无关。event: error(或者 event: response.completed)接上来,事件名和载荷就来自两个不同的帧了。error.type=response.metadata,整份 JSON 直接当错误正文。5event: error,正文是那段 metadata 对象。真正的上游错误,或者本该收尾的 completed,没有送到。
internal/runtime/executor/codex_executor_stream.go 第 291–302 行:第 294–297 行的注释把空行与 event:、id:、retry: 归为一类,第 298 行把它们原样克隆后送进翻译函数WriteChunk 的第一条判断是 len(chunk) == 0,命中就返回。
sdk/api/handlers/openai/openai_responses_handlers.go 第 79–95 行:第 80 行在 terminalEvent 之外还判了 len(chunk) == 0,零长度的分隔块到这里被丢弃,后面的 event: 只剩前一条 data 可挂\n\n,bootstrap 与普通流共用这个判断。开头的空行、连续的空行不会提前开始响应。response.metadata 过滤掉,本刊 10/17 晚间写过。event: 的帧在修复后可能多一次空写入与刷新。6QuotaState.RecheckUntil;选择器在还有别的凭证能服务时跳过它。
sdk/cliproxy/auth/selector.go 第 617–669 行:第 625 行的 withoutCodexQuotaRecheck 在候选多于一条时只保留不在复检期的凭证,第 641 行的 dropCodexQuotaRecheckBuckets 对按优先级分桶的选路做同一件事RecheckUntil、clampCodexQuotaDeadline、quotaRecheckInterval、withoutCodexQuotaRecheck,命中 0 次。resets_at,确认能先选到低优先级的健康凭证。-race 各跑 200 次。TestResponsesLateInterruptDoesNotPoisonNextCreate 失败 6 次,TestResponsesInterruptStopsHTTPUpstream 失败 149 次。把 PR 头合进去后,两个都是 0。8-race 放大了它。response.incomplete。pending 标签,代码没动。本刊 10/19 凌晨期写过它的分词成本,配套的 #6751 仍 open。c87a4bbac2)。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
reddit.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.