
CLIProxyAPI v8.0.36 在凌晨发出,一次落掉本刊报过的九张单,图片超限被维护者判定不做;同一时段 sub2api 报出 Cloudflare 1010 被记成账号故障,Anthropic 账号一次即停。
config.example.yaml 逐行对比只差一行注释,注里多了 sdk-ts;没有新增键,默认值也没动。
internal/runtime/executor/openai_compat_executor.go 第 34–48 行:cli-proxy-openai-compat 退成兜底值,ensureOpenAICompatUserAgent 先取下游请求头里的 UA,取不到才写默认值。1headers 里显式写 User-Agent。提交自带的用例断言了这条覆盖关系。xai-grok-workspace/<版本号>。| 跟踪单 | 升级前的现象 | 落版提交 | 升级后 |
|---|---|---|---|
| #6800 | 拒答与上下文超限被报成正常完成,pause_turn 让客户端停手 | aadb34f9 | 前两者变成 failed 并带错误码,pause_turn 变成 completed 且 end_turn=false |
| #6804 | 每个 thinking block 重解一次请求里的 model,长会话平方级 | 77af3795 | 每请求只解一次 |
| #6806 | auth-dir 全量扫描读到文件错误就注销该凭证 | 5fe203d5 | 读错误保留凭证,与文件事件路径一致 |
| #6807 | Vertex openapi: true 丢 Gemini thought signature,Gemini 3 工具调用 400 | 38706390 | 签名跨翻译保留 |
| #6808 | force-model-prefix 下 xai/、x-ai/、grok/ 图片别名报 unknown provider | 8a3e7622 | 别名回退到无前缀 |
| #6810 | web-search 缓存只按会话作键,换凭证后回放旧 encrypted_content 回 400 | cddc9bb8 | 缓存按上游凭证隔离 |
| #6805 | 相对 auth-dir 的 SIWC 绑定把目录拼两次,提交阶段失败 | bb2d8f82 | 按工作目录解析路径 |
| #6809 | SIWC 绑定期间凭证被换掉,A 的 token 写进 B 的文件 | 6bbd2cb7 | 提交前校验账号没被替换 |
| #6811 | SIWC 绑定与旧版 auth 文件上传同时落地,后写盖掉前写 | 88041f0c | 两条写路径串行化 |
sdk-ts 按原生 Claude Code 处理、cloak_mode: never 保留调用方 header,是 20c9095c;SGLang 那种把 reasoning_tokens 平铺的写法也认了,是 e198f3cd。LimitClaudeRequestImages、claudeImageMaxDimension、claude_image_limits.go 三个关键词都是 0 命中。server.max-request-body-bytes 挡的是整个请求体,默认 0 即不限,它管不到单张图的尺寸。error,需要人工恢复;没到 3 次是 10 分钟临时不可调度。三个常量在 ratelimit_service.go 第 94–96 行。error。这一档最疼,一个下游客户端换个 UA 就能把整组账号打停。handleOpenAI403 里面。
backend/internal/service/ratelimit_service.go 第 1059–1116 行:HTML 页豁免、Cloudflare 1010 豁免、计数窗口、openAI403DisableThreshold 判定、10 分钟临时冷却,全在 handleOpenAI403 一个函数里。4
isCloudflareBotBlockResponse 把响应体转小写后找 error code: 1010 这一串。这次的响应体是 JSON,字段名 error_code,带下划线带引号,匹配不上。5isHTMLResponse 也只认 <!doctype html 或 <html 开头(openai_gateway_count_tokens.go 第 563–567 行),JSON 体同样落空。PlatformOpenAI 或 IsMultiProtocolAPIKey() 的账号才进 handleOpenAI403(第 1031–1033 行),其余平台直接落到最后的 handleAuthError 并 SetError。
backend/internal/service/openai_gateway_service.go 第 72–90 行:openaiAllowedHeaders 里 "user-agent": true,透传模式用的 openaiPassthroughAllowedHeaders 里也有一条。转发循环在 openai_gateway_forward.go 第 1436–1444 行。6opencode_go 账号会被收敛成规范 UA(openai_opencode_session.go 第 121–134 行)。同文件注释写明理由:客户端透传的编程库 UA 会撞上对方前置的 Cloudflare 拦截,还会被计进账号 403 strike。openai_403_cloudflare_bot_block_skips_account_penalty;没有这条、账号却停了,就是没认出来。临时冷却打的是 openai_403_temp_unschedulable。user_agent,它会盖掉透传的下游 UA(account.go 第 1797–1802 行读 credentials["user_agent"])。Python-urllib 这类 UA。报障人拿几类 UA 做过对照,只有它拿到 1010,curl、python-requests、Go-http-client、node 都能过。CODEX_WS_USAGE_FRAME_INGEST=false 关掉摄入,CODEX_WS_USAGE_FRAME_PERSIST_SECONDS 改间隔。| 仓库 | 当前版本 | 发布时间(北京) | 主干 |
|---|---|---|---|
| CLIProxyAPI | v8.0.36 | 10-21 01:18 | main 与 dev 均在 01:11 |
| 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
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.