Skip to content

v2.8.2-go

Choose a tag to compare

@github-actions github-actions released this 26 Sep 10:42
· 15 commits to go-rewrite since this release

v2.8.2-go

修复响应完整性、风控失效状态保留和优雅停机的四项问题。上游客户端版本仍为
3.14.3,不改变账号数据库的 JSON 字段契约,也无需迁移配置。

修复内容

长 JSON 响应不再被静默截断

  • 正常非流式 JSON 使用独立的 16 MiB 内存预算,不再误用错误体的 64 KiB 上限。
  • 超出预算明确返回 HTTP 502 upstream_response_too_large,不返回损坏的 HTTP 200 正文。
  • /v1/messages、/v1/chat/completions、/v1/responses 共用修复;SSE 总大小不受该限制。

SSE 提前结束不再误报成功

  • 同步与异步路径共用消息结束检查:正常 EOF 但缺少 message_stop 也属于断流。
  • 原生接口通过 SSE error 事件报告截断;异步票务不再误发 done,已交付内容后不换号重发。
  • 断流会累计线路计数,不再误清零连续断流记录。已经收到的完整终值用量仍正常入账。
  • 兼容显式事件名、JSON type、跨网络块、多行事件以及无尾部换行的完整结束事件。

额度刷新不再意外解除风控失效

  • 统一在额度回写边界保留风控失效状态及原始错误证据。
  • 覆盖查询失败、405 幂等、空额度和额度耗尽,避免下一次查询成功时误将账号恢复为可用。
  • 检查时间和额度快照仍可更新;重开数据库后保护仍有效,不依赖运行期计数。
  • 非风控原因的失效恢复逻辑不变。

优雅停机等待在途请求收尾

  • 收到退出信号后等待 Shutdown 完成,再释放数据库和验证码池等依赖。
  • 保持 10 秒等待预算;超时主动关闭剩余连接,取消在途请求。
  • 监听失败直接返回,不遗留等待退出信号的协程。

回归验证

  • 新增 11 组回归测试,覆盖长响应、消息终态、持久化风控状态和真实 HTTP 停机时序。
  • 本地构建、静态检查和串行全量 Go 测试通过;流式、风控及停机核心回归连续运行 10 轮通过。
  • 发布前由 GitHub Actions 补充 Linux 全量测试、竞态检测及客户端 SDK 兼容性检查。

发布产物

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