
CLIProxyAPI 上一期那条“不写日志的 503”有了补丁,同时另一张单揭出更麻烦的事:一次文件扫描会把刚写下的冷却整段盖掉,而且不留痕迹;三张单都还开着,另有两条日志诊断补丁会改掉你现有告警的措辞。
Retry-After 的 503。这一条更隐蔽,号选得出来,只是选错了。credential_quota 还没到期」。文件快照两支都不落。8
sdk/cliproxy/auth/conductor_lifecycle.go 第 376–421 行。第 383 行是第一个保留分支,第 407 行是 credential_quota 那一支;快照带着 Status=active、Unavailable=false、Quota 归零、NextRetryAfter 零值进来,这两支都不会拦它。8reloadClients 末尾无条件调 refreshAuthState,整个 auth 目录重读一遍、逐张重建快照。9credential_quota 那一支把 Unavailable、NextRetryAfter、Quota 搬回去了,漏掉 cooldownRecordedSeq 这个水位。10HasFileSnapshot 失效(第 364–366 行)。再在快照分支里搬回 Status、StatusMessage、LastError、Unavailable、NextRetryAfter、Quota 六个字段,credential_quota 那一支补上水位。6routing.cooldown 那三个键都不管它:disable-cooling 关的是冷却调度,save-cooldown-status 管的是重启后能不能读回冷却,transient-error-cooldown-seconds 管的是瞬时报错的时长。12reason == blockReasonCooldown 放宽成 reason != blockReasonDisabled;措辞从 are in cooldown 改成 are unavailable,单复数两种都改。14
eaxeax/CLIProxyAPI 的 fix/log-auth-unavailable-transient,sdk/cliproxy/auth/conductor_selection.go 第 2446–2466 行。第 2453 行是新过滤条件,第 2463 与 2465 行是改后的措辞。15are in cooldown 配的规则,等这一版合进去就不再命中。要改的就是这一句。SafeDiagnosticForLog:先取 600 字、最终截到 300 字、压成单行,抹掉 api_key=、各类 token、authorization 和 URL 里的账号密码。16api_key= 之类去认是哪张凭证,那条路也一起没了。transient-error-cooldown-seconds 仍然是那个开关。RoundTrip 拿到连接错误直接返回。17
internal/runtime/executor/helps/utls_client.go 第 101–124 行。第 109–112 行是连接失败时的出口;关闭连接失败的那条路在下一个函数里,才有一行 Debug。18are in cooldown 换掉;遇到冷却自己消失,先翻一遍这半小时里有没有人动过配置。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.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.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.