1. 03 Feb, 2026 13 commits
  2. 02 Feb, 2026 10 commits
    • ianshaw's avatar
    • bayma888's avatar
      feat(admin): add user balance/concurrency history modal · 606e29d3
      bayma888 authored
      - Add new API endpoint GET /admin/users/:id/balance-history with pagination and type filter
      - Add SumPositiveBalanceByUser for calculating total recharged amount
      - Create UserBalanceHistoryModal component with:
        - User info header (email, username, created_at, current balance, notes, total recharged)
        - Type filter dropdown (all/balance/admin_balance/concurrency/admin_concurrency/subscription)
        - Quick deposit/withdraw buttons
        - Paginated history list with icons and colored values
      - Add instant tooltip on balance column for better UX
      - Add z-index prop to BaseDialog for modal stacking control
      - Update i18n translations (zh/en)
      606e29d3
    • liuxiongfeng's avatar
      test: 为测试 stub 添加缺失的 GroupRepository 接口方法 · ce1d2904
      liuxiongfeng authored
      新增 BindAccountsToGroup 和 GetAccountIDsByGroupIDs 方法的 stub 实现,
      确保测试文件中的 mock 类型满足 GroupRepository 接口要求。
      ce1d2904
    • liuxiongfeng's avatar
      feat(groups): 添加从其他分组复制账号功能 · e1a4a7b8
      liuxiongfeng authored
      - 创建分组时可选择从已有分组复制账号
      - 编辑分组时支持同步账号(全量替换操作)
      - 仅允许选择相同平台的源分组
      - 添加完整的数据校验:去重、自引用检查、平台一致性检查
      - 前端支持多选源分组,带提示说明操作行为
      e1a4a7b8
    • liuxiongfeng's avatar
      refactor(billing): 简化 CalculateCostWithLongContext 逻辑 · b381e8ee
      liuxiongfeng authored
      将 token 直接拆分为范围内和范围外两部分,分别调用 CalculateCost:
      - 范围内:正常计费 (rateMultiplier)
      - 范围外:双倍计费 (rateMultiplier × extraMultiplier)
      
      代码更直观,便于理解和维护
      b381e8ee
    • liuxiongfeng's avatar
      feat(billing): 添加 Gemini 200K 长上下文双倍计费功能 · 45e1429a
      liuxiongfeng authored
      - 新增 CalculateCostWithLongContext 方法支持阈值双倍计费
      - 新增 RecordUsageWithLongContext 方法专用于 Gemini 计费
      - Gemini 超过 200K token 的部分按 2 倍费率计算
      - 其他平台(Claude/OpenAI)完全不受影响
      45e1429a
    • Zero Clover's avatar
      feat(ops): 支持过滤无效 API Key 错误,不写入错误日志 · ad1cdba3
      Zero Clover authored
      新增 IgnoreInvalidApiKeyErrors 开关,启用后 INVALID_API_KEY 和
      API_KEY_REQUIRED 错误将被完全跳过,不写入 Ops 错误日志。
      这些错误由用户错误配置导致,与服务质量无关。
      ad1cdba3
    • shaw's avatar
      fix(gateway): 修复 OAuth token 刷新后调度器缓存不一致问题 · 79fa1813
      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。
      79fa1813
    • liuxiongfeng's avatar
      fix(billing): 修复 Gemini 接口缓存 token 统计 · 4bfeeecb
      liuxiongfeng authored
      extractGeminiUsage 函数未提取 cachedContentTokenCount,
      导致计费时缓存读取 token 始终为 0。
      
      修复:
      - 提取 usageMetadata.cachedContentTokenCount
      - 设置 CacheReadInputTokens 字段
      - InputTokens 减去缓存 token(与 response_transformer 逻辑一致)
      4bfeeecb
    • liuxiongfeng's avatar
      feat(gateway): Gemini API Key 账户跳过模型映射检查,直接透传 · bbc7b4ae
      liuxiongfeng authored
      Gemini API Key 账户通常代理上游服务,模型支持由上游判断,
      本地不需要预先配置模型映射。
      bbc7b4ae
  3. 30 Jan, 2026 5 commits
  4. 29 Jan, 2026 3 commits
  5. 28 Jan, 2026 9 commits