Repository navigation
Sub2API 0.2.15
AI API Gateway Platform - 将 AI 订阅配额分发和管理
Important
本版本为 0.2.15:在完整保留 Fork 自有功能的前提下同时追平两条主线 ——
上游 Wei-Shaw/sub2api 的 main(v0.2.15,provider profile 平台清单重构)与
ranxi2001/sub2api 的 production(批次十四),版本号沿用上游编号 0.2.15。
latest 与 0.2.15 均指向本版本。
0.2.15 大于此前的 0.2.14 / 0.2.13 / 0.2.12,应用内「检查更新」可正常提示升级。
Note
本次为 0.2.15(2026-10-09):在 0.2.14 的基础上,合并上游 main 的 20 个非合并提交
(5fc0e486c → 3a6fd1c9d)与 ranxi 批次十四(17c88b012 → 11be58950,v2.10.1)。
发布产物为 Docker 镜像(GHCR + Docker Hub 双 registry),Release 零附件。
移植来源
- 来源一:上游
Wei-Shaw/sub2api分支main- 来源提交:
3a6fd1c9d(v0.2.15,2026-10-09);上次移植基准5fc0e486c - 本次增量:20 个非合并提交,140 个文件(+13575 / −1054)
- 来源提交:
- 来源二:
ranxi2001/sub2api分支production- 批次十四:
11be58950(ranxi releasev2.10.1,2026-10-09);上次移植基准17c88b012 - 本次增量:5 个非合并提交,19 个文件(+1019 / −4)
- 批次十四:
- 新增迁移:无
- 版本号:
backend/cmd/server/VERSION为0.2.15
上游增量(v0.2.15,平台清单重构)
这是上游一次较大的架构收敛:把分散在各处的平台判断收敛为「平台清单 + provider profile」。
- 平台清单(
internal/domain/platforms.go):平台白名单由数据库约束改为应用层校验;
后端平台列表、多协议供应商默认端点表、转发与探测判断统一改由 profile 驱动 - 协议分流收敛:三个入站入口(
/v1/responses、/v1/chat/completions、/v1/messages)的
上游协议判定合并为resolveUpstreamProtocol单一入口 - 新增平台:接入 Cline 与 Command Code
- 安全:Go 升级到 1.27.2、
golang.org/x/net升到 0.60.0(修复安全扫描) - OpenAI:Responses Lite 与 OAuth 历史回放时声明
web_search;Claude 计费与钱包冷却修复;
模型目录缓存隔离;/v1/responses转 Anthropic 时统一以去空白的请求模型兜底映射 - 前端:模型同步入口按平台能力展示;平台列表与多协议账号表单改由平台清单驱动
ranxi 批次十四增量(v2.10.1)
- Excel BPS OAuth 登录复用密码 TOTP worker:BPS OAuth 账号的登录流程复用既有密码 TOTP worker
- OpenAI 搜索历史兼容:OAuth 历史回放
web_search_call时声明web_search - 修复搜索历史兼容代码的类型断言 lint 问题
- 文档:说明旧 Codex 凭据转换边界与 Excel 重新授权方式
本次合并的冲突处理(16 个文件)
backend/go.mod:采纳上游依赖(含 x/net 0.60.0 安全修复),go mod tidy收敛.github/workflows/release.yml:保留 Fork 发布流水线,Go 版本校验跟上 1.27.2openai_gateway_chat_completions.go/openai_gateway_messages.go:采纳上游统一分流
(Fork 原有的 OpenCode Go 硬编码分流已被resolveUpstreamProtocolFor+ profile 覆盖)openai_gateway_forward.go:保留 Fork 的 DeepSeek native-compaction 快捷判定,其余采纳上游composite_platform.go、account_test_service.go、credentialsBuilder.ts、
EditAccountModal.vue、SettingsView.vue、Makefile与各 spec:并集
⚠️ 修复:平台重构对 Fork 协议覆盖的两处回归
上游把协议判定收敛到 resolveUpstreamProtocol 时,未包含 Fork(#46) 的
「OpenAI API Key 可显式配置 api_protocol + api_base_urls(分协议端点)」能力,
导致 12 处真实路由回归(Chat Completions 入站被错误改道到 Responses)。
本次修复:
upstream_protocol_routing.go的 adaptive 分支补回 Fork 语义:
显式chat_completions→ CC;CC 入站 → 同协议直通;/v1/messages入站 →
配了原生 Anthropic 端点则直通,否则转 CC;其余按 Responses 端点是否存在决定
(与shouldForwardOpenAIResponsesViaChatCompletions同口径)nativeAnthropicMessagesURL:Fork 的 OpenAI 协议账号同样走版本感知拼接,
避免 base 自带/v1时拼出/v1/messages/v1/messages
修复后以「合并前 main」为基准逐用例比对 63600 个路由矩阵用例:OpenAI 平台
0 处行为差异;其余仅剩 768 处错误文案差异(无上游请求、无 URL/协议变化)。
上游新增的路由基准守卫改为 Fork 感知:只放行 OpenCode Go(按模型分流)与
OpenAI(Fork #46)两类,且强制 transport 集合、状态码、panic、客户端错误码一致,
数量仍精确断言,一旦扩张即失败。
Fork 自有功能(完整保留)
- Codex 292 门票(x-codex-turn-state)打票与注入、上游剩余额度探测、账号代理车道
- 管理员请求采集、凭证守护、账号质量运维、Excel / BPS 协议
- Mihomo 托管 / 动态代理区域、Pelican 定时演练、图片创作 / 画布 / Studio Bridge
- 邮件广播、模型广场、Claude 重置额度查询、网站工单、账号运维告警、受控渠道实验
- 发布流水线:双 registry 推送;
latest只由 Release 写;二进制归档停发
升级说明
- 升级方式:管理后台左上角「检查更新」一键升级;或
curl -sSL https://raw.githubusercontent.com/ziyue67/sub2api/v0.2.15/deploy/install.sh | sudo bash -s -- upgrade - 回滚方式:
install.sh rollback <version> - Docker:
docker pull ghcr.io/ziyue67/sub2api:0.2.15 - 镜像只提供
linux/amd64单架构,标签0.2.15/0.2.15-amd64/latest - 数据库迁移:本版本不含新增迁移;升级前请备份数据库
- 安装脚本与在线更新服务的默认仓库为
ziyue67/sub2api
验证
- 本地校验(Linux,Go 1.27.2 / Node 22 / pnpm 9.15.9):
- 后端:
go build ./...、gofmt -l、go test -tags=unit ./...全部通过 - 前端:
pnpm install --frozen-lockfile通过、vue-tsc --noEmit通过、eslint .0 error / 0 warning、
关键清单 vitest 76 个文件 / 1322 个用例全部通过 - 路由一致性:以合并前 main 为基准,63600 用例逐条比对,OpenAI 平台零行为差异
- 后端:
- 工作树检查:无残留冲突标记,
git status干净
📥 Installation
Docker:
# Docker Hub
docker pull ziyue67/sub2api:0.2.15
# GitHub Container Registry
docker pull ghcr.io/ziyue67/sub2api:0.2.15本版本起不再发布 tar.gz / zip 二进制包与 checksums.txt,请使用上方镜像部署。