"backend/vscode:/vscode.git/clone" did not exist on "f22bc59fe37c9708c5751e6aace6913995d6f251"
  1. 05 Mar, 2026 2 commits
  2. 02 Mar, 2026 1 commit
    • QTom's avatar
      feat(gateway): 双模式用户消息队列 — 串行队列 + 软性限速 · a9285b8a
      QTom authored
      新增 UMQ (User Message Queue) 双模式支持:
      - serialize: 账号级分布式串行锁 + RPM 自适应延迟(严格限流)
      - throttle: 仅 RPM 自适应前置延迟,不阻塞并发(软性限速)
      
      后端:
      - config: 新增 Mode 字段,保留 Enabled 向后兼容
      - service: 新增 UserMessageQueueService(Lua 锁/延迟算法/清理 worker)
      - repository: 新增 UserMsgQueueCache(Redis Lua acquire/release/force-release)
      - handler: 新增 UserMsgQueueHelper(SSE ping + 等待循环 + throttle)
      - gateway: 按 mode 分支集成 serialize/throttle 逻辑
      - lint: 修复 gofmt rewrite rules、errcheck 类型断言、staticcheck QF1012
      
      前端:
      - 三态选择器 UI(关闭/软性限速/串行队列)替代 toggle 开关
      - BulkEdit 支持 null 语义(不修改)
      - i18n 中英文文案
      
      通过 6 轮专家评审(42 次 review)、golangci-lint、单元测试、集成测试。
      a9285b8a
  3. 01 Mar, 2026 5 commits
    • erio's avatar
    • erio's avatar
      fix: use i18n for mixed-channel warning messages and improve bulk pre-check · 3a04552f
      erio authored
      - BulkUpdate handler: add structured details to 409 response
      - BulkUpdateAccounts: simplify to global pre-check before any DB write;
        remove per-account snapshot tracking which is no longer needed
      - MixedChannelError.Error(): restore English message for API compatibility
      - BulkEditAccountModal: use t() with details for both pre-check and 409
        fallback paths instead of displaying raw backend strings
      - Update test to verify pre-check blocks on existing group conflicts
      3a04552f
    • erio's avatar
      fix: handle mixed channel warning for multi-platform bulk edit · dde3b59e
      erio authored
      Previously, preCheckMixedChannelRisk() skipped when selectedPlatforms
      had more than one entry, and the catch block in submitBulkUpdate had no
      409 handling — so multi-platform conflicts just showed a generic error.
      
      - Rename canPreCheck(): only call pre-check API for single-platform
        antigravity/anthropic selections (API requires a single platform param)
      - Pass `built` into preCheckMixedChannelRisk() so pendingUpdatesForConfirm
        is set before returning false
      - submitBulkUpdate: add 409 mixed_channel_warning catch as fallback for
        multi-platform case, saving baseUpdates for retry
      - Remove needsMixedChannelCheck() gate on confirm_mixed_channel_risk flag;
        use mixedChannelConfirmed alone so multi-platform retry also works
      dde3b59e
    • erio's avatar
      fix: bulk edit mixed channel warning not showing confirmation dialog · 947800b9
      erio authored
      The response interceptor in client.ts transforms errors into plain
      objects {status, code, message}, but catch blocks were checking
      error.response?.status (AxiosError format) which never matched.
      
      - Add error field passthrough in client.ts interceptor
      - Refactor BulkEditAccountModal to use pre-check API (checkMixedChannelRisk)
        before submit, matching the single edit flow
      - Fix EditAccountModal catch blocks to use interceptor error format
      - Add bulk-update mixed channel unit tests
      947800b9
    • erio's avatar
      feat: bulk update accounts pre-check mixed channel risk with confirm dialog · 7aa4c083
      erio authored
      - Move mixed channel check before any DB writes in BulkUpdateAccounts
      - Return 409 from BulkUpdate handler for MixedChannelError
      - Add ConfirmDialog to BulkEditAccountModal for mixed channel warning
      - Update mixed channel warning message to Chinese
      7aa4c083
  4. 28 Feb, 2026 7 commits
  5. 27 Feb, 2026 2 commits
  6. 26 Feb, 2026 3 commits
  7. 25 Feb, 2026 1 commit
  8. 24 Feb, 2026 7 commits
    • erio's avatar
      feat: optimize model rate limit indicator layout with short aliases · a3ff317f
      erio authored
      - Change layout from fixed 3-column grid to vertical-first responsive
        columns (1 col for ≤4 items, 2 cols for ≤8, 3 cols for 9+)
      - Add short aliases for all known model scope keys (e.g. COpus46, CSon46,
        G3PH, G3F) to reduce badge width
      - Display countdown timer directly on each badge (supports h/m/s)
      - Retain legacy scope aliases for backward compatibility
      a3ff317f
    • erio's avatar
      fix: enable Gemini model_mapping UI and extend warmup to Antigravity · d8d4b0c0
      erio authored
      - Remove Gemini platform exclusion from model restriction UI in
        Create/Edit account modals (Gemini now supports model_mapping)
      - Remove outdated Gemini model passthrough info cards
      - Add model_mapping field to GeminiCredentials type
      - Extend warmup request interception toggle to Antigravity platform
      - Remove redundant try/catch in API key account creation
      - Remove noisy gateway.request_completed debug log
      - Reorganize Gemini model mapping sections in constants.go
      d8d4b0c0
    • cagedbird043's avatar
      076c0006
    • erio's avatar
      fix(frontend): add Gemini models to bulk edit and fix status grid layout · fb3ef5f3
      erio authored
      Add Gemini model presets to BulkEditAccountModal for bulk model mapping.
      Fix AccountStatusIndicator model rate limit grid layout using proper
      grid container.
      fb3ef5f3
    • erio's avatar
      feat: add mixed-channel precheck API for account-group binding · aaac1aac
      erio authored
      Add a dedicated CheckMixedChannel endpoint that allows the frontend
      to pre-validate mixed channel risk before submitting create/update
      requests. This improves UX by showing warnings earlier in the flow
      instead of only after form submission.
      
      Backend changes:
      - Add CheckMixedChannelRequest struct and CheckMixedChannel handler
      - Register POST /check-mixed-channel route
      - Expose CheckMixedChannelRisk as public method on AdminService
      - Simplify Create/Update 409 responses (remove details/require_confirmation)
      - Add comprehensive handler tests and stub methods
      
      Frontend changes:
      - Add checkMixedChannelRisk API function and TypeScript types
      - Refactor CreateAccountModal to precheck before step transition and submission
      - Refactor EditAccountModal to precheck before update submission
      - Replace pendingPayload pattern with action-based dialog flow
      aaac1aac
    • erio's avatar
      fix: fix intercept_warmup_requests config not being saved · 59898c16
      erio authored
      Extract applyInterceptWarmup utility to unify all credential building
      call sites:
      - Fix upstream account creation missing intercept_warmup_requests write
      - Fix apikey edit mode missing else-branch to clear the setting
      - Add backend unit test for IsInterceptWarmupEnabled
      - Add frontend unit test for credentialsBuilder
      59898c16
    • erio's avatar
      fix: update Claude usage window to support 4.6 models · fdf9f682
      erio authored
      The usage progress bar only matched claude-sonnet-4-5 and
      claude-opus-4-5-thinking. After upgrading to 4.6, the backend returns
      claude-sonnet-4-6/claude-opus-4-6-thinking which didn't match,
      causing the Claude usage bar to not display.
      
      - Add claude-sonnet-4-6 and claude-opus-4-6-thinking to the match list
      - Rename label from "C4.5" to "Claude" for future-proofing
      fdf9f682
  9. 22 Feb, 2026 1 commit
    • yangjianbo's avatar
      fix(codex): 修复额度窗口过期展示并补齐高覆盖测试 · 10636d8a
      yangjianbo authored
      - 后端新增绝对重置时间字段计算(codex_5h_reset_at/codex_7d_reset_at)
      
      - 前端统一窗口解析逻辑:绝对时间优先,updated_at+seconds 回退,过期自动归零
      
      - 新增后端与前端单元测试,覆盖关键边界与异常场景
      10636d8a
  10. 21 Feb, 2026 2 commits
  11. 19 Feb, 2026 2 commits
  12. 18 Feb, 2026 1 commit
  13. 17 Feb, 2026 1 commit
  14. 14 Feb, 2026 2 commits
  15. 13 Feb, 2026 1 commit
  16. 12 Feb, 2026 2 commits