Skip to content

2.0.6

Choose a tag to compare

@hawklithm hawklithm released this 23 Sep 13:11
· 35 commits to main since this release

Windows 出现 [WinError 64] / Accept failed on a socket

Windows 下 Uvicorn 的默认 Proactor 事件循环在接收连接时,可能因客户端断开或
网络状态变化报告 Task exception was never retrieved、WinError 64。
这是本地 HTTP 服务接受连接时的异常,不代表 CodeBuddy 登录或上游模型报错。

通过本项目 CLI 启动时,Windows 默认改用 Selector 事件循环,避免上述 Proactor
accept 异常;新版 Uvicorn 使用显式 loop factory,旧版则通过事件循环策略切换。
原启动命令不需要修改,重启使用更新后的本地源码即可:

uv run python -m codebuddy_proxy --desensitize --host 0.0.0.0 --global

如确实需要 Proactor 的异步子进程能力或较高的 Windows socket 并发,可用
--windows-loop proactor 保留原先行为,但可能重新遇到这类接入异常。
--windows-loop 仅在 Windows 生效。若只有本机使用,建议省略 --host 0.0.0.0
并连接 http://127.0.0.1:8787;0.0.0.0 会监听所有 IPv4 网卡,
而该代理默认没有入站 API Key 校验,不宜直接暴露到不可信网络。
若换用 Selector 后健康检查仍失败,请检查实际客户端连接地址、防火墙及端口占用。

What's Changed

  • fix: use Windows selector event loop for proxy server by @hawklithm in #6

Full Changelog: 2.0.5...2.0.6