1. 03 Feb, 2026 3 commits
  2. 02 Feb, 2026 2 commits
    • bayma888's avatar
      feat(admin): add user balance/concurrency history modal · 606e29d3
      bayma888 authored
      - Add new API endpoint GET /admin/users/:id/balance-history with pagination and type filter
      - Add SumPositiveBalanceByUser for calculating total recharged amount
      - Create UserBalanceHistoryModal component with:
        - User info header (email, username, created_at, current balance, notes, total recharged)
        - Type filter dropdown (all/balance/admin_balance/concurrency/admin_concurrency/subscription)
        - Quick deposit/withdraw buttons
        - Paginated history list with icons and colored values
      - Add instant tooltip on balance column for better UX
      - Add z-index prop to BaseDialog for modal stacking control
      - Update i18n translations (zh/en)
      606e29d3
    • shaw's avatar
      feat: 重新设计公告系统为Header铃铛通知 · bbdc8663
      shaw authored
      - 新增 AnnouncementBell 组件,支持 Modal 弹窗和 Markdown 渲染
      - 移除 Dashboard 横幅和独立公告页面
      - 铃铛位置在 Header 文档按钮左侧,显示未读红点
      - 支持点击查看详情、标记已读、全部已读等操作
      - 完善国际化,移除所有硬编码中文
      - 修复 AnnouncementTargetingEditor watch 循环问题
      bbdc8663
  3. 30 Jan, 2026 1 commit
    • ducky's avatar
      feat(announcements): add admin/user announcement system · b7f69844
      ducky authored
      Implements announcements end-to-end (admin CRUD + read status, user list + mark read) with OR-of-AND targeting. Also breaks the ent<->service import cycle by moving schema-facing constants/targeting into a new domain package.
      b7f69844
  4. 29 Jan, 2026 1 commit
    • yangjianbo's avatar
      feat(sora): 新增 Sora 平台支持并修复高危安全和性能问题 · 13262a56
      yangjianbo authored
      
      
      新增功能:
      - 新增 Sora 账号管理和 OAuth 认证
      - 新增 Sora 视频/图片生成 API 网关
      - 新增 Sora 任务调度和缓存机制
      - 新增 Sora 使用统计和计费支持
      - 前端增加 Sora 平台配置界面
      
      安全修复(代码审核):
      - [SEC-001] 限制媒体下载响应体大小(图片 20MB、视频 200MB),防止 DoS 攻击
      - [SEC-002] 限制 SDK API 响应大小(1MB),防止内存耗尽
      - [SEC-003] 修复 SSRF 风险,添加 URL 验证并强制使用代理配置
      
      BUG 修复(代码审核):
      - [BUG-001] 修复 for 循环内 defer 累积导致的资源泄漏
      - [BUG-002] 修复图片并发槽位获取失败时已持有锁未释放的永久泄漏
      
      性能优化(代码审核):
      - [PERF-001] 添加 Sentinel Token 缓存(3 分钟有效期),减少 PoW 计算开销
      
      技术细节:
      - 使用 io.LimitReader 限制所有外部输入的大小
      - 添加 urlvalidator 验证防止 SSRF 攻击
      - 使用 sync.Map 实现线程安全的包级缓存
      - 优化并发槽位管理,添加 releaseAll 模式防止泄漏
      
      影响范围:
      - 后端:新增 Sora 相关数据模型、服务、网关和管理接口
      - 前端:新增 Sora 平台配置、账号管理和监控界面
      - 配置:新增 Sora 相关配置项和环境变量
      Co-Authored-By: default avatarClaude Sonnet 4.5 <noreply@anthropic.com>
      13262a56
  5. 28 Jan, 2026 1 commit
  6. 26 Jan, 2026 1 commit
    • shaw's avatar
      feat(auth): 实现 TOTP 双因素认证功能 · 1245f07a
      shaw authored
      新增功能:
      - 支持 Google Authenticator 等应用进行 TOTP 二次验证
      - 用户可在个人设置中启用/禁用 2FA
      - 登录时支持 TOTP 验证流程
      - 管理后台可全局开关 TOTP 功能
      
      安全增强:
      - TOTP 密钥使用 AES-256-GCM 加密存储
      - 添加 TOTP_ENCRYPTION_KEY 配置项,必须手动配置才能启用功能
      - 防止服务重启导致加密密钥变更使用户无法登录
      - 验证失败次数限制,防止暴力破解
      
      配置说明:
      - Docker 部署:在 .env 中设置 TOTP_ENCRYPTION_KEY
      - 非 Docker 部署:在 config.yaml 中设置 totp.encryption_key
      - 生成密钥命令:openssl rand -hex 32
      1245f07a
  7. 24 Jan, 2026 1 commit
    • shaw's avatar
      feat(subscription): 订阅过期状态自动更新与服务端排序 · b0aa2354
      shaw authored
      - 新增 SubscriptionExpiryService 定时任务,每分钟更新过期订阅状态
      - 订阅列表支持服务端排序(按过期时间、状态、创建时间)
      - 实时显示正确的过期状态,无需等待定时任务
      - 允许对已过期订阅进行续期操作
      - DataTable 组件支持 serverSideSort 模式
      b0aa2354
  8. 23 Jan, 2026 1 commit
  9. 21 Jan, 2026 1 commit
  10. 19 Jan, 2026 5 commits
    • Gemini Wen's avatar
      style(admin): 统一列设置按钮位置到刷新按钮右侧 · 53534d39
      Gemini Wen authored
      
      
      将订阅管理和账号管理页面的列设置按钮移动到刷新按钮右侧,
      与用户管理页面保持一致的布局。
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      53534d39
    • 墨颜's avatar
      fix(user): 普通用户接口不返回备注 · 00d9fbd2
      墨颜 authored
      - 用户侧 dto.User 移除 notes 字段,避免泄露管理员备注\n- 新增 dto.AdminUser 并调整 /admin/users 系列接口使用\n- 前端拆分 User/AdminUser,管理端用户页面使用 AdminUser\n- 更新契约测试:/api/v1/auth/me 响应不包含 notes
      00d9fbd2
    • 墨颜's avatar
      fix(groups): 用户分组不下发内部路由信息 · 4f4c9679
      墨颜 authored
      - 普通用户 Group DTO 移除 model_routing/account_count/account_groups,避免泄露内部路由与账号信息\n- 新增 AdminGroup DTO,并仅在管理员分组接口返回完整字段\n- 前端拆分 Group/AdminGroup,管理端页面与 API 使用 AdminGroup\n- 增加 /api/v1/groups/available 契约测试,防止回归
      4f4c9679
    • 墨颜's avatar
      fix(usage): 用户使用记录不下发账号计费倍率 · 2f6f7586
      墨颜 authored
      - 将 usage log DTO 拆分为用户/管理员两类
      - 用户接口不返回 account_rate_multiplier/ip_address/account
      - 管理员接口保留管理员字段
      - 补充契约测试防止回归
      2f6f7586
    • shaw's avatar
      feat: 新增会话ID伪装功能,优化日志系统 · ccfeaeb2
      shaw authored
      - 新增 session_id_masking_enabled 配置,启用后将在15分钟内固定
        metadata.user_id 中的 session ID
      - TLS fingerprint 模块日志从自定义 debugLog 迁移到 slog
      - main.go 添加 slog 初始化,根据 gin mode 设置日志级别
      - 前端创建/编辑账号模态框添加会话ID伪装开关
      - 多语言支持(中英文)
      ccfeaeb2
  11. 18 Jan, 2026 7 commits
  12. 17 Jan, 2026 2 commits
  13. 16 Jan, 2026 4 commits
    • IanShaw027's avatar
      fix(gemini): 更新 Gemini 模型列表配置 · 28e46e0e
      IanShaw027 authored
      - 移除已弃用的 1.5 系列模型
      - 调整模型优先级顺序(2.0 Flash > 2.5 Flash > 2.5 Pro > 3.0 Preview)
      - 同步前后端模型配置
      - 更新相关测试用例和默认模型选择逻辑
      28e46e0e
    • shaw's avatar
      feat: 添加5h窗口费用控制和会话数量限制 · 73794233
      shaw authored
      - 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制
      - 支持账号级别的并发会话数量限制
      - 使用Redis缓存窗口费用(30秒TTL)减少数据库压力
      - 费用计算基于标准费用(不含账号倍率)
      73794233
    • yangjianbo's avatar
      perf(前端): 优化页面加载性能和用户体验 · 92234857
      yangjianbo authored
      
      
      - 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载
      - 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc)
      - 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍
      - 集成 Vitest 测试框架,添加 40 个单元测试和集成测试
      - 支持 prefers-reduced-motion 和暗色模式
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      92234857
    • yangjianbo's avatar
      perf(前端): 优化页面加载性能和用户体验 · 8efa3617
      yangjianbo authored
      
      
      - 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载
      - 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc)
      - 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍
      - 集成 Vitest 测试框架,添加 40 个单元测试和集成测试
      - 支持 prefers-reduced-motion 和暗色模式
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      8efa3617
  14. 15 Jan, 2026 2 commits
    • yangjianbo's avatar
      feat: merge dev · 90bce60b
      yangjianbo authored
      90bce60b
    • IanShaw027's avatar
      fix(mobile): 优化移动端表格、操作栏和弹窗显示 · 20c71acb
      IanShaw027 authored
      **问题描述**:
      - 表格在移动端显示列过多,需要横向滚动,内容被截断
      - 顶部操作栏按钮拥挤,占用过多空间
      - 弹窗表单在小屏幕上布局不合理
      - "更多"操作菜单定位错误,位置过高或超出屏幕
      - 滚动页面时菜单不会自动关闭,与卡片分离
      
      **解决方案**:
      
      1. **DataTable 组件 - 移动端卡片视图**
         - 在 < 768px 时自动切换到卡片布局
         - 每个表格行渲染为独立卡片,所有字段清晰可见
         - 操作按钮在卡片底部,触摸目标足够大
         - 支持深色模式,包含加载和空状态
         - 自动应用于所有使用 DataTable 的管理页面
      
      2. **UsersView 顶部操作栏优化**
         - 移动端:搜索框全宽 + 次要按钮显示为图标 + 创建按钮突出
         - 桌面端:保持原有布局(图标 + 文字)
         - 使用响应式 Tailwind classes
      
      3. **UserCreateModal 弹窗优化**
         - 余额/并发数字段:移动端单列,桌面端双列
         - 弹窗边距:移动端 8px,桌面端 16px
      
      4. **操作菜单定位修复**
         - UsersView: 移动端菜单居中对齐按钮,智能定位
         - AccountsView: 移动端菜单优先显示在按钮下方
         - 所有情况下确保菜单不超出屏幕边界
         - 添加滚动监听,滚动时自动关闭菜单
      
      **影响范围**:
      - 所有使用 DataTable 的管理页面(8 个页面)自动获得移动端卡片视图
      - 用户管理和账号管理页面的操作菜单定位优化
      - 创建用户弹窗的响应式布局优化
      
      **技术要点**:
      - 使用 Tailwind 响应式断点(md:, sm:)
      - 触摸目标 ≥ 44px
      - 完整支持深色模式
      - 向后兼容,桌面端保持原有布局
      20c71acb
  15. 14 Jan, 2026 3 commits
  16. 13 Jan, 2026 1 commit
  17. 12 Jan, 2026 4 commits