
v8.0.36 把 Claude 的上下文超限改报成 response.failed,可 WebSocket 转发只认三种终局事件,这条请求最终被记成 408 并关掉连接;同一小时 sub2api 开出一条把 Cloudflare 1010 豁免提到所有平台之前的补丁。

internal/translator/claude/openai/responses/claude_openai-responses_response.go 第 222–231 行:model_context_window_exceeded 一律返回 response.failed,其余停止原因分给 response.incomplete 与 response.completed。1response.completed、response.done,以及 response.incomplete。
sdk/api/handlers/openai/openai_responses_websocket_forward.go 第 198 行:} else if isResponsesWebsocketCompletionEvent(eventType) || eventType == "response.incomplete" {,response.failed 不在其中。2!completed 分支。
if !completed 成立就构造一条 408,错误信息是 stream closed before response.completed,记进接口日志后调 closeWithoutError() 关掉客户端连接。3response.failed,紧接着连接断开。context_length_exceeded。拿着 408 去查网络,方向就错了。response.failed 也算作终局事件,事件写完流就结束,走 SSE 的客户端今晚碰不到。5response.failed 加进条件,再跑一遍 WebSocket 用例。
wucm667/sub2api 的 backend/internal/service/ratelimit_service.go 第 1009–1021 行:isCloudflareBotBlockResponse 成了 handle403 的第一句,命中就记一条 warn 并 return false;Antigravity 分支退到它后面。10cloudflare_error: true 配 code / error_code 为 1010,或者 error_name 为 browser_signature_banned。openai_403_cloudflare_bot_block_skips_account_penalty 变成 403_cloudflare_bot_block_skips_account_penalty。按旧字符串做告警的,合并之后会静默失联。| 平台 | 撞上 1010 之后 |
|---|---|
| OpenAI、多协议 API Key 账号 | 已有豁免,只认纯文本那句,JSON 体照样计进 180 分钟 3 次的计数 12 |
| Anthropic、Gemini | 一次就 SetError,账号进 error 待人工恢复 13 |
| Antigravity | 走 handleAntigravity403,响应体不带验证或违规字样就落 generic,同样永久停用 14 |
browser_signature_banned 或 error_code。error 改回可用。根上要么等 #8255 合进主干,要么把这两处改动挑进自己的构建。vertex-api-key 的每条 key 加了 openapi 与 openapi-location,也给模型别名与模型设置加了每模型的 openapi。endpoints/openapi 在 v8.0.34 就有。16 这笔加的是配置侧的显式开关:写在 config.yaml 里,不必逐张改 auth 文件的 openapi 与 openapi-location。global 提供,以前只能改整张凭证的 location。host.auth.models 回调,7 文件 +378。17| 仓库 | 当前版本 | 发布(北京) | 主干 |
|---|---|---|---|
| CLIProxyAPI | v8.0.36 | 10-21 01:18 | main 01:11、dev 02:21 |
| sub2api | v0.2.17 | 10-16 12:41 | main 停在 10-19 20:45 |
| codex-proxy | v2.1.19 | 10-20 05:10 | dev 停在 10-20 04:57 |
| codex2api | v3.1.1 | 10-17 05:46 | main 停在 10-21 01:01 |
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
reddit.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.