1. 19 Mar, 2026 1 commit
  2. 18 Mar, 2026 8 commits
  3. 17 Mar, 2026 7 commits
  4. 16 Mar, 2026 12 commits
  5. 15 Mar, 2026 12 commits
    • erio's avatar
      refactor: replace sync.Map credits state with AICredits rate limit key · 8a260def
      erio authored
      Replace process-memory sync.Map + per-model runtime state with a single
      "AICredits" key in model_rate_limits, making credits exhaustion fully
      isomorphic with model-level rate limiting.
      
      Scheduler: rate-limited accounts with overages enabled + credits available
      are now scheduled instead of excluded.
      
      Forwarding: when model is rate-limited + credits available, inject credits
      proactively without waiting for a 429 round trip.
      
      Storage: credits exhaustion stored as model_rate_limits["AICredits"] with
      5h duration, reusing SetModelRateLimit/isRateLimitActiveForKey.
      
      Frontend: show credits_active (yellow ) when model rate-limited but
      credits available, credits_exhausted (red) when AICredits key active.
      
      Tests: add unit tests for shouldMarkCreditsExhausted, injectEnabledCreditTypes,
      clearCreditsExhausted, and update existing overages tests.
      8a260def
    • SilentFlower's avatar
    • SilentFlower's avatar
    • SilentFlower's avatar
    • SilentFlower's avatar
      feat: implement resolveCreditsOveragesModelKey function to stabilize model key... · 17e40333
      SilentFlower authored
      feat: implement resolveCreditsOveragesModelKey function to stabilize model key resolution for credit overages
      17e40333
    • Peter's avatar
      8147866c
    • shaw's avatar
      fix: 恢复 UsageProgressBar 中被意外移除的窗口统计数据展示 · 220fbe65
      shaw authored
      commit 0debe0a8 在修复 OpenAI WS 用量窗口刷新问题时,意外删除了
      UsageProgressBar 中的 window stats 渲染逻辑和格式化函数。
      
      恢复进度条上方的统计行(requests, tokens, account cost, user cost)
      及对应的 4 个格式化 computed 属性。
      220fbe65
    • shaw's avatar
      ae44a943
    • IanShaw027's avatar
      fix: 修复批量编辑账号时模型白名单显示与实际不一致的问题 #982 · 19d3ecc7
      IanShaw027 authored
      修复批量编辑账号时,UI 显示的是 plain 模型名(如 GPT-5),但实际落库的是 dated 模型名的问题。
      
      核心改动:
      1. 批量编辑白名单不再使用 BulkEditAccountModal.vue 中手写的过期模型列表
         - 移除了 allModels 和 presetMappings 的硬编码列表(共 200+ 行)
         - 直接复用 ModelWhitelistSelector.vue 组件
      
      2. ModelWhitelistSelector 组件支持多平台联合过滤
         - 新增 platforms 属性支持传入多个平台
         - 添加 normalizedPlatforms 计算属性统一处理单平台和多平台场景
         - availableOptions 根据选中的多个平台动态联合过滤模型列表
         - fillRelated 功能支持一次性填充多个平台的相关模型
      
      3. 模型映射预设改为动态生成
         - filteredPresets 改用 getPresetMappingsByPlatform 从统一模型源按平台动态生成
         - 不再依赖弹窗中的手写预设列表
      
      现在的行为:
      - UI 显示什么模型,勾选什么模型,传给后端的就是什么模型
      - 彻底解决了批量编辑链路上"显示与实际不一致"的问题
      - 模型列表和映射预设始终与系统定义保持同步
      19d3ecc7
    • IanShaw027's avatar
      fix: 兼容部分限额字段为空的情况 #1021 · c31974c9
      IanShaw027 authored
      修复在填写限额时,如果不填写完整的三个限额额度(日限额、周限额、月限额)就会报错的问题。
      
      变更内容:
      - 后端:添加 optionalLimitField 类型处理空值和空字符串,兼容部分限额字段为空的情况
      - 前端:添加 normalizeOptionalLimit 函数规范化限额输入,将空值、空字符串和无效数字统一处理为 null
      c31974c9
    • erio's avatar
      fix(i18n): correct insufficient balance error hint text · 6177fa5d
      erio authored
      Remove misleading "upstream" wording - the error is about client API key
      user balance, not upstream account balance.
      6177fa5d
    • erio's avatar
      feat(ops): add ignore insufficient balance errors toggle and extract error constants · cfe72159
      erio authored
      - Add 5th error filter switch IgnoreInsufficientBalanceErrors to suppress
        upstream insufficient balance / insufficient_quota errors from ops log
      - Extract hardcoded error strings into package-level constants for
        shouldSkipOpsErrorLog, normalizeOpsErrorType, classifyOpsPhase, and
        classifyOpsIsBusinessLimited
      - Define ErrNoAvailableAccounts sentinel error and replace all
        errors.New("no available accounts") call sites
      - Update tests to use require.ErrorIs with the sentinel error
      cfe72159