
CLIProxyAPI 在首帧迟迟不来时没有任何上限,请求会一直挂到客户端自己放弃;新开的两张单说清了原因并带来一版补丁,同一窗口另有三张修单被作者在 24 秒里一起关掉。
streaming.keepalive-seconds 只在响应流已经提交之后才发心跳,而首字节之前这段路还没有提交。 1streaming.bootstrap-retries:首字节之前失败,就丢掉这次尝试、换一张凭证重来,默认 0 即关闭。 2
sdk/cliproxy/auth/conductor_stream.go 第 91–125 行:第 108 行的 ctx.Done() 与第 123 行的「读到非空 payload」是仅有的两个出口,循环里没有计时器。streaming.bootstrap-timeout,默认 0,仍然无界。 4bootstrap-retries 还有预算,就再发一次;预算用完,就在写出任何 SSE 字节之前回 504,并把上限写进错误里。 4bootstrap-timeout: 3s 配一次重试,6.00 秒回 504,上游正好收到两次请求;上游停一次再服务,3.0 秒回 200 并带真实 SSE。 4| 旋钮 | 它能解决什么 | 它管不到什么 |
|---|---|---|
streaming.keepalive-seconds 与 send-keepalive-before-ft | 前者在响应流提交后发注释心跳,后者让首字节之前也发 2 | 心跳只让客户端继续等,结束不了这次尝试;不认注释的客户端照样断 |
streaming.bootstrap-retries | 首字节前就报错时换号重来 2 | 沉默不报错,永远不触发 |
routing.retry.request-retry 与 max-retry-interval | 换号轮次、两轮之间最多等 30 秒 6 | 同样要有失败信号才会动 |
routing.cooldown.transient-error-cooldown-seconds | 408、500、502 一类瞬时错误的冷却长短,写 0 保持 60 秒、写 -1 关闭 7 | 与首帧等待无关 |

internal/config/sdk_config.go 第 353–367 行:StreamingConfig 只有心跳间隔、首字节前心跳、重试次数三项,没有任何与时间上限有关的字段。: keep-alive 注释——只认 data 的客户端,心跳帮不上忙。IsCodexTerminalEmptyIncomplete 的条件很具体:事件是 response.incomplete、没有任何非空的文本或工具参数增量、没有 output item、output_tokens 恰好是 0。 8stream error: upstream terminated with incomplete empty response (0 tokens),并标成请求级错误、不换号。 9incomplete_details.reason:判定函数不看它。上游明确说「我被打断了」,只要输出是零,也照判。
internal/runtime/executor/codex_websockets_stream.go 第 430–445 行:第 432 行调用空响应判定,第 437 行以 terminal_empty_incomplete 为原因作废这条上游连接,第 438 行再清掉活动连接。<auth-dir>/.runtime/session-affinity.cache 恢复回来。 12routing.retry.same-upstream-retry,默认 0,28 个文件、+1711/−82,关单时的 mergeable 是 dirty。 13any,但这些绑定只活在内存里。 15
docs/admin-api-keys.md 第 17–32 行:第 19–24 行是一条规则内部的四个必需条件,第 26 行说明规则之间是「或」且不能拼接授权,第 30 行写明共享账户仍是一个账户资源。| 仓库 | 当前版本 | 发布(北京) | 本窗口动作 |
|---|---|---|---|
| sub2api | v0.2.18 20 | 10-23 15:44 | #8319 合并,迁移 247 |
| CLIProxyAPI | v8.0.41 21 | 10-24 02:25 | 三张单被作者关掉;#6930、#6931 新开 |
| codex-proxy | v2.1.20 22 | 10-23 03:56 | 零条目 |
| codex2api | v3.1.1 23 | 10-17 05:42 | 零条目 |
Closes #6930,0 条评论,维护者还没表态。 4github.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
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
opentherank.com
codex-reset.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.