1. 18 Mar, 2026 1 commit
    • shaw's avatar
      feat: add 529 overload cooldown toggle and duration settings in admin gateway page · bf3d6c0e
      shaw authored
      Move 529 overload cooldown configuration from config file to admin
      settings UI. Adds an enable/disable toggle and configurable cooldown
      duration (1-120 min) under /admin/settings gateway tab, stored as
      JSON in the settings table.
      
      When disabled, 529 errors are logged but accounts are no longer
      paused from scheduling. Falls back to config file value when DB
      is unreachable or settingService is nil.
      bf3d6c0e
  2. 15 Mar, 2026 1 commit
  3. 14 Mar, 2026 1 commit
    • SsageParuders's avatar
      refactor: merge bedrock-apikey into bedrock with auth_mode credential · 4644af2c
      SsageParuders authored
      Consolidate two separate channel types (bedrock + bedrock-apikey) into
      a single "AWS Bedrock" channel. Authentication mode is now distinguished
      by credentials.auth_mode ("sigv4" | "apikey") instead of separate types.
      
      Backend:
      - Remove AccountTypeBedrockAPIKey constant
      - IsBedrock() simplified; IsBedrockAPIKey() checks auth_mode
      - Add IsAPIKeyOrBedrock() helper to eliminate repeated type checks
      - Extend pool mode, quota scheduling, and billing to bedrock
      - Add RetryableOnSameAccount to handleBedrockUpstreamErrors
      - Add "bedrock" scope to Beta Policy for independent control
      
      Frontend:
      - Merge two buttons into one "AWS Bedrock" with auth mode radio
      - Badge displays "Anthropic | AWS"
      - Pool mode and quota limit UI available for bedrock
      - Quota display in account list (usage bars, capacity badges, reset)
      - Remove all bedrock-apikey type references
      4644af2c
  4. 11 Mar, 2026 1 commit
    • John Doe's avatar
      feat: add Backend Mode toggle to disable user self-service · 6826149a
      John Doe authored
      
      
      Add a system-wide "Backend Mode" that disables user self-registration
      and self-service while keeping admin panel and API gateway fully
      functional. When enabled, only admin can log in; all user-facing
      routes return 403.
      
      Backend:
      - New setting key `backend_mode_enabled` with atomic cached reads (60s TTL)
      - BackendModeUserGuard middleware blocks non-admin authenticated routes
      - BackendModeAuthGuard middleware blocks registration/password-reset auth routes
      - Login/Login2FA/RefreshToken handlers reject non-admin when enabled
      - TokenPairWithUser struct for role-aware token refresh
      - 20 unit tests (middleware + service layer)
      
      Frontend:
      - Router guards redirect unauthenticated users to /login
      - Admin toggle in Settings page
      - Login page hides register link and footer in backend mode
      - 9 unit tests for router guard logic
      - i18n support (en/zh)
      
      27 files changed, 833 insertions(+), 17 deletions(-)
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      6826149a
  5. 10 Mar, 2026 1 commit
  6. 07 Mar, 2026 1 commit
  7. 04 Mar, 2026 1 commit
  8. 03 Mar, 2026 1 commit
    • QTom's avatar
      feat(gateway): 系统设置控制未分组 Key 调度 — Handler 层中间件拦截 · 0c7cbe35
      QTom authored
      新增系统设置 allow_ungrouped_key_scheduling(默认关闭),
      未分组的 API Key 在网关请求时直接返回 403,
      由 RequireGroupAssignment 中间件统一拦截,
      支持 Anthropic / Google 两种错误格式响应。
      
      全栈实现:常量 → 结构体 → 解析/更新/初始化 → DTO → 管理接口 →
      中间件 → 路由注册 → 前端设置界面 + i18n。
      0c7cbe35
  9. 02 Mar, 2026 1 commit
  10. 01 Mar, 2026 2 commits
    • PMExtra's avatar
      feat(settings): add default subscriptions for new users · 7e020822
      PMExtra authored
      - add default subscriptions to admin settings
      
      - auto-assign subscriptions on register and admin user creation
      
      - add validation/tests and align settings UI with subscription selector patterns
      7e020822
    • QTom's avatar
      feat(gateway): 添加 Claude Code 客户端最低版本检查功能 · 4280aca8
      QTom authored
      - 通过 User-Agent 识别 Claude Code 客户端并提取版本号
      - 在网关层验证客户端版本是否满足管理员配置的最低要求
      - 在管理后台提供版本要求配置选项(英文/中文双语)
      - 实现原子缓存 + singleflight 防止并发问题和 thundering herd
      - 使用 context.WithoutCancel 隔离 DB 查询,避免客户端断连影响缓存
      - 双 TTL 策略:60s 正常、5s 错误恢复,保证性能与可用性
      - 仅检查 Claude Code 客户端,其他客户端不受影响
      - 添加完整单元测试覆盖版本提取、比对、上下文操作
      4280aca8
  11. 28 Feb, 2026 1 commit
  12. 03 Feb, 2026 1 commit
  13. 02 Feb, 2026 1 commit
  14. 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
  15. 28 Jan, 2026 1 commit
  16. 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
  17. 24 Jan, 2026 1 commit
    • shaw's avatar
      feat(auth): 密码重置邮件队列化与限流优化 · 9cc83525
      shaw authored
      - 邮件发送改为异步队列处理,避免并发导致发送失败
      - 新增 Email 维度限流(30秒冷却期),防止邮件轰炸
      - Token 验证使用常量时间比较,防止时序攻击
      - 重构代码消除冗余,提取公共验证逻辑
      9cc83525
  18. 20 Jan, 2026 1 commit
    • shaw's avatar
      feat(promo-code): complete promo code feature implementation · 192efb84
      shaw authored
      - Add promo_code_enabled field to SystemSettings and PublicSettings DTOs
      - Add promo code validation in registration flow
      - Add admin settings UI for promo code configuration
      - Add i18n translations for promo code feature
      192efb84
  19. 19 Jan, 2026 1 commit
  20. 12 Jan, 2026 3 commits
    • ianshaw's avatar
      refactor(settings): 简化流超时配置,移除冗余字段 · 0c528095
      ianshaw authored
      - 移除 TimeoutSeconds 字段,超时判定由网关配置控制
      - 默认禁用流超时处理功能
      0c528095
    • ianshaw's avatar
      feat(gateway): 添加流超时处理机制 · 2a0758bd
      ianshaw authored
      - 添加 StreamTimeoutSettings 配置结构体和系统设置
      - 实现 TimeoutCounterCache Redis 计数器用于累计超时次数
      - 在 RateLimitService 添加 HandleStreamTimeout 方法
      - 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理
      - 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout
      - 添加前端配置界面到系统设置页面
      - 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口
      
      默认配置:
      - 启用:true
      - 超时阈值:60秒
      - 处理方式:临时不可调度
      - 暂停时长:5分钟
      - 触发阈值:3次
      - 阈值窗口:10分钟
      2a0758bd
    • shaw's avatar
      50de5d05
  21. 10 Jan, 2026 1 commit
    • Edric Li's avatar
      feat(settings): add home content customization and config injection · 5265b12c
      Edric Li authored
      - Add home_content setting for custom homepage (HTML or iframe URL)
      - Inject public settings into index.html to eliminate page flash
      - Support ETag caching with automatic invalidation on settings update
      - Add Vite plugin for dev mode settings injection
      - Refactor HomeView to use appStore instead of local API calls
      5265b12c
  22. 09 Jan, 2026 4 commits
  23. 04 Jan, 2026 1 commit
    • IanShaw027's avatar
      fix: 修复代码审查报告中的4个关键问题 · f60f943d
      IanShaw027 authored
      1. 资源管理冗余(ForwardGemini双重Close)
         - 错误分支读取body后立即关闭原始body,用内存副本重新包装
         - defer添加nil guard,避免重复关闭
         - fallback成功时显式关闭旧body,确保连接释放
      
      2. Schema校验丢失(cleanJSONSchema移除字段无感知)
         - 新增schemaCleaningWarningsEnabled()支持环境变量控制
         - 实现warnSchemaKeyRemovedOnce()在非release模式下告警
         - 移除关键验证字段时输出warning,包含key和path
      
      3. UI响应式风险(UsersView操作菜单硬编码定位)
         - 菜单改为先粗定位、渲染后测量、再clamp到视口内
         - 添加max-height + overflow-auto,超出时可滚动
         - 增强交互:点击其它位置/滚动/resize自动关闭或重新定位
      
      4. 身份补丁干扰(TransformClaudeToGemini默认注入)
         - 新增TransformOptions + TransformClaudeToGeminiWithOptions
         - 系统设置新增enable_identity_patch、identity_patch_prompt
         - 完整打通handler/dto/service/frontend配置链路
         - 默认保持启用,向后兼容现有行为
      
      测试:
      - 后端单测全量通过:go test ./...
      - 前端类型检查通过:npm run typecheck
      f60f943d
  24. 02 Jan, 2026 1 commit
    • yangjianbo's avatar
      feat(安全): 强化安全策略与配置校验 · bd4bf008
      yangjianbo authored
      - 增加 CORS/CSP/安全响应头与代理信任配置
      
      - 引入 URL 白名单与私网开关,校验上游与价格源
      
      - 改善 API Key 处理与网关错误返回
      
      - 管理端设置隐藏敏感字段并优化前端提示
      
      - 增加计费熔断与相关配置示例
      
      测试: go test ./...
      bd4bf008
  25. 29 Dec, 2025 1 commit
    • shaw's avatar
      refactor: 移除旧版数据库配置的简易模式实现 · 31fef105
      shaw authored
      移除与 PR #66 冲突的旧版简易模式实现(commit 7d4b7dee)。
      新版简易模式通过 run_mode 配置文件/环境变量控制,无需数据库设置。
      
      后端变更:
      - 移除 SettingKeySimpleMode 常量
      - 移除 SystemSettings/PublicSettings 中的 SimpleMode 字段
      - 移除 setting_handler 中的简易模式切换逻辑
      - 移除 userService 依赖(不再需要自动设置管理员并发数)
      
      前端变更:
      - 移除 appStore.simpleMode 状态
      - 移除设置页面的"使用模式"设置区块
      - 移除 GroupsView 中的简易模式相关逻辑
      - 移除相关国际化文案
      31fef105
  26. 28 Dec, 2025 1 commit
    • shaw's avatar
      feat: 添加简单模式功能 · 7d4b7dee
      shaw authored
      新增简单模式设置,适合个人使用场景:
      - 隐藏多用户管理相关菜单(用户管理、兑换码等)
      - 自动关闭用户注册功能
      - 管理员并发数自动设为无限制(99999)
      - 侧边栏根据模式动态调整菜单项
      
      同时优化分组页面的"专属分组"功能,添加帮助提示说明使用场景
      7d4b7dee
  27. 26 Dec, 2025 1 commit
  28. 24 Dec, 2025 1 commit
    • shaw's avatar
      feat(settings): 添加文档链接配置功能 · 2e7818d6
      shaw authored
      - 后台系统设置新增文档链接(doc_url)配置项
      - 首页顶部导航栏显示文档链接图标(条件渲染)
      - Footer区域添加文档链接和GitHub链接
      - 支持中英文国际化
      2e7818d6
  29. 20 Dec, 2025 1 commit
  30. 18 Dec, 2025 1 commit