
CLIProxyAPI 的 /v1/responses WebSocket 只在握手验一次 key,吊销或超额之后已开连接照跑,修复只在 dev、没进 v8.0.38;这篇给出今晚的处置顺序,并附 codex2api「额度 50% 仍 429」的判定钥匙。
response.create 都直接执行,没有人再问一次鉴权。1AccessManager 与 Authenticate 两个词一次都没出现。authenticateResponsesWebsocketTurn。6Upgrade、Connection、Content-Length、Sec-Websocket-* 这些握手头,再重跑一次 Authenticate。model 时,它会把这一轮解析出来的模型名补进去。这样 provider 在每一轮都看得到模型,可以做按模型计费或限流。
sdk/api/handlers/openai/openai_responses_websocket.go 第 269–311 行,dev 分支,截于 2026-10-22 08:23(北京时间)。updateRequestContext 传 true。7response.steer 那条还多一步:它会把这一轮绑定的模型写回鉴权请求体,避免 provider 按客户端临时改的模型名放行。Authenticated 置成 false。这条路会变成 NotHandled,对外显示 401 Missing API key,而且后面的 provider 还能把它放行。10
internal/pluginhost/adapters_auth.go 第 137–160 行,dev 分支。第 145–149 行是新增的分支。GET /v1/responses 或 GET /backend-api/codex/responses 返回 101 的记录。有 101,就说明有客户端在用 WebSocket。Upgrade 头,请求就退回普通 HTTP,而 HTTP 每一轮都验一次。websockets 那个字段。它是凭证级的开关,管的是 CPA 到上游那一段,不是客户端到 CPA 这一段;服务端没有键能关掉下游这条入口。12| 位置 | v8.0.38 | dev 分支 | 现在能做什么 |
|---|---|---|---|
GET /v1/responses 升级后 | 只在握手验一次 4 | 每轮 response.create 前重验 7 | 断连接或挡掉升级 |
GET /backend-api/codex/responses 升级后 | 同上 13 | 同上 | 同上 |
上游双工的 response.steer / append | 不校验 | 三种帧都过 authorizePayload 9 | 同上 |
| 插件拒绝 | 只能变成 401 Missing API key 10 | 可带状态码与文案 11 | 等发版后改插件 |
#6818 在 22:31 UTC(北京 06:31)拿到一个 APPROVED,评审人是 BichengWang,合并状态 clean,两个文件、+196/−35。15response.failed 之后,转发器只认 response.completed、response.done、response.incomplete 三个终局事件。response.failed 不在名单里。干净断流因此落进「流在完成前断了」那一支,回 408 并关掉 socket。15#6853 改的是文件快照覆盖运行时状态:一次读到旧快照再应用,会把 Unavailable、Quota、NextRetryAfter 一起盖掉,冷却就丢了。它自称是 #6844 的第 1、2 项。16/responses 确实回 429,不是界面显示错了。他从后台点了一次「重置账号状态」,再刷一次用量,请求立刻恢复,没重启容器,也没等到周窗口重置。FreshDispatchUsageLimited 有两条判据,后一条与用量百分比无关。前一条看用量窗口是否已满;后一条只看本地状态还停在冷却里、且冷却原因属于用量类。19
auth/store.go 第 2013–2030 行,codex2api v3.1.1。第 2029 行是那条与用量百分比无关的判据。ClearUsageLimitCooldownSince 先清内存,再发一条带条件的 SQL,条件是「原因与截止时间都对得上」。20return true,只在 SQL 报错时打一行日志,没命中行数时不吭声。调用它的地方照样会打出「wham 显示限流窗口已重置,自动解除限流冷却」。applyPersistentAccountSnapshot。
auth/scheduler_outbox_consumer.go 第 524–544 行,codex2api v3.1.1。SendAPIKeyLimitError,正文是中文那句「Codex 账号用量窗口已达上限」。23Retry-After 头。usage_limit_reached 那套字段。usage_logs,一条 status_code=429 都没有,而容器日志里 429 一条不少。光看用量面板会漏判。Reset7dAt 的差值小于 2 秒。27cooldown_released,是 false 就直接重置账号状态。别指望改开关。Reconnecting 2/5,并且不断收到 WebSocket 端点的 503。33github.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.claude.com
status.anthropic.com
status.openai.com
status.cloud.google.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.