"vscode:/vscode.git/clone" did not exist on "bac408044fcb4526dbeb939badd78b52f6f6e852"
  1. 09 Jan, 2026 1 commit
    • Edric Li's avatar
      feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking · 90798f14
      Edric Li authored
      - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support)
      - Add IP address logging to usage logs (admin-only visibility)
      - Remove billing_type column from usage logs UI (redundant)
      - Use generic "Access denied" error message for security
      
      Backend:
      - New ip package with IP/CIDR validation and matching utilities
      - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs)
      - Middleware IP restriction check after API key validation
      - Input validation for IP/CIDR patterns on create/update
      
      Frontend:
      - API key form with enable toggle for IP restriction
      - Shield icon indicator in table for keys with IP restriction
      - Removed billing_type filter and column from usage views
      90798f14
  2. 08 Jan, 2026 1 commit
    • Edric Li's avatar
      feat(usage): add User-Agent column to usage logs · 70fcbd70
      Edric Li authored
      - Add user_agent field to UsageLog DTO and mapper
      - Display User-Agent column in admin and user usage tables
      - Add formatUserAgent helper to show friendly client names
      - Include user_agent in Excel export
      - Remove request_id column from admin usage table
      70fcbd70
  3. 07 Jan, 2026 1 commit
    • shaw's avatar
      fix(admin/usage): 恢复成本 Tooltip 明细并优化账号筛选 · d5ba7b80
      shaw authored
      问题修复:
      - 恢复 Cost Tooltip 的成本分项明细 (input_cost, output_cost, cache 成本)
      - 修复 Token Tooltip 双分隔线显示问题
      - 修复 Tooltip 翻译键缺失问题,新增 costDetails/tokenDetails
      - 恢复 Excel 导出格式化 (aoa_to_sheet + 翻译列头)
      
      功能优化:
      - 账号筛选从前端搜索改为后端搜索,避免一次加载 1000 条数据
      - 行为与用户/API Key 筛选保持一致 (debounce + 后端分页)
      d5ba7b80
  4. 06 Jan, 2026 1 commit
    • shaw's avatar
      feat(admin/usage): 优化管理员用量页面功能和体验 · 015974a2
      shaw authored
      后端改进:
      - 新增 GetStatsWithFilters 方法支持完整筛选条件
      - Stats 端点支持 account_id, group_id, model, stream, billing_type 参数
      - 统一使用 filters 结构体,移除冗余的分支逻辑
      
      前端改进:
      - 统计卡片添加"所选范围内"文字提示
      - 优化总消费显示格式,清晰展示实际费用和标准计费
      - Token 和费用列添加问号图标 tooltip 显示详细信息
      - API Key 搜索框体验优化:点击即显示下拉选项
      - 选择用户后自动加载该用户的所有 API Key
      015974a2
  5. 05 Jan, 2026 2 commits
    • IanShaw027's avatar
      refactor(frontend): 完成所有组件的内联SVG统一替换为Icon组件 · 4251a5a4
      IanShaw027 authored
      - 扩展 Icon.vue 组件,新增 60+ 图标路径
        - 导航类: arrowRight, arrowLeft, arrowUp, arrowDown, chevronUp, externalLink
        - 状态类: checkCircle, xCircle, exclamationCircle, exclamationTriangle, infoCircle
        - 用户类: user, userCircle, userPlus, users
        - 文档类: document, clipboard, copy, inbox
        - 操作类: download, upload, filter, sort
        - 安全类: key, lock, shield
        - UI类: menu, calendar, home, terminal, gift, creditCard, mail
        - 数据类: chartBar, trendingUp, database, cube
        - 其他: bolt, sparkles, cloud, server, sun, moon, book 等
      
      - 重构 56 个 Vue 组件,用 Icon 组件替换内联 SVG
        - 净减少约 2200 行代码
        - 提升代码可维护性和一致性
        - 统一图标样式和尺寸管理
      4251a5a4
    • ianshaw's avatar
      fix(frontend): 恢复 UsageTable 缺失的列和功能 · e67dbbdb
      ianshaw authored
      - 恢复 API Key、账号、分组、类型、计费类型等列
      - 恢复 Token 详情显示(含缓存读写)
      - 恢复首Token时间、耗时列
      - 恢复请求ID列及复制功能
      e67dbbdb
  6. 04 Jan, 2026 1 commit
    • IanShaw027's avatar
      refactor(frontend): comprehensive split of large view files into modular components · e99063e1
      IanShaw027 authored
      - Split UsersView.vue into UserCreateModal, UserEditModal, UserApiKeysModal, etc.
      - Split UsageView.vue into UsageStatsCards, UsageFilters, UsageTable, etc.
      - Split DashboardView.vue into UserDashboardStats, UserDashboardCharts, etc.
      - Split AccountsView.vue into AccountTableActions, AccountTableFilters, etc.
      - Standardized TypeScript types across new components to resolve implicit 'any' and 'never[]' errors.
      - Improved overall frontend maintainability and code clarity.
      e99063e1