- 03 Feb, 2026 4 commits
-
-
liuxiongfeng authored
Update test expectation to reflect new mapping: gemini-2.5-pro -> gemini-3-pro-high
-
liuxiongfeng authored
Add prefix mapping rules for gemini-2.5-pro variants: - gemini-2.5-pro -> gemini-3-pro-high - gemini-2.5-pro-preview -> gemini-3-pro-high - gemini-2.5-pro-exp -> gemini-3-pro-high
-
shaw authored
- 将 TLS Toggle 从第一步(PostgreSQL)移动到第二步(Redis) - 添加缺失的 Toggle 组件导入 问题描述: TLS 配置选项错误地出现在数据库配置步骤中,而不是 Redis 配置步骤
-
Wesley Liddick authored
feat(groups): 添加从其他分组复制账号功能
-
- 02 Feb, 2026 25 commits
-
-
liuxiongfeng authored
新增 BindAccountsToGroup 和 GetAccountIDsByGroupIDs 方法的 stub 实现, 确保测试文件中的 mock 类型满足 GroupRepository 接口要求。
-
Wesley Liddick authored
feat(billing): 添加 Gemini 200K 长上下文双倍计费功能
-
liuxiongfeng authored
- 创建分组时可选择从已有分组复制账号 - 编辑分组时支持同步账号(全量替换操作) - 仅允许选择相同平台的源分组 - 添加完整的数据校验:去重、自引用检查、平台一致性检查 - 前端支持多选源分组,带提示说明操作行为
-
liuxiongfeng authored
将 token 直接拆分为范围内和范围外两部分,分别调用 CalculateCost: - 范围内:正常计费 (rateMultiplier) - 范围外:双倍计费 (rateMultiplier × extraMultiplier) 代码更直观,便于理解和维护
-
liuxiongfeng authored
- 新增 CalculateCostWithLongContext 方法支持阈值双倍计费 - 新增 RecordUsageWithLongContext 方法专用于 Gemini 计费 - Gemini 超过 200K token 的部分按 2 倍费率计算 - 其他平台(Claude/OpenAI)完全不受影响
-
shaw authored
OpsAdvancedSettings 接口缺少 ignore_invalid_api_key_errors 字段, 导致 TypeScript 编译报错。
-
Wesley Liddick authored
feat(gateway): 增强 /v1/usage 端点返回完整用量统计
-
Wesley Liddick authored
feat(ops): 支持过滤无效 API Key 错误,不写入错误日志
-
Wesley Liddick authored
feat(ops): 将 USER_INACTIVE 错误排除在 SLA 统计之外
-
Wesley Liddick authored
feat: 向用户显示管理员调整余额的备注
-
Zero Clover authored
新增 IgnoreInvalidApiKeyErrors 开关,启用后 INVALID_API_KEY 和 API_KEY_REQUIRED 错误将被完全跳过,不写入 Ops 错误日志。 这些错误由用户错误配置导致,与服务质量无关。
-
Wesley Liddick authored
feat: 支持在用户列表搜索中使用备注字段和模糊查询、支持用户名备注等搜索
-
shaw authored
Token 刷新成功后,调度器缓存中的 Account 对象仍包含旧的 credentials, 导致在 Outbox 异步更新之前(最多 1 秒窗口)请求使用过期 token, 返回 403 错误(OAuth token has been revoked)。 修复方案:在 token 刷新成功后同步更新调度器缓存,确保调度获取的 Account 对象立即包含最新的 access_token 和 _token_version。 此修复覆盖所有 OAuth 平台:OpenAI、Claude、Gemini、Antigravity。
-
Zero Clover authored
将账户停用 (USER_INACTIVE) 导致的请求失败视为业务限制类错误,不计入 SLA 和错误率统计。 账户停用是预期内的业务结果,不应被视为系统错误或服务质量问题。此改动使错误分类更加准确,避免将预期的业务限制误报为系统故障。 修改内容: - 在 classifyOpsIsBusinessLimited 函数中添加 USER_INACTIVE 错误码 - 该类错误不再触发错误率告警 Fixes Wei-Shaw/sub2api#453
-
JIA-ss authored
为 CC Switch 集成增强 /v1/usage 网关端点,在保持原有 4 字段 (isValid, planName, remaining, unit) 向后兼容的基础上,新增: - usage 对象:今日/累计的请求数、token 用量、费用,以及 RPM/TPM - subscription 对象(订阅模式):日/周/月用量和限额、过期时间 - balance 字段(余额模式):当前钱包余额 用量数据获取采用 best-effort 策略,失败不影响基础响应。 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
小北 authored
- 为RedeemCode DTO添加notes字段(仅用于admin_balance/admin_concurrency类型) - 更新mapper使其有条件地包含备注信息 - 在用户兑换历史UI中显示备注 - 备注以斜体显示,悬停时显示完整内容 用户现在可以看到管理员调整其余额的原因说明。 Changes: - backend/internal/handler/dto/types.go: RedeemCode添加notes字段 - backend/internal/handler/dto/mappers.go: 条件性填充notes - frontend/src/api/redeem.ts: TypeScript接口添加notes - frontend/src/views/user/RedeemView.vue: UI显示备注信息
-
小北 authored
- 在用户仓库的搜索过滤器中添加备注字段 - 管理员现在可以通过备注/标记搜索用户 - 使用不区分大小写的搜索(ContainsFold) Changes: - backend/internal/repository/user_repo.go: 添加 NotesContainsFold 到搜索条件
-
shaw authored
## 新增功能 - 新增 docker-compose.local.yml:使用本地目录存储数据,便于迁移和备份 - 新增 docker-deploy.sh:一键部署脚本,自动生成安全密钥(JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD) - 新增 deploy/.gitignore:忽略运行时数据目录 ## 优化改进 - docker-compose.local.yml 包含 PGDATA 环境变量修复,解决 PostgreSQL 18 Alpine 数据丢失问题 - 脚本自动设置 .env 文件权限为 600,增强安全性 - 脚本显示生成的凭证,方便用户记录 ## 文档更新 - 更新 README.md(英文版):新增"快速开始"章节,添加部署版本对比表 - 更新 README_CN.md(中文版):同步英文版更新 - 更新 deploy/README.md:详细说明两种部署方式和迁移方法 ## 使用方式 一键部署: ```bash curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash docker-compose -f docker-compose.local.yml up -d ``` 轻松迁移: ```bash tar czf sub2api-complete.tar.gz deploy/ # 传输到新服务器后直接解压启动即可 ```
-
Wesley Liddick authored
fix(billing): 修复 Gemini 接口缓存 token 统计
-
Wesley Liddick authored
feat(gateway): Gemini API Key 账户跳过模型映射检查,直接透传
-
shaw authored
- 新增 AnnouncementBell 组件,支持 Modal 弹窗和 Markdown 渲染 - 移除 Dashboard 横幅和独立公告页面 - 铃铛位置在 Header 文档按钮左侧,显示未读红点 - 支持点击查看详情、标记已读、全部已读等操作 - 完善国际化,移除所有硬编码中文 - 修复 AnnouncementTargetingEditor watch 循环问题
-
liuxiongfeng authored
extractGeminiUsage 函数未提取 cachedContentTokenCount, 导致计费时缓存读取 token 始终为 0。 修复: - 提取 usageMetadata.cachedContentTokenCount - 设置 CacheReadInputTokens 字段 - InputTokens 减去缓存 token(与 response_transformer 逻辑一致)
-
liuxiongfeng authored
Gemini API Key 账户通常代理上游服务,模型支持由上游判断, 本地不需要预先配置模型映射。
-
Wesley Liddick authored
feat(announcements): admin/user announcement system
-
Wesley Liddick authored
feat: add support for using TLS to connect to Redis
-
- 31 Jan, 2026 1 commit
-
-
iBenzene authored
-
- 30 Jan, 2026 7 commits
-
-
iBenzene authored
-
ducky authored
-
ducky authored
Implements announcements end-to-end (admin CRUD + read status, user list + mark read) with OR-of-AND targeting. Also breaks the ent<->service import cycle by moving schema-facing constants/targeting into a new domain package.
-
Wesley Liddick authored
chore: upgrade Antigravity User-Agent to 1.15.8
-
shaw authored
-
shaw authored
修复GO-2026-4341和GO-2026-4340两个标准库漏洞
-
liuxiongfeng authored
-
- 28 Jan, 2026 3 commits
-
-
shaw authored
-
Wesley Liddick authored
feat(purchase): 增加购买订阅 iframe 页面与配置
-
shaw authored
当新分组创建后立即绑定账号时,调度器会错误地将空快照视为有效缓存命中, 导致返回没有可调度的账号。现在空快照会触发数据库回退查询。
-