Skip to content

Sub2API 0.2.81

Choose a tag to compare

@github-actions github-actions released this 26 Sep 04:28
c36254c

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(release v2.8.20 及其后合并的 Wei-Shaw#160 – Wei-Shaw#164 修复)
  • 上次移植基准:76581c983(release v2.8.19 及其后合并的 #133 – Wei-Shaw#159 修复)
  • 本次增量:9 个提交,48 个文件(+2018 / −107);无新增迁移
  • 合并基准:上游 Wei-Shaw/sub2api 的 3c2f05c9
  • 版本号:backend/cmd/server/VERSION 为 0.2.81
  • 更早基准:d01928f4a(release v2.8.18 及其后合并的 #95 – #137 修复)
  • 更早基准:594cdf0d6(release v2.8.14 及其后合并的 #85 – #92 修复)
  • 更早基准:3e345632f(release v2.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-guard two-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 增量(本次新增)

  • 观察者(observer)体系完善:用量页按管理员布局对齐(#116)、开通与推广设置选项(#113)

  • BPS 代理韧性:有界代理探测并绑定首个可达出口,失败诊断保留(#128)

  • BPS 403 疑似被封标记:自动关闭协议 / 自动调整分组后,账号列表标记疑似被封(#120 / #131)

  • 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 的贡献者排序,本 Fork README.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-critical 42 个文件 / 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,请使用上方镜像部署。

📚 Documentation