1. 13 Mar, 2026 2 commits
    • Ylarod's avatar
      sub2api: add bedrock support · 11f7b835
      Ylarod authored
      11f7b835
    • haruka's avatar
      fix: 管理员重置配额补全 monthly 字段并修复 ristretto 缓存异步问题 · e73531ce
      haruka authored
      
      
      - 后端 handler:ResetSubscriptionQuotaRequest 新增 Monthly 字段,
        验证逻辑扩展为 daily/weekly/monthly 至少一项为 true
      - 后端 service:AdminResetQuota 新增 resetMonthly 参数,
        调用 ResetMonthlyUsage;重置后追加 subCacheL1.Wait(),
        保证 ristretto Del() 的异步删除立即生效,消除重置后
        /v1/usage 返回旧用量数据的竞态窗口
      - 后端测试:更新存量测试用例匹配新签名,补充
        TestAdminResetQuota_ResetMonthlyOnly /
        TestAdminResetQuota_ResetMonthlyUsageError 两个新用例
      - 前端 API:resetQuota options 类型新增 monthly: boolean
      - 前端视图:confirmResetQuota 改为同时重置 daily/weekly/monthly
      - i18n:中英文确认提示文案更新,提及每月配额
      Co-Authored-By: default avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      e73531ce
  2. 12 Mar, 2026 2 commits
    • erio's avatar
      feat(groups): add rate multipliers management modal · d6488112
      erio authored
      Add a dedicated modal in group management for viewing, adding, editing,
      and deleting per-user rate multipliers within a group.
      
      Backend:
      - GET /admin/groups/:id/rate-multipliers - list entries with user details
      - PUT /admin/groups/:id/rate-multipliers - batch sync (full replace)
      - DELETE /admin/groups/:id/rate-multipliers - clear all entries
      - Repository: GetByGroupID, SyncGroupRateMultipliers methods on
        user_group_rate_multipliers table (same table as user-side rates)
      
      Frontend:
      - New GroupRateMultipliersModal component with:
        - User search and add with email autocomplete
        - Editable rate column with local edit mode (cancel/save)
        - Batch adjust: multiply all rates by a factor
        - Clear all (local operation, requires save to persist)
        - Pagination (10/20/50 per page)
        - Platform icon with brand colors in group info bar
        - Unsaved changes indicator with revert option
      - Unit tests for all three backend endpoints
      d6488112
    • QTom's avatar
      a63de121
  3. 11 Mar, 2026 7 commits
    • shaw's avatar
      refactor: 重构 Chat Completions 端点,采用类型安全的 Responses API 转换 · 9d814679
      shaw authored
      将 /v1/chat/completions 端点从 ResponseWriter 劫持模式重构为独立的
      类型安全转换路径,与 Anthropic Messages 端点架构对齐:
      
      - 在 apicompat 包新增 Chat Completions 完整类型定义和双向转换器
      - 新增 ForwardAsChatCompletions service 方法,走 Responses API 上游
      - Handler 改为独立的账号选择/failover 循环,不再劫持 Responses handler
      - 提取 handleCompatErrorResponse 为 Chat Completions 和 Messages 共用
      - 删除旧的 forwardChatCompletions 直传路径及相关死代码
      9d814679
    • ius's avatar
      Reduce ops and scheduler write amplification · f740d2c2
      ius authored
      f740d2c2
    • Rose Ding's avatar
      feat: add gemini image test preview · bf6585a4
      Rose Ding authored
      bf6585a4
    • ius's avatar
      Fix dashboard snapshot lint errors · 8c2dd7b3
      ius authored
      8c2dd7b3
    • ius's avatar
      Reduce admin dashboard read amplification · 4167c437
      ius authored
      4167c437
    • 7976723's avatar
      fix: 修复 Chat Completions 编译错误和运行时 panic · a17ac501
      7976723 authored
      1. 修复 WriteFilteredHeaders API 不兼容(2处):
         将 s.cfg.Security.ResponseHeaders 改为 s.responseHeaderFilter,
         因为 main 分支已将函数签名改为接受 *responseheaders.CompiledHeaderFilter
      
      2. 修复 writer 生命周期导致的 nil pointer panic:
         ChatCompletions handler 替换了 c.Writer 但未恢复,导致
         OpsErrorLogger 中间件的 defer 释放 opsCaptureWriter 后,
         Logger 中间件调用 c.Writer.Status() 触发空指针解引用。
         通过保存并恢复 originalWriter 修复。
      
      3. 为 chatCompletionsResponseWriter 添加防御性 Status() 和
         Written() 方法,包含 nil 安全检查
      
      4. 恢复 gateway.go 中被误删的 net/http import
      a17ac501
    • 7976723's avatar
      feat: 添加 OpenAI Chat Completions 兼容端点 · 656a77d5
      7976723 authored
      
      
      基于 @yulate 在 PR #648 (commit 0bb6a392) 的工作,解决了与最新
      main 分支的合并冲突。
      
      原始功能(@yulate):
      - 添加 /v1/chat/completions 和 /chat/completions 兼容端点
      - 将 Chat Completions 请求转换为 Responses API 格式并转换回来
      - 添加 API Key 直连转发支持
      - 包含单元测试
      Co-authored-by: default avataryulate <yulate@users.noreply.github.com>
      656a77d5
  4. 10 Mar, 2026 3 commits
    • wucm667's avatar
      fix: 补充缺失的组级和账户级运维告警指标 · e3cf0c0e
      wucm667 authored
      新增以下运维告警指标类型:
      - group_available_accounts: 组内可用账户数
      - group_available_ratio: 组内可用账户比例
      - group_rate_limit_ratio: 组内限速账户比例
      - account_rate_limited_count: 限速账户数
      - account_error_count: 错误账户数
      - account_error_ratio: 错误账户比例
      - overload_account_count: 过载账户数
      
      包含比例和计数类指标的评估逻辑,并注册新的百分比类指标用于阈值校验。
      e3cf0c0e
    • haruka's avatar
      feat: add admin reset subscription quota endpoint and UI · de18bce9
      haruka authored
      
      
      - Add AdminResetQuota service method to reset daily/weekly usage windows
      - Add POST /api/v1/admin/subscriptions/:id/reset-quota handler and route
      - Add resetQuota API function in frontend subscriptions client
      - Add reset quota button, confirmation dialog, and handlers in SubscriptionsView
      - Add i18n keys for reset quota feature in zh and en locales
      Co-Authored-By: default avatarClaude Sonnet 4.6 <noreply@anthropic.com>
      de18bce9
    • shaw's avatar
      00a0a121
  5. 09 Mar, 2026 6 commits
  6. 08 Mar, 2026 3 commits
  7. 07 Mar, 2026 9 commits
  8. 06 Mar, 2026 7 commits
  9. 05 Mar, 2026 1 commit