Skip to content

v2.8.4-go

Choose a tag to compare

@github-actions github-actions released this 27 Sep 09:32
· 11 commits to go-rewrite since this release

v2.8.4-go

修复工具链安全漏洞、socks5 鉴权线路、上游错误事件误判断流、以及风控/冷却被启停与
迟到成功绕过的四项问题。上游客户端版本仍为 3.14.3,不改变账号数据库的 JSON 字段
契约,也无需迁移配置。

修复内容

构建工具链升级到 Go 1.25.14

  • 此前 go.mod 声明 go 1.25.0,CI 据此精确安装,发版二进制均由 go1.25.0 编译。
    govulncheck 二进制模式实测:可达 29 个已修复的标准库漏洞(net/http、
    crypto/tls、crypto/x509、net/url 等);go1.25.14 构建后为零。
  • 直接提升 go 指令而非新增 toolchain 行:CI 的 setup-go@v5 只读取 go 行。
  • 本地开发需要 Go ≥ 1.25.14;较旧的 Go 会按默认的 GOTOOLCHAIN=auto 自动下载。

带用户名密码的 socks5 / socks5h 线路恢复可用

  • 方法协商误发 05 02 01 00(GSSAPI + 无鉴权),漏报用户名/密码方法 0x02,
    要求鉴权的代理一律回 0xFF 拒绝;网关、async、额度、领取、OAuth 全部出不去。
  • 线路巡检走标准库的 SOCKS 实现(会正确协商),所以巡检显示可用、真实流量失败。
  • 现按 RFC 1928/1929 发送 05 02 02 00;新增按规范校验方法与凭据的假代理回归测试。

上游错误事件不再被算作线路断流

  • 上游在 SSE 中正常发出的 error 事件(如 overloaded_error)说明线路已把整条流
    完整送达,不再累计账号断流、写入回避期或推高线路连击——此前连续 3 次即会移除一条
    健康线路。v2.8.2 起原生 /v1/messages 也受此影响,OpenAI 两个端点则更早就有。
  • 客户端仍收到明确的失败:原生接口原样透传上游 error 事件(不再重复追加一条
    「流式响应中断」),OpenAI 端点照常报 upstream_stream_error,async 票务以 error 终止。
  • 真正的断流(缺少 message_stop、连接中断、非法事件)判定与记账不变。

停用/启用与迟到成功不再解除风控和冷却

  • 启停不再改写失效:停用 invalid 账号只关闭 enabled,状态保持 invalid,再启用也
    不会复活(此前停用→启用即把风控失效一键解除)。归档走同一转移。
  • 冷却截止时间在启停中保留:启用时冷却未到期则回到 cooling,而非 active。
  • 迟到的成功不再冲掉冷却:请求在冷却生效前选中账号、冷却期间才返回 200 时,只累计
    调用次数,不复位状态、不清零风控/限流/503 连击;冷却到期后的成功照常归零。
    失效账号上的成功同样不改写状态与连击。
  • 额度刷新与后台启停按钮改按 enabled 判断是否停用:已停用的失效账号不再被轮询,
    后台按钮也能正确显示「恢復」。

后台前端产物补齐

  • v2.8.3 修改了账号页的新增提示(「已存在(未更動)」)但未重建内嵌的前端产物,
    该提示实际未生效;本版随启停按钮修改一并重建。

回归验证

  • 新增回归测试:socks5 用户名/密码协商;原生、async、Chat、Responses 四条路径下
    上游 error 事件不计断流(并保留「缺少结束事件」仍计断流的对照);单账号/批量/归档
    三个入口的启停往返;迟到成功保留冷却与失效;已停用失效账号不参与额度刷新。
  • 本地构建、go vet、全量 Go 测试(Go 1.25.14)及前端类型检查通过。
  • 发布前由 GitHub Actions 补充 Linux 全量测试、竞态检测及客户端 SDK 兼容性检查。

发布产物

  • 跨平台二进制:Linux amd64/arm64、macOS amd64/arm64、Windows amd64。
  • 多架构镜像:ghcr.io/fujunchao/zcode2api-plus:2.8.4-go 和 latest,支持 Linux amd64/arm64。