v2.8.2-go
·
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。