github Wei-Shaw/sub2api v0.2.20
Sub2API 0.2.20

10 hours ago

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

新增基于 OAuth 授权的管理 MCP 接口,并完善管理员密钥的细粒度权限;同时全面治理网关请求体内存与读写超时,提升高并发下的稳定性。

新增功能

  • 管理 MCP:新增 OAuth 认证的管理 MCP 接口及前端授权确认/连接管理页面,需显式配置 MCP_PUBLIC_URL 才会启用(默认关闭)
  • 管理员密钥:补全权限项(统计、OpenAI OAuth、邀请等)与中英文权限展示,新增需输入确认文字才能开启的「全权兼容模式」
  • 注册邮箱精确黑名单:支持批量粘贴(上限 20000 条),按收件箱身份匹配 Gmail 点号/+后缀变体,保存时可批量禁用命中的已注册用户
  • OpenAI 生图账号支持按 1K/2K/4K 尺寸档位分流,未指定尺寸时按档位偏好逐层选号
  • 新增 gateway.disable_openai_transport_error_cooldown 开关,可关闭 OpenAI 传输错误冷却
  • Antigravity 账号用量显示每个配额组真实的 5 小时与每周窗口,Pro 套餐的独立 Argon 配额单独成行
  • Antigravity INTERNAL 500 账号惩罚档位可通过环境变量配置

优化改进

  • 网关请求体内存预算、上游/下游读写超时与后台任务全面加上限,减少慢连接和大请求对实例的影响
  • 网关热路径减少 JSON 拷贝与重复解析(thinking 过滤、Codex 引导/压缩判断、Gemini 流增量等),RPM 覆盖与分组隐私门控不再每请求查库
  • 请求体读取失败按超时(408)、客户端断开(499)、截断、解码错误分类返回,并记录不含内容的诊断日志
  • 打通 GPT Image 2.6 原生图片链路,保留 complexity 与原生编辑选项
  • Antigravity 连接测试改为发送管理员填写的提示词并返回模型真实回复
  • Kimi 并发上限 403 改用短冷却,不再长时间下线账号
  • Antigravity 图像模型的 INTERNAL 500 只冷却该模型,不再连带整个账号进入惩罚
  • 用户使用记录导出每页 1000 条,遇面板限流 429 按 Retry-After 等待后重试
  • Codex 密钥导出与 CC Switch 导出默认模型统一改为 GPT-6.1 Sol,并启用实时联网搜索、保留图片配置
  • GPT-6.1 Terra 使用官方 Codex 描述(上下文窗口 500k),校验 effort 与兼容缓存键
  • 错误透传规则可覆盖内置的请求体过大 413
  • MCP 客户端 ID 过长时前端截断显示,MCP 关闭时隐藏入口

Bug 修复

  • 修复 Anthropic setup-token 账号在无 5h 限制时丢失每周用量的问题
  • 修复长会话中 cyber transcript 误拦截的问题(#8519)
  • 修复异步生图任务因请求体内存预算被提前释放而全部 503 的问题
  • 修复 Bedrock EventStream 帧长度未校验即分配内存的问题
  • 修复 Gemini 上游 SSE 行与 Antigravity 非流式响应读取无上限的问题
  • 修复补丁预算在 failover 中累积导致误拒绝的问题
  • 修复 OpenAI OAuth 透传对 codex 模型空 instructions 本地返回 403 的问题,response.instructions 回显按客户端原值还原
  • 修复非流式 /v1/responses 在上游返回 incomplete/cancelled 或缺少 Content-Type 的 SSE 时未返回 JSON 的问题
  • 修复 WebSocket HTTP 桥接未应用 Codex 指纹收敛的问题
  • 修复 OpenAI WS 透传部分轮次未记录首 token 时间的问题
  • 修复强制路由模式下仍发起 responses 探测的问题
  • 修复生图尺寸溢出选号时错误改写会话粘性绑定的问题
  • 修复 GPT Image 账号生图测试参数错误的问题
  • 修复 API Key 校验时客户端断开或密钥格式错误被报告为 500 的问题
  • 修复 Grok Voice 请求体读取失败被误报为 400 并回显原始 socket 错误的问题
  • 修复 Grok 委派消息输入在 Responses 中未规范化的问题
  • 修复 apicompat 转换丢失缓冲 reasoning 内容、完成响应丢失消息内容字段的问题
  • 修复 Gemini 原生 function response 中工具媒体丢失的问题
  • 修复 Antigravity 直连 Gemini 流式响应异常、responseJsonSchema 未改写为 responseSchema 的问题
  • 修复 Antigravity 转发时残留旧系统身份、误删携带任务内容的身份前导的问题
  • 修复 Cloudflare REST messages 请求携带 beta 查询参数的问题

破坏性变更

  • 请求体内存预算:新增 security.request_body_memory_budget_bytes(默认 1GiB),超出时返回 503 + Retry-After;设为 0 可禁用
  • 读写超时:新增 security.request_body_read_timeout_seconds 与 downstream_write_timeout_seconds(默认均 120 秒,0 禁用),上传单次读取停滞超时返回 408
  • 客户端断开后的上游 drain 窗口改为有上限,超时截断会影响该请求的计费口径;会话缓存改为有界
  • GPT-6.1 Terra:OAuth/setup-token 订阅请求超过 272k 不再收取长上下文附加费;Codex 窗口升至 500k 后 API Key 请求越过 272k 更频繁,按 2x/1.5x 计费;Terra 兼容路径的 minimal effort 改为返回 400
  • 新增数据库迁移 249_mcp_oauth.sql,升级时自动执行

升级指南

  • 容器内存较小或并发长上下文请求较多的部署,请按实际情况调整 security.request_body_memory_budget_bytes,详见 deploy/EDGE_SECURITY.md
  • 如需启用管理 MCP,配置 MCP_PUBLIC_URL(需 HTTPS,路径为 /api/v1/mcp)

📥 Installation

Docker:

# Docker Hub
docker pull weishaw/sub2api:0.2.20

# GitHub Container Registry
docker pull ghcr.io/wei-shaw/sub2api:0.2.20

One-line install (Linux):

curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash

Manual download:
Download the appropriate archive for your platform from the assets below.

📚 Documentation

Don't miss a new sub2api release

NewReleases is sending notifications on new releases.