Repository navigation
Sub2API 0.2.81
AI API Gateway Platform - 将 AI 订阅配额分发和管理
AI API Gateway Platform - 将 AI 订阅配额分发和管理
Important
本版本为 0.2.81:在完整保留 Fork 自有功能的前提下,将 ranxi2001/sub2api 的功能全量移植进本 Fork。
latest 与 0.2.81 均指向本版本。
版本号使用三段式 0.2.81 而非 0.2.8.1:GoReleaser 强制语义化版本,四段号会被拒绝;
且应用内更新检查的 parseVersion 只取前三段,0.2.8.1 会被误判为 0.2.8 而导致收不到更新。
Note
本次为 0.2.81 的重发(2026-09-27):首次发布基于 ranxi v2.8.13,此后五次追平,
本次已追平至 ranxi production 的 v2.8.20(含 #95 – Wei-Shaw#164),发布产物为 Docker 镜像(GHCR + Docker Hub 双 registry,二进制归档已停发)。
- 镜像只提供
linux/amd64单架构(不再产出 arm64;install.sh在 arm64 上会明确报错) - 标签固定为
0.2.81/0.2.81-amd64/latest(三标签同一镜像;不再产出0.2/0这类大版本浮动标签) - 二进制归档已停发(2026-09-27 起):Release 不再附带
sub2api_*.tar.gz/*.zip与checksums.txt,统一以 Docker 镜像交付 - 安装脚本与应用内更新/回滚的默认仓库已由上游
Wei-Shaw/sub2api改回本 Fork
移植来源
- 来源仓库:
ranxi2001/sub2api分支production - 来源提交:
f24ff9110(releasev2.8.20及其后合并的 Wei-Shaw#160 – Wei-Shaw#164 修复) - 上次移植基准:
76581c983(releasev2.8.19及其后合并的 #133 – Wei-Shaw#159 修复) - 本次增量:9 个提交,48 个文件(+2018 / −107);无新增迁移
- 合并基准:上游
Wei-Shaw/sub2api的3c2f05c9 - 版本号:
backend/cmd/server/VERSION为0.2.81 - 更早基准:
d01928f4a(releasev2.8.18及其后合并的 #95 – #137 修复) - 更早基准:
594cdf0d6(releasev2.8.14及其后合并的 #85 – #92 修复) - 更早基准:
3e345632f(releasev2.8.13及其后的 #80 – #83 修复)
v2.8.20 增量(本次新增)
- BPS 429 按账号冷却与换号重试(Wei-Shaw#161,Fixes #146):Excel BPS 上游返回 429(
basispoints_rate_limited)时,主请求、原生附件上传与invalid_encrypted_content重试在写出任何内容前返回UpstreamFailoverError,复用调度层既有的账号排除、切换预算与客户端断开保护(客户端已断开按取消处理,不再切换);全部候选失败后返回 429、basispoints_rate_limited与校验过的Retry-After,上游正文不外泄。触发 429 的账号进入进程内 BPS 专用冷却:优先用Retry-After,否则用「429 默认回避」设置,范围 1–7200 秒,并发写入不缩短更长的冷却;冷却只对该账号设为走 BPS 的模型生效,不写 Codex 用量快照、限流重置时间或账号全局封禁,也不计入调度失败率。三种选号路径在无可用账号时记录excel_bps_rate_limited,新请求得到 429 而不是 503 - 账号质量规则选择性批量编辑(Wei-Shaw#163):新增
buildQualityRulePatch,按「模型 / 计划 / 测试 / 动作 / 恢复 / 启用」逐字段把草稿合并进每条规则自己的pelican_config(不再整体复刻首条规则),并新增响应式质量工作区、校验提示与配套中英文案 - OpenAI 初始 2FA 登录导入(Wei-Shaw#164):新增
openai_two_fa_login.go,用邮箱 / 密码 / 2FA 密钥显式登录并把凭据保留在有界短生命周期内存中(最多 32 个任务、25 分钟超时、30 分钟过期),登录成功前不建账号、不改动凭证守护配置;新增 token-guardtwo-fa-login的 POST / GET / DELETE 接口(审计日志对该路由整块省略请求体),账号弹窗与OpenAITwoFAImport组件接入;codex session 导入新增skip_existing跳过已存在账号 - 顶栏响应式(Wei-Shaw#163):
AppHeader左侧改为min-w-0+truncate,长标题 / 描述不再把右侧操作区挤出可视区 - 文档与协作(Wei-Shaw#160):贡献者按已合并 PR 数量排序并补齐作者;本 Fork 的
README.md为独立版式,未采用该节(冲突处保留 Fork 版式与VERSION)
v2.8.19 增量
- BPS 强制路由:启用 BPS 且账号未因 403 自动关闭时,请求强制走 basispoints;BPS 不支持的能力由 BPS 返回错误,不再静默回退原 Codex 通道(#133 / #137)
- Mihomo 订阅源与 IP 管理:代理源管理与订阅下载接口独立隔离(Wei-Shaw#158),订阅优先的 warm pool 复用与后台订阅控制(#148 / Wei-Shaw#153 / Wei-Shaw#155),动态代理数量上限取消、弹窗关闭不再被阻塞
- BPS 出口预热:在用户请求之外预热可达出口(warm exit prequalification)
- BPS 历史消息健壮性:修复历史消息
author字段导致的上游 400(#148)、暴露加密历史校验路径(#145)、新增「忽略历史加密消息」账号选项以避开旧多代理会话每轮报错(#151)、图片输入不可用时明确提示并避免重复读图(Wei-Shaw#154),保留工具图片引用与兼容目录 - 账号质量页:按新规则筛选账号并支持批量选择(Wei-Shaw#157)
- 账号总览统计:统计列展示终身 token 与成本
- 可观测性:记录 BPS 取消与错误时长
- token-guard:手动探测更稳健且可观测,修复单元构建与 lint
- 时区:修复 Windows 运行时时区加载报错(#152)
- 文档与协作:新增贡献指南与 issue / PR 模板(Wei-Shaw#159),要求在 issue / PR 中声明所用 agent 模型与推理设置
v2.8.15 / v2.8.16 / v2.8.17 / v2.8.18 增量(本次新增)
-
BPS 代理韧性:有界代理探测并绑定首个可达出口,失败诊断保留(#128)
-
BPS 协议修复:原生附件协议修正(#122)、历史传输修复(#125)、图片输入忽略开关与真实入口 E2E(#121)
-
状态探针检测:定时测试与账号质量页支持「状态探针」(#132)
-
Codex:恢复 OAuth reasoning 并收敛加密 agent 能力(#118)、原生转发剥离不支持的 external web access(#117)
-
额度恢复:配额重置后清理过期的限流状态(#127)
-
凭据守护(smart-ops):配置体验改进(#137)
-
BPS 代理池:会话代理与打票代理支持「IP 管理」代理池(#115)
-
界面:侧边栏与运维导航改用语义图标(#126)
-
观察者账号管理角色(#109):新增 observer 角色与分组范围控制,账号 / 用户 / 代理等管理接口按 observer 范围收窄,配套中间件
observer_routes.go、范围解析observer_scope.go与迁移252_user_observer_groups.sql -
Excel / BPS 账号编辑选项对齐(#111):账号创建 / 编辑 / 批量编辑弹窗的 Excel BPS 选项与后端契约对齐
-
BPS 代理质量调度:节点按完成率与连通质量排序,轮换代理健康状态与订阅亲和解耦,不健康代理自动故障转移并保留失败诊断
-
BPS 并发会话固定出口:BPS 并发会话可固定到托管 Mihomo 出口节点,手动 BPS 账号测试带会话身份(见 BPS Mihomo 会话)
-
图片中转限额可配置:图片中转的并发与容量限额改由「系统设置」配置并联动校验(见 BPS 图片中转限额)
-
Excel / BPS 每请求图片配置:按请求维度配置 Excel BPS 图片(含
max_images)并与协议校验联动(#107) -
Excel / BPS 401 认证策略:401 响应统一走认证策略处理,避免被当作普通上游错误透传(#110)
-
BPS 403 自动分组动作:命中 403 时按分组自动执行预设动作(#105)
-
BPS 原生图片附件与协议补全:opt-in 的 multipart 附件上传与
openai_file_id回传,exec_command原始文本传输、冗余元数据与历史回放校验(#99 / #100 / #106) -
BPS 压缩阈值提升:默认压缩阈值由 780k 提升至 920k
-
BPS 传输纠错:工具下发前纠正封装错误,传输纠正过程中保留原始载荷,对齐工具历史回放与图片参数校验
-
BPS 限流与重放隔离:限流状态按账号隔离、有界重放状态按窗口过期,匿名请求与损坏流单独隔离
-
Codex 收割稳定性:780 路由在校验后跨铸造重试保留(含缓存与错误分类)
-
Pelican 预览修正:缩略图与全尺寸作品预览适配(#104)
-
Grok 媒体回退:内置媒体回退改用媒体资格判定
-
OpenAI 兼容修复:首个上游请求前剥离 reasoning status
-
文档:新增新人入门:使用 Sub2API 接入 Codex(含 4 张操作截图)、BPS 图片中转限额、BPS Mihomo 会话
v2.8.14 增量(首次发布 0.2.81 时引入)
- Excel / BPS 图片中转可配置容量:最大在途请求数可在「系统设置」中配置,字节预算与 128 槽容量校验按配置联动,修复固定预算在高并发下的截断
- BPS 403 自动关闭协议:账号凭据与两个开关仍然匹配时,收到 403 自动只关闭该账号的 BPS,不影响其他能力
- BPS 用量快照与 429 冷却:补齐用量快照上报与 429 冷却窗口
- Excel / BPS 账号工具往返探测:新增账号测试弹窗中的工具调用往返探测(tool roundtrip probe)
- BPS 代码工具嵌套转义修复:修复 function code transport 的嵌套转义问题,新增独立传输实现与回归测试
- 长上下文计费徽标可配置:使用详情中的「长上下文计费 x2」徽标支持开关配置,默认开启
- 判题修复:只比对参考值与候选值,不再把题目下发给被测模型
- 文档:新增新人入门文档与 Excel / BPS 容量验证
移植的主要功能
- 管理员请求采集:按用户 / 上游账户 / 入口分组创建 1–1440 分钟的采集任务,对照请求、响应、工具调用与流式事件;默认关闭,仅保留确认出错的请求或 WebSocket 轮次,正常请求结束即排队清理临时正文
- Excel / BPS 协议:单工具调用参数解析、批量设置协议开关与模型范围、缓存创建 token 转普通输入、图片中转入驻控制,以及用量明细中的推理等级映射
- 凭证守护:令牌巡检、自动重登与错误态自愈(默认关闭)
- 账号质量运维:检测规则、判定与告警、批量设置 Excel / BPS 选项
- Codex 并行收割与 780 原生铸造、Codex 门票(x-codex-turn-state)打票与注入
- Mihomo 托管 / 国家过滤 / 动态代理区域:含 Codex 门票出口池与本地内核迁移脚本
- BPS 代理运行时:节点按完成率与连通质量排序、BPS 并发会话固定托管出口、不健康代理故障转移与失败诊断保留(文档)
- Pelican 定时演练与展示页
- 请求时延明细:新增请求耗时与 TPS 统计口径
- 分组维度扩容:上游分组倍率、分组允许模型、用户分组拒绝模型、仅流式分组
- Copilot SDK 接入教程与 Cyber 会话屏蔽能力
- 字节点(BPS)自定义传输层与相关回归测试
Fork 自有功能(完整保留)
- Codex 292 门票(x-codex-turn-state)打票与注入:独立代理后台打票、住宅 IP 请求覆盖该头,含后台开关、门票状态展示与缺票拦截
- 上游剩余额度探测:账号页可查询上游余额与用量窗口
- 账号代理车道(proxy lanes):车道级调度、车道粘性绑定与准入并发控制
- 图片创作 / 画布 / Studio Bridge、邮件广播、模型广场(model-square) 等
- 发布流水线:双 registry(GHCR + Docker Hub)推送;
latest只由 Release 写,0.2/0浮动标签已取消
升级说明
- 升级方式(二进制,已停用):管理后台左上角「检查更新」可一键下载并应用新版本;也可在服务器执行
curl -sSL https://raw.githubusercontent.com/ziyue67/sub2api/v0.2.81/deploy/install.sh | sudo bash -s -- upgrade。 - 回滚方式(二进制):
install.sh rollback <version>,或直接下载目标版本归档替换/opt/sub2api/sub2api后systemctl restart sub2api。 - 也可以使用 Docker 镜像部署:
docker pull ghcr.io/ziyue67/sub2api:0.2.81,具体见 部署文档。 - 二进制归档停发(2026-09-27):Release 不再上传
sub2api_*.tar.gz/*.zip与checksums.txt;
二进制安装 / 应用内更新 / 回滚路径不再随新版本提供,部署与升级请使用上方 Docker 镜像。 - 启动时会执行新增迁移
239–251(含249的两个迁移文件)。升级前请备份数据库。 - 本次追平 ranxi
v2.8.15–v2.8.18新增一个迁移252_user_observer_groups.sql(observer 分组),启动时自动执行;v2.8.18无新增迁移。 - 本次追平 ranxi
v2.8.19/v2.8.20无新增迁移,最新迁移仍为252_user_observer_groups.sql;v2.8.20的上游改动全部为代码与文档,backend/cmd/server/VERSION仍保留本 Fork 的0.2.81。 - 请求采集正文默认写入
DATA_DIR/request-captures;未配置DATA_DIR时使用./data/request-captures。 - 请求采集与凭证守护默认关闭,需在「系统设置 > 功能开关」中显式启用。
- 安装脚本与在线更新服务的默认仓库已修正为
ziyue67/sub2api(此前默认值为上游Wei-Shaw/sub2api,
会导致按本 Fork 的版本号安装时 404,以及应用内「检查更新」查到上游 Release)。 - 历史附件状态:9 个旧 Release 的二进制附件(52 个)已于 2026-09-26 删除;
v0.2.81曾于当天补齐,
自 2026-09-27 起二进制归档整体停发,Release 仅保留 GitHub 自动生成的Source code与说明。
验证
- 本次(v2.8.20 追平)冲突处理:仅
README.md与backend/cmd/server/VERSION两处冲突。README.md保留本 Fork 的独立版式
(上游 Wei-Shaw#160 只改了它自己README.md的贡献者排序,本 ForkREADME.md无该节,故不引入);VERSION保留0.2.81。
其余 46 个文件由 Git 自动增量合并,未出现语义冲突(上游本次改动均为新增分支:isExcelBPSCoolingDown过滤、
ExcelBPSRateLimitedReason的失败归因与错误输出特判、质量规则补丁工具、2FA 登录任务与 token-guard 路由)。 - 本次(v2.8.20 追平)本地校验(Linux,Go 1.27.1 / Node 22 / pnpm 9.15):
后端go build ./...、go vet -tags=unit ./...、go test -tags=unit -count=1 ./...全部通过(含本次合入的
internal/service(openai_excel_bps*、openai_two_fa_login、account_token_guard)、internal/handler、
internal/handler/admin、internal/server/routes等包,无 FAIL);
前端vue-tsc --noEmit、eslint通过;make test-frontend-critical42 个文件 / 678 个用例全部通过
(Makefile 关键清单本次随上游新增AccountQualityView.spec.ts、qualityRulePatch.spec.ts、accountQuality.spec.ts),
另单独跑通上游新增的 2FA 用例OpenAITwoFAImport.spec.ts、CreateAccountModal.spec.ts、accountTokenGuard.spec.ts(3 个文件 / 52 个用例)。
部署脚本校验:bash -n deploy/install.sh与deploy/tests/install-github-token-test.sh、compose 安全 / 网关 / 简化模式测试全部通过
(本次上游未改动deploy/、.github/与 GoReleaser 配置)。 - 上一轮(v2.8.19 追平)冲突处理:冲突处保留两侧并集:
README.md、docs/新人入门.md、backend/cmd/server/VERSION
(始终保留本 Fork 的0.2.81)、frontend/src/views/admin/AccountsView.vue(保留本 Fork 的@lanes事件
与 ranxi 的v-if="authStore.isAdmin")。v2.8.16/v2.8.17的追平均为增量合并。 - 上一轮本地校验(同版工具链):后端
go build ./...、go vet -tags=unit ./...、
go test -tags=unit -count=1 ./...全部通过(含internal/mihomo、internal/service/basispoints、
internal/requestcapture、internal/repository、internal/server/routes等包);
前端vue-tsc --noEmit、eslint通过,关键用例 vitest 27 个文件 / 363 个用例全部通过。 - 发布配置校验:构建目标
goarch仅amd64(无 arm64)、无{{ .Major }}浮动标签,
Docker 镜像标签为0.2.81/0.2.81-amd64/latest(同一镜像);archives与checksum已停用(只发布 Docker 镜像)。 - 首次发布时的验证结论(2026-09-26 早前一轮)保留在上方历史记录中:合并提交在
main上通过CI与Security Scan。
📥 Installation
Docker:
# Docker Hub
docker pull ziyue67/sub2api:0.2.81
# GitHub Container Registry
docker pull ghcr.io/ziyue67/sub2api:0.2.81本版本起不再发布 tar.gz / zip 二进制包与 checksums.txt,请使用上方镜像部署。