Skip to content

Sub2API 0.2.12

Choose a tag to compare

@github-actions github-actions released this 02 Oct 13:30
1754228

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

Important

本版本为 0.2.12:在完整保留 Fork 自有功能的前提下,追平上游 Wei-Shaw/sub2api 的 main(v0.2.12)。
latest 与 0.2.12 均指向本版本。

版本号与 tag 均沿用上游编号 0.2.12(GoReleaser 强制语义化版本,四段号会被拒绝;应用内更新检查的 parseVersion 只取前三段)。
0.2.12 大于此前的 0.2.11 / 0.2.91 / 0.2.10,应用内「检查更新」可正常提示升级。

Note

本次为 0.2.12(2026-10-02):并入上游 v0.2.12(含 20 个非合并提交、13 个上游 PR 合并),
引入 TypeSafe Jev System One 平台、充值优惠阶梯、账号优先级快捷调整等改动;发布产物为 Docker 镜像(GHCR + Docker Hub 双 registry)。
本 Fork 的 ranxi production 追平(批次十)安排在下一个版本 0.2.13,与上游 v0.2.13 一并合入。

移植来源

  • 来源仓库:上游 Wei-Shaw/sub2api 分支 main
  • 来源提交:458b92abd(v0.2.12,2026-10-02);上次移植基准为 42bc7f6cf(v0.2.11,2026-09-30,PR #93)
  • 本次增量(上游 v0.2.12,42bc7f6cf..458b92abd):29 个提交(20 个非合并),151 个文件(+5779 / −311)
  • 与本 Fork 合并后净增:149 个文件(+5774 / −305)
  • 新增迁移:241_add_typesafe_platform.sql(平台约束加入 typesafe)、241_add_payment_order_bonus_amount.sql(payment_orders 新增 bonus_amount),
    启动时自动执行
  • 合并基准:上游 Wei-Shaw/sub2api;本次未引入 ranxi 代码
  • 版本号:backend/cmd/server/VERSION 为 0.2.12

上游 v0.2.12 增量(本次新增)

  • TypeSafe Jev System One 原生平台(Wei-Shaw#7425 等):新增 typesafe 平台与 /v1/systemone 端点,
    含账号创建与测试、分组 / 渠道 / 配额 / Composite 路由、计费、内容审核与提示词审计覆盖;
    新增 backend/internal/pkg/typesafe/、gateway_systemone.go、account_test_service_typesafe.go,迁移 241_add_typesafe_platform.sql
    • 校验口径与上游 schema 对齐(bb97ab364),并补齐平台迁移、审计覆盖、端点隔离与错误策略(2d8a38681),
      堵住校验解析差异与审计盲区、收紧模型列表口径(9eb394e3e)
    • 错误透传的平台列表守卫把 typesafe 纳入(fa49647c6)
  • 充值优惠阶梯(Wei-Shaw#7802):后台可配置「满 X 送 Y%」赠金或「满 X 打折」折扣模式及 Markdown 活动文案;
    充值页快捷金额显示促销价签,订单与支付结果展示赠送额度
    (payment_recharge_bonus.go、RechargeBonusTierEditor.vue、utils/rechargeBonus.ts、迁移 241_add_payment_order_bonus_amount.sql)
  • 账号优先级快捷调整(Wei-Shaw#7630):账号列表悬停显示 -/+ 按钮、可点击直接输入,连续点击自动合并为一次保存
    (AccountPriorityCell.vue);禁用状态的步进器在悬停前保持隐藏(58d605083)
  • API 密钥列表按分组名排序(Wei-Shaw#7803):api_key_repo 支持按分组名称排序
  • Grok 请求身份头对齐官方交互式 CLI 1.0.46(ad05eda15 / fdce5b8d0),修复 CLI 版本过低返回 426 的问题

上游 v0.2.12 安全与修复

  • Antigravity 上游错误体泄露:投递给客户端前清洗上游错误体,避免泄露账号池项目 ID 与服务账号邮箱(Wei-Shaw#7674)
  • 邮箱验证码并发猜测:验证码尝试次数改为原子扣减,绕过 5 次上限的问题修复;重置密码 token 改为哈希存储并原子单次消费(Wei-Shaw#7676)
  • 匿名订单查询限流:/payment/public/orders/verify 按 IP 限流 20 次/分钟,防止订单号枚举(Wei-Shaw#7673)
  • 自定义错误码警告文案:修正为准确描述其实际作用(Wei-Shaw#7773)
  • 依赖安全:Axios 升级至 1.20.0(53158587a / 00940743d)

Fork 自有功能(完整保留)

  • Codex 292 门票(x-codex-turn-state)打票与注入:独立代理后台打票、住宅 IP 请求覆盖该头,含后台开关、门票状态展示与缺票拦截
  • 上游剩余额度探测:账号页可查询上游余额与用量窗口
  • 账号代理车道(proxy lanes):车道级调度、车道粘性绑定与准入并发控制
  • 管理员请求采集:按用户 / 上游账户 / 入口分组创建采集任务,默认关闭
  • 凭证守护:令牌巡检、自动重登与错误态自愈(默认关闭),重登运行包来源可配置
  • 账号质量运维、Excel / BPS 协议、Mihomo 托管 / 动态代理区域、Pelican 定时演练
  • 图片创作 / 画布 / Studio Bridge、邮件广播、模型广场(model-square) 等
  • 发布流水线:双 registry(GHCR + Docker Hub)推送;Release 零附件(build-reauth-runtime 仅在手动勾选时执行)

升级说明

  • 升级方式:管理后台左上角「检查更新」可一键升级;也可在服务器执行
    curl -sSL https://raw.githubusercontent.com/ziyue67/sub2api/v0.2.12/deploy/install.sh | sudo bash -s -- upgrade。
  • 回滚方式:install.sh rollback <version>。
  • 也可以使用 Docker 镜像部署:docker pull ghcr.io/ziyue67/sub2api:0.2.12,具体见 部署文档。
  • 镜像只提供 linux/amd64 单架构(不产出 arm64;install.sh 在 arm64 上会明确报错),标签为 0.2.12 / 0.2.12-amd64 / latest(同一镜像)。
  • Release 零附件:不附带 sub2api_*.tar.gz / *.zip / checksums.txt,统一以 Docker 镜像交付。
  • 数据库迁移:新增 241_add_typesafe_platform.sql(accounts.platform 约束加入 typesafe)与
    241_add_payment_order_bonus_amount.sql(payment_orders.bonus_amount),启动时自动执行。升级前请备份数据库。
  • 重置密码链接失效提醒:重置 token 改为哈希存储,升级前已发出但尚未使用的链接将失效,用户需重新申请。
  • 请求采集与凭证守护默认关闭,需在「系统设置 > 功能开关」中显式启用。
  • 安装脚本与在线更新服务的默认仓库为 ziyue67/sub2api(backend/internal/service/update_service.go、deploy/install.sh)。

验证

  • 合并冲突处理(上游 v0.2.12,4 个文件):
    • backend/internal/service/account_service.go:Create 并集 —— 保留 Fork 的 ValidateModelMappingMode,同时采纳上游的 TypeSafe 凭证类型校验
    • backend/internal/service/admin_account.go:buildAccountForCreate 并集 —— 保留 Fork 的 MergeOpenAICodexTicketExtra,同时采纳上游的 TypeSafe 校验
    • frontend/src/views/admin/AccountsView.vue:保留 Fork 的 cell-upstream_usage(上游剩余额度列),同时采纳上游的 AccountPriorityCell 优先级快捷调整(原 Fork 的只读 priority 单元格被替换);两处 import 取并集
    • frontend/src/views/admin/SettingsView.vue:<script setup> 导入取并集(保留 Fork 的 EmailBroadcastDialog,采纳上游的 RechargeBonusTierEditor 与 @/utils/rechargeBonus)
    • backend/internal/service/account_test_service_typesafe_test.go:上游测试按两返回值签名调用 parseTestSSEOutput,
      而 Fork 的实现额外返回 upstreamModel,合并后编译失败;补第三个返回值丢弃(3f5b3fb36)
  • 本地校验(Linux,Go 1.27.1 / Node 22):
    • 后端:go build ./...、go vet -tags=unit ./...、go test -tags=unit -count=1 ./...(65 个包全绿,无 FAIL)、
      golangci-lint run --timeout=30m → 0 issues
    • 前端:vue-tsc --noEmit、eslint .(全量 lint:check)通过;受影响的账号 / 充值 / 密钥用例通过
  • 工作树检查:无残留冲突标记(<<<<<<< / >>>>>>>)。
  • 发布配置校验:Docker 镜像标签为 0.2.12 / 0.2.12-amd64 / latest(GHCR 与 Docker Hub 同一镜像);
    发布说明按 docs/releases/v0.2.12.md(与 tag 同名)由 release.yml / sync-fork-release.yml / backfill-release.yml 回写;
    tag 与 Release 由发布流程创建,不发布任何附件。

Docker 镜像(ziyue67/sub2api)

ziyue67/sub2api:latest
ziyue67/sub2api:0.2.12
ghcr.io/ziyue67/sub2api:latest
ghcr.io/ziyue67/sub2api:0.2.12

拉取示例:

docker pull ziyue67/sub2api:0.2.12
docker pull ghcr.io/ziyue67/sub2api:0.2.12

文档