github ranxi2001/sub2api v2.20.1
Sub2API 2.20.1

42 minutes ago

AI API Gateway Platform - 将 AI 订阅配额分发和管理

本版重点改善代理任务续接、OAuth 凭证巡检和管理页面阅读体验,新增质量复测静置、429 后停调及冻结提案取消。包含自 v2.20.0 起合入的 13 个 PR;下面列明适用范围与升级边界。

代理任务与工具兼容

  • 保留已知代理任务的原路由(#727、#740):原生 HTTP Responses 及 WS ingress 的 ctx_pool、passthrough、http_bridge 接入完整代理项归属与首次交付屏障。后续续接核对原账号、模型、认证配置和实际传输;只有完整完成且交付成功才提交归属,取消、短写和不完整结束不会登记成功。共享 Redis 记录仍有效时支持跨应用节点续接;不兼容桥的模型目录不再宣称无法消费的代理格式。恢复拒绝区分等待交付、存储不可用、归属冲突和路由变化,避免盲目重交工具结果。这不是未知旧密文的通用解密或无损迁移:记录丢失、HTTP ingress→upstream WS、压缩端点和 managed credentials 等仍有未覆盖范围,#715 保持跟踪。详见续接与恢复边界。
  • BPS 多分支工具(#739):修复 oneOf 等合法无代码分支被注入 code:"" 后校验失败的问题。目录与历史回放按实际参数选择 FUNCTION / FUNCTION_CODE;旧空槽包装仅在移除空 code 后独立满足完整 schema 时兼容。合法空 code、非空代码及额外字段约束保持有效,不放宽完整校验。
  • 长会话 cyber 回归(#731):参考上游 Wei-Shaw#8519 / Wei-Shaw#8549 增补超过 256 条历史的准入回归,覆盖显式会话与无身份精确请求指纹。本 fork 已有不同实现,本次为测试和文档适配,未直接引入上游 transcript matcher,也未改变现有封锁规则。

凭证运营与账号策略

  • 新鲜鉴权巡检与即时状态(#732、#736):凭证巡检改用 OAuth 母账号的原生 Codex 模型列表鉴权,不把缓存、过期回退或 BPS 独立授权的目录成功当作母账号当前有效。每实例最多 3 个探针,在 90 秒轮次预算内持续领取已到期账号;独立租约保护迟到结果与取消清理。页面操作后立即回读,显示确认阈值、排队、执行、冷却及等待验证等阶段,旧响应不能覆盖新状态。
    队列重登同时读取本次 ID/access token 的明确身份,修复只有会话 sid 时未采用 access token 明确 workspace 的情况;显式身份冲突、原身份匹配、凭据快照及 CAS 保护继续保留,拒绝原因仅展示脱敏布尔诊断。不据此宣称自动重登已在生产恢复;上游撤销旧 Token 的原因和 #730 的真实故障链仍待验收。
  • 429 后自动关闭调度(#738):OAuth 首次配置新增独立勾选项,默认关闭,只复制到匹配的未来新 OpenAI OAuth 账号,不追溯已有账号。启用后,原生、生图、BPS 及已识别的 WS 语义 429 会持久关闭账号调度,可与自动更换 2FA 同时使用;原冷却和更换流程继续执行。附属连接按权威母账号类型与策略处理,Spark 影子账号保持独立。重登不会擅自重新开启该策略账号;管理员可手动开启,另行配置的定时/质量自动化仍按各自规则运行。
  • 降智后静置再复测(#728):质量规则增加 0–10080 分钟的静置时间,默认 0 保留原检测计划。明确失败且处置成功后,定时、手动及 5xx 触发均遵守本规则截止时间;无法判断和传输失败不延长。到期只是允许复测,是否恢复仍由原通过条件、自动恢复开关与所有权判断决定。支持账号、分组、模板及批量编辑,不适用于已有独立恢复间隔的自动 BPS 策略和观察策略。

页面与运维

  • 优先级调度页稳定阅读(#734):延迟区默认折叠,展开后限高并内部滚动;延迟、候选账号复用项目表格和分页,每页数量可选,时间桶跟随账号分页。同业务范围轮询保留内容、顺序、分页和滚动锚点,真实范围变化隔离旧数据;长诊断按需展开,不覆盖未保存配置。
  • Key 消耗与手机布局(#737):风险提醒改为默认收起的摘要,展开后内部滚动,避免挤空桌面消耗表。改善手机长分组名、操作按钮及大额额度换行,保留数值精度与换组入口。展开/收起不确认风险事件,也不改变邮件规则。
  • 利润查询快捷窗口(#729):新增昨天、本周、上周、近 48 小时、本月、上月;周从周一开始,按浏览器本地时区计算。利润接口上限放宽至 32 天,覆盖夏令时回拨时的完整自然月;旧上游运维接口仍为 31 天。
  • 取消冻结提案(#742):full 管理员可持久取消尚未执行的 AI 运维提案,再次预览同一建议仍保持取消态;与执行竞争时仅一方提交。取消只改提案元数据,不撤销已执行动作、不解除暂停,也不替代急停。全局 SLO、对照流量、累计预算和真实 SDK/隔离验收等仍在 #662 跟踪,不据此开放完整自动执行保证。
  • 调度发布诊断(#741):新增账号发布各阶段与 bucket 加载耗时、超时分类及脱敏日志,保留当前锁内新鲜读取和发布边界。没有移除 PostgreSQL 账号锁,也未实现文档中的 revision/CAS 后续方案;#711 的多节点争用仍待进一步治理,不宣称本版已消除重建超时。

升级注意

  • 相对 v2.20.0 新增数据库迁移 337_ai_ops_proposal_cancel.sql,仅扩展提案状态约束以允许 cancelled;升级前备份数据库。旧二进制已有非 ready 状态执行保护,回退后仍拒绝已取消提案;不要撤销约束或把取消态改回 ready。所有管理节点升级后再使用新取消入口。
  • 代理归属保护依赖有效的共享记录。所有共享 Redis 的应用节点应协调升级;新旧 WS 节点混部或回退旧二进制会失去完整保护。保留任务和已有工具结果,未知交付不能靠清记录或换号绕过。
  • 优先级延迟响应新增 config_revision 校验,前后端应配套升级;旧后端缺少该字段时,新界面可能拒绝混显延迟数据。凭证巡检不再复用目录缓存,最多每实例增加 3 个并发原生模型列表请求;慢探针仍可能超过一分钟完成整轮,不提供一分钟 SLA。
  • 重登 Worker 运行包应随版本更新。Session Studio 仅在指定目标时传递可选 expected_workspace,实际服务是否支持和是否选中正确 workspace 仍需隔离确认;不能关闭身份校验绕过。旧二进制会忽略质量静置截止;429 已关闭的调度开关及既有任务、预算不会因回退自动撤销。

完整变更

各 PR 的 CI 与合成浏览器/协议回归不代表生产或真实供应商验收。本次发布不包含生产部署、真实模型调用、实际登录、2FA 更换或邮件发送。


📥 Installation

Docker:

# GitHub Container Registry
docker pull ghcr.io/ranxi2001/sub2api:2.20.1

One-line install (Linux):

curl -fsSL https://raw.githubusercontent.com/ranxi2001/sub2api/v2.20.1/deploy/install.sh | sudo bash -s -- install -v v2.20.1

Manual 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.20.1/deploy/upgrade-k3s.sh | sudo bash -s -- --version v2.20.1

Defaults: namespace tosky-canary, Deployment tosky-nerd; override with --namespace NAME --deployment NAME.
Upgrade every instance sharing Redis to this release.

📚 Documentation

Don't miss a new sub2api release

NewReleases is sending notifications on new releases.