oh-my-pi v15.10.10 发布 —— Codex 无限重连、Anthropic thinking 签名、输出上限,三个大坑一次填完

Codex WebSocket 无限重连:一个零延迟的死循环
这是整个版本里最隐蔽也最严重的 bug。当 Codex 返回 websocket_connection_limit_reached 时,oh-my-pi 的 no-content reconnect 路径从不检查重试预算,也从不等待——它只是不停地连、不停地断、再连,无限循环。如果这个限制是 account-scoped 的,重试永远不会成功,客户端会浪费大量时间在死循环上。
修了:重连现在有预算和延迟,跟其他 WS 重试路径一致。预算耗尽后降级到单次 SSE 重放。
除此之外还修了 Codex WebSocket 的一串相关问题:
- 两个并发
getOrCreateCodexWebSocketConnection调用(prewarm 和第一次请求竞速)会互相关掉对方的 handshake——一个CONNECTING状态的 socket 被关掉后,另一个 caller 收到websocket closed before open的致命错误,整个 session 的 WebSocket 被禁用。现在并发的调用会加入 pending handshake。 - WS 传输错误到达时,
response.completed事件如果排在websocket closed之前就会被丢弃——一个已经完成的响应被重放了一次。 - whitespace-loop breaker 之前只处理正常帧,如果模型发送了不在正确窗口内的变形帧,watchdog 不会触发,turn 永远挂起。
Anthropic 修复:thinking 签名、输出上限、重组装
输出上限被悄悄砍了一半:CLAUDE_CODE_MAX_OUTPUT_TOKENS 这个 clamp 原本只应为 OAuth 请求保留,但 buildParams 无条件应用了它。API-key 用户用 Opus 4.8(原生 128K 输出)时,实际只有 64K 可用。修了,OAuth 请求继续 clamp,API-key 不限。
thinking 签名修复:之前 Opus 4.0(claude-opus-4-20250514)的版本号被 supportsAdaptiveThinkingDisplay 错误解析成 4.20250514 ≥ 4.7,interleaved-thinking-2025-05-14 beta 被静默丢弃。
多个流处理修复:processResponsesStream 中 reasoning items 的 finalization 修复——没有 ID 的 reasoning items(本地 host),每次 output_item.done 都匹配到第一个 thinking block,第二个 block 的文字覆盖了它。现在按 routed entry 匹配。
Foundry mTLS 证书缓存问题:当环境变量指向文件时,证书被缓存了进程生命周期——证书轮换不生效。现在缓存 key 加了文件 mtime。
其他值得注意的
Copilot premiumRequests 计数修复:失败/取消的 response 中用量计数被丢弃——populateResponsesUsageFromResponse 直接替换 usage,错误路径在 success-path 重新应用之前就抛出了异常。现在正确保留。
Anthropic stop_reason 未知值修复:当模型返回未知的 stop_reason(如 Sonnet 4.5+ 默认的 model_context_window_exceeded),mapStopReason 会抛异常。由于这个原因出现在 trailing message_delta 上,错误不可重试——整个 turn 挂了。现在未知值映射到 length。
100+ 图片 resize 并发修复:图片 resize 的 fan-out 限制到 4 个并发 decode,之前 20+ 张图片时会一次性解码所有图片——两个 encode pipeline 同时跑,内存冲击很大。
升级:
curl -fsSL https://omp.sh/install | sh
# 或用 Bun
bun install -g @oh-my-pi/pi-coding-agent
完整更新日志:GitHub Release
50+ 条修复,Codex 和 Anthropic 各分一半。不吸引眼球,但如果你踩过 Codex 无限重连或者 Opus 4.8 输出被砍半,这个版本就是为你修的。
📢 关注我,获取最新开源更新日志和开发者工具动态。
#oh-my-pi #AI编程 #Codex #Anthropic #版本更新