1. 03 Feb, 2026 2 commits
    • liuxiongfeng's avatar
      fix(gemini): 导出 DummyThoughtSignature 常量并修复跨账号签名验证 · 6baf8108
      liuxiongfeng authored
      - 将 dummyThoughtSignature 改为导出的 DummyThoughtSignature 常量,供跨包使用
      - 修改 gemini_native_signature_cleaner.go 将删除签名改为替换为 dummy 签名
        这样可以跳过 Gemini 3 的签名验证,解决粘性会话切换账号时的验证失败问题
      - 更新相关测试文件
      
      Fixes: 粘性会话切换账号时 thoughtSignature 验证失败导致 400 错误
      6baf8108
    • song's avatar
      chore: gofmt · f1aafbc0
      song authored
      f1aafbc0
  2. 02 Feb, 2026 1 commit
  3. 30 Jan, 2026 1 commit
  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 3 commits
  6. 27 Jan, 2026 4 commits
  7. 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
  8. 25 Jan, 2026 1 commit
    • ianshaw's avatar
      fix(antigravity): 修复 Gemini 模型 thoughtSignature 被错误覆盖的问题 · 8c123339
      ianshaw authored
      ## 问题描述
      
      在使用 Gemini 模型(gemini-3-flash-preview)时,出现 400 错误:
      "Unable to submit request because Thought signature is not valid"
      
      ## 根本原因
      
      在 `request_transformer.go` 的 `buildParts()` 函数中:
      - 对于 `tool_use` 和 `thinking` 块,当 `allowDummyThought=true`(Gemini 模型)时
      - 代码会无条件将客户端传入的真实 `thoughtSignature` 覆盖成 dummy 值
      - 导致 Gemini API 验证签名失败(签名与上下文不匹配)
      
      ## 修复方案
      
      修改 signature 处理逻辑:
      1. **优先透传真实 signature**:如果客户端提供了有效的 signature,保留它
      2. **缺失时才使用 dummy**:只有在 signature 缺失且是 Gemini 模型时,才使用 dummy signature
      3. **Claude 模型特殊处理**:将 dummy signature 视为缺失,避免透传到需要真实签名的链路
      
      ## 修改内容
      
      ### request_transformer.go
      - `thinking` 块(第 367-386 行):优先透传真实 signature
      - `tool_use` 块(第 411-418 行):优先透传真实 signature
      
      ### request_transformer_test.go
      - 修改测试用例名称,反映新的行为
      - 新增测试用例验证"缺失时才使用 dummy"的逻辑
      
      ## 影响范围
      
      - 修复 Gemini 模型在多轮对话中使用 tool_use 时的签名验证错误
      - 不影响 Claude 模型的现有行为
      - 提高跨账号切换时的稳定性
      
      相关问题:#[issue_number]
      8c123339
  9. 23 Jan, 2026 3 commits
  10. 22 Jan, 2026 1 commit
    • 0xff26b9a8's avatar
      fix(antigravity): 修复非流式 Claude To Antigravity 响应内容为空的问题 · e756064c
      0xff26b9a8 authored
      - 修复 TransformGeminiToClaude 的 JSON 解析逻辑,当 V1InternalResponse
        解析成功但 candidates 为空时,尝试直接解析为 GeminiResponse 格式
      - 修复 handleClaudeStreamToNonStreaming 收集流式响应的逻辑,累积所有
        chunks 的内容而不是只保留最后一个(最后一个 chunk 通常 text 为空)
      - 新增 mergeCollectedPartsToResponse 函数,合并所有类型的 parts
        (text、thinking、functionCall、inlineData),保持原始顺序
      - 连续的普通 text parts 合并为一个,thinking/functionCall/inlineData 保持原样
      e756064c
  11. 21 Jan, 2026 3 commits
  12. 20 Jan, 2026 2 commits
  13. 19 Jan, 2026 2 commits
    • shaw's avatar
      fix: 更新Claude OAuth授权配置以匹配最新规范 · 090c8981
      shaw authored
      - 更新TokenURL和RedirectURI为platform.claude.com
      - 更新scope定义,区分浏览器URL和内部API调用
      - 修正state/code_verifier生成算法使用base64url编码
      - 修正授权URL参数顺序并添加code=true
      - 更新token交换请求头匹配官方实现
      - 清理未使用的类型和函数
      090c8981
    • 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
  14. 18 Jan, 2026 2 commits
  15. 17 Jan, 2026 6 commits
  16. 16 Jan, 2026 7 commits