1. 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
  2. 28 Feb, 2026 7 commits
  3. 27 Feb, 2026 2 commits
  4. 26 Feb, 2026 3 commits
  5. 25 Feb, 2026 1 commit
  6. 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
  7. 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
  8. 21 Feb, 2026 2 commits
  9. 19 Feb, 2026 2 commits
  10. 18 Feb, 2026 1 commit
  11. 17 Feb, 2026 1 commit
  12. 14 Feb, 2026 2 commits
  13. 13 Feb, 2026 1 commit
  14. 12 Feb, 2026 3 commits
  15. 11 Feb, 2026 1 commit
    • kyx236's avatar
      feat(admin): Add group filtering for account listings · fe1d46a8
      kyx236 authored
      - Add groupID parameter to ListAccounts and ListWithFilters methods
      - Implement account filtering by group ID in repository query
      - Add group query parameter parsing in account handler
      - Update all ListAccounts/ListWithFilters call sites with groupID parameter
      - Add group filter UI component to AccountTableFilters
      - Add i18n translations for group filter label in English and Chinese
      - Update API contract and test stubs to reflect new signature
      - Enable filtering accounts by their assigned groups in admin panel
      fe1d46a8
  16. 10 Feb, 2026 1 commit
    • Tian's avatar
      feat(antigravity): 支持 Refresh Token 批量导入创建 OAuth 账号 · c8f87a9c
      Tian authored
      后端新增 ValidateRefreshToken service 方法和 POST /oauth/refresh-token 端点,
      前端新增 API/Composable/UI 集成,OAuthAuthorizationFlow i18n 动态化,
      支持在 Antigravity 创建账号时批量粘贴 Refresh Token 自动验证并创建账号。
      c8f87a9c