v2.40.0 — 容量/429 瞬态退避 + 闲置恢复可靠性
v2.40.0 (2026-08-01)
容量/429 瞬态退避 + 闲置恢复可靠性
🚦 容量/429 瞬态退避(新配置)
- 新增
capacityBackoffSeconds(默认 60)与capacityMaxWaitSeconds(默认 300) - HTTP 429 与
model_at_capacity错误改为瞬态退避:仅设capUntil,不写failCode——reset:"never"的 Key 不再被冷却到整个周期,单次容量波动不会级联禁用全部 Key - 容量失败的请求直接重新入队而非热轮询刷遍全部 Key;队列等待上限按
capacityMaxWaitSeconds豁免默认 30 秒超时 checkAllFailed忽略纯退避 Key,避免误报all_keys_failed- Dashboard「系统配置」新增容量退避配置区
🧬 闲置恢复可靠性(3 项修复)
- ① 修复
-p实为 codex 的--profile标志(并非 prompt)导致resume --last -p ...立即退出码 2;prompt 是位置参数,改为resume --last \u0027<prompt>\u0027 - ② runner 内
setsid bash -lc把命令从终端剥离,codex resume交互 TUI 需要 PTY;改用script -qec分配伪终端(保留setsid进程组隔离,-e回传子命令退出码),无script时回退旧方式 - ③
triggerResume启动前按 cwd+命令行扫描并终止项目路径下所有残留 codex 进程及其后代(避免state_5.sqlitethreads 表锁死会话);项目已有存活恢复进程或 30 秒内刚发起过启动时跳过,防重触发把仍在加载的巨型会话替换掉
测试:新增 test-capacity-backoff-lifecycle.js 回归测试,npm test 现为 10 项全部 PASS