AI API Gateway Platform - 将 AI 订阅配额分发和管理
发布范围:从正式版 v2.17.0 到固定提交 72443bc8e94fb51c09b6af0f330cceeed9c3abd9,包含已合并的 #555、#556、#557、#558、#559。#551 已包含在 v2.17.0 基线中。
本版变化
- 重登协议与诊断:区分 Session Studio 进度通知和真正终态;校验本地 Codex OAuth 回调及完整凭据,新增有限、脱敏的失败阶段诊断。自动重登新增持久化失败预算和递增冷却,耗尽后暂停自动追加;成功回写还须新鲜巡检 OK 才能清预算。API 与 Worker / 内置运行包需配套升级,离线验证不代表外部服务或线上账号已恢复。#555、#557
- TypeSafe 审计分类:增加独立配置的
jailbreak、control_bypass,新旧配置均默认关闭,并记录当时启用状态、阈值与命中快照。关闭类别仍发送问题和校验答案;非法答案沿用原失败策略,既有 hash 拦截仍需单独复核。起始阈值未作真实样本校准,不承诺准确率或调用成本不变。#556 - 内容审查邮件豁免:新增默认关闭的用户独立邮件通知白名单,不改变验证码、登录安全和余额邮件。保存继续推进统一版本围栏,旧排队任务可能被拒绝计数、处罚与通知;新任务按当前版本处理。进入发送流程后的邮件不能保证撤回,未验证真实 SMTP 投递。#558
- 计费持久化与金额口径:普通用量先同步持久化不可变事件,再将扣费、去重、原报价、规范金额和回执在事务中提交;恢复只处理已持久化事件及幂等缓存失效。新批量生图使用八位 USD 金额和独立冻结归属回执,扣款与释放互斥;新平台额度增量使用独立持久化投影,保留精确重置边界与窗口锚点。旧高精度操作只可凭精确匹配的既有回执确认已提交,不据此新增资金动作。#559、账务恢复边界
已知限制与恢复边界
- R2「迟到 SET 回填旧额度」仍未关闭。本版不宣称修复该竞态,也不将 CI 通过解释为这项问题已解决;该限制保留,需独立验收。
- Stage 前不可恢复窗口仍存在:上游已经产生用量、但完整事件尚未持久化到 journal 时进程崩溃,或数据库不可用,无法重建未保存的最终用量。本版不重新调用模型、不伪造零费用成功,也不承诺消除该窗口。
- 不进行历史账目回填、退款、补扣或旧缓存金额导入;旧 backlog 与历史精度损失未获修复。订阅额度或 simple-mode Key 窗口扣费不等于新现金收入;本次不宣称“今天收入归因”或 #532 的生产状态已恢复。
升级与回滚要求
- 禁止旧财务 writer 混跑,包括滚动升级期间旧 batch worker 领取新版任务。部署前必须另行审查并执行停止新请求准入,drain 旧在途请求、usage worker、batch worker 和 flusher 周期(含已经 pop 的快照);确认所有相关节点使用同一已验证财务协议及迁移后才能重新准入。已开始而状态未知的工作继续占用,不能因过期而退款或重复模型请求。
- 新增 forward-only 迁移 300–306,涉及重登预算、邮件豁免、报价、用量事件、平台额度投影、独立冻结归属及报价精度标记。升级前备份并评估迁移;迁移不修复历史财务数据,也不自动执行 drain。
- 禁止直接回滚旧 binary / reader / writer。即使 journal 事件已完成,旧程序仍不能正确理解新增投影与独立冻结归属;回退构建须理解这些状态,否则必须另行授权、审查对账与 drain 方案。回退二进制不会撤销数据库迁移;旧版还会忽略重登预算、邮件豁免和新审计字段。
- 本次仅发布软件,不包含部署、生产访问、迁移执行、真实模型请求或生产恢复验收。安装命令须服从上述统一升级与 drain 条件。
📥 Installation
Docker:
# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.17.1One-line install (Linux):
curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.17.1/deploy/install.sh | sudo bash -s -- install -v v2.17.1Manual download:
Download the appropriate archive for your platform from the assets below.
K3s gateway upgrade (on each existing single-node host):
curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.17.1/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.17.1Defaults: namespace tosky-canary, Deployment tosky-nerd; override with --namespace NAME --deployment NAME.
Upgrade every instance sharing Redis to this release.