v2.1.229 里有一组容易被单独看漏、但组合起来能显著提升长连接和企业级部署稳定性的修复和改进——涵盖 MCP OAuth 重定向、网关流式空闲超时、自托管 Runner 的多个边界问题。本文把这几处分散的改动放在一起系统梳理。
MCP OAuth:从 localhost 切到 127.0.0.1
Fixed MCP OAuth with strict authorization servers by using 127.0.0.1
instead of localhost in the redirect URI
如果你接入的 MCP Server 使用了对重定向 URI 校验较为严格的授权服务器,此前用 localhost 作为回调地址可能在某些解析环境下不被接受——现在统一改用明确的回环 IP 地址 127.0.0.1,提升了跟各类 OAuth 实现的兼容性。这是一个典型的"看似很小但解决真实连接失败"的修复。
网关流式响应:SSE keepalive 防断连
Added SSE keepalive pings to gateway streaming responses during long
thinking pauses, preventing idle-timeout disconnects on Vertex and
Bedrock upstreams
对于走 Vertex AI 或 Bedrock 作为上游的用户,此前如果模型进入较长的思考停顿(比如复杂推理场景),流式连接可能因为长时间没有数据传输而被判定空闲超时并断开——现在网关会在这类停顿期间发送 SSE keepalive 心跳包,维持连接不中断。这对使用扩展思考(Extended Thinking)功能、任务本身耗时较长的用户尤其有价值。
自托管 Runner 的三处连接性/稳定性修复
Fixed self-hosted runner and other remote sessions exiting at
startup when managed-mcp.json is deployed and the server delivers
MCP servers; those servers are now skipped with a warning
如果部署了 managed-mcp.json 且服务端下发 MCP Server 配置,此前会导致自托管 Runner 和其他远程会话在启动时直接退出——现在改为跳过这些 Server 并给出警告,不再阻断整个会话的启动。
Fixed self-hosted runner repository preparation hanging on a Git
Credential Manager prompt; git now fails fast when credentials are
missing
此前如果凭据缺失,Git 凭据管理器会弹出交互式提示,而自托管 Runner 环境通常是无人值守的,这类提示会导致整个仓库准备流程卡住而不是报错——现在改为快速失败,缺少凭据时会直接明确报错,而不是无限期挂起等待一个永远不会来的人工输入。
新增服务端下发的 Claude Code Hook 支持,扩展到自托管 Runner
会话,行为与托管环境保持一致
这项新增让自托管环境和 Anthropic 托管的云端环境在Hook 能力上更加对齐,减少了"同一套 Hook 配置在自托管环境下不生效"这类不一致问题的可能性。
容器化部署相关修复
Fixed dynamic workflows inside CPU-limited containers using the host
machine's core count instead of the container's CPU limit
在 CPU 受限的容器里运行动态工作流时,此前会错误地使用宿主机的核心数而不是容器实际被分配的 CPU 限制——这在容器化部署(比如 Kubernetes 里限制了 CPU 配额的 Pod)中可能导致工作流的并发度规划错误,现已修复为正确读取容器自身的 CPU 限制。
文件监听与 Windows 相关修复
Fixed a file-watcher handle leak after atomic file replacements, and
an uncaught error on Windows when the scheduled-tasks watcher failed
on a network or virtual filesystem
文件监听器在"原子文件替换"这类操作后存在句柄泄漏问题,长时间运行的会话中可能逐渐累积;Windows 上如果计划任务监听器在网络文件系统或虚拟文件系统上失败,此前会抛出未捕获的错误,现已妥善处理。
Windows 自托管 Runner 启动策略变更
Changed self-hosted runner Windows startup to require an explicit
--base-dir; there is no default checkout directory on Windows
Windows 上不再有默认的检出目录,启动自托管 Runner 时必须显式指定 --base-dir——这是一处需要注意的破坏性变更,如果你的部署脚本此前依赖默认目录,升级后需要补上这个参数。
总结
把这些分散的修复放在一起看,能感受到 Claude Code 团队正在持续加固长连接稳定性和企业级自托管部署的健壮性这两条线——MCP OAuth 兼容性、SSE keepalive、自托管 Runner 的多个边界情况修复,共同指向"让 Claude Code 在更复杂的网络环境和部署架构下依然可靠运行"这个目标。如果你在企业环境中运维自托管 Runner,建议重点关注这批修复并及时升级。
来源:Claude Code Changelog v2.1.229 — Claude Code 官方文档,Anthropic