1. 03 Feb, 2026 8 commits
    • JIA-ss's avatar
      fix(api): 修复 thinking 块被意外修改导致的 400 错误 · ad90bb46
      JIA-ss authored
      
      
      问题描述:
      使用扩展思考功能时,偶现以下错误:
      "thinking or redacted_thinking blocks in the latest assistant message cannot be modified"
      
      根因分析:
      当代理服务修改请求体中的某些字段时(如 metadata.user_id、model),
      使用 map[string]any 解析整个 JSON 后重新序列化,导致:
      1. 字段顺序改变(Go map 序列化按字母排序)
      2. 数字格式变化(如 1.0 → 1)
      3. Unicode 转义变化
      
      Claude API 对 thinking 块进行字节级验证,任何变化都会触发错误。
      
      修复内容:
      1. identity_service.go - RewriteUserID/RewriteUserIDWithMasking
         使用 json.RawMessage 保留其他字段的原始字节
      
      2. gateway_service.go - replaceModelInBody
         使用 json.RawMessage 保留其他字段的原始字节
      
      3. gateway_service.go - normalizeClaudeOAuthRequestBody
         保留 messages 的原始字节,跳过包含 thinking 块的消息修改
      
      4. gateway_service.go - isThinkingBlockSignatureError
         添加 "cannot be modified" 错误检测,触发自动重试
      
      5. antigravity_gateway_service.go - isSignatureRelatedError
         添加 "cannot be modified" 错误检测
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      ad90bb46
    • ducky's avatar
      feat(usage): add reasoning effort column · 53ee6383
      ducky authored
      53ee6383
    • liuxiongfeng's avatar
      feat(ops): 运维界面展示 Antigravity 账号 scope 级别限流统计 · 6e8eff9b
      liuxiongfeng authored
      在运维监控的并发/排队卡片中,为 Antigravity 平台账号显示各 scope
      (claude/gemini_text/gemini_image) 的限流数量统计,便于管理员了解
      哪些 scope 正在被限流。
      
      Cherry-picked from slovx2/sub2api: 08d6dc52
      6e8eff9b
    • liuxiongfeng's avatar
      feat(antigravity): 默认开启按配额域限流,避免整个账号被锁定 · 56949a58
      liuxiongfeng authored
      将 GATEWAY_ANTIGRAVITY_429_SCOPE_LIMIT 的默认值从关闭改为开启。
      当 Gemini 模型触发 429 限流时,只会限制对应的配额域(gemini_text),
      而 Claude 和 gemini_image 仍可继续使用,提高账号利用率。
      56949a58
    • liuxiongfeng's avatar
      feat(antigravity): map all gemini-2.5 to gemini-3 series · 7d256879
      liuxiongfeng authored
      Antigravity 上游不再支持 gemini-2.5 系列,统一映射到 gemini-3:
      - gemini-2.5-flash → gemini-3-flash
      - gemini-2.5-flash-lite → gemini-3-flash
      - gemini-2.5-flash-thinking → gemini-3-flash
      - gemini-2.5-flash-image → gemini-3-pro-image
      - gemini-2.5-pro → gemini-3-pro-high
      - gemini-2.5-pro-preview → gemini-3-pro-high
      - gemini-2.5-pro-exp → gemini-3-pro-high
      7d256879
    • liuxiongfeng's avatar
      test: update gemini-2.5-pro mapping test case · f9512fda
      liuxiongfeng authored
      Update test expectation to reflect new mapping:
      gemini-2.5-pro -> gemini-3-pro-high
      f9512fda
    • liuxiongfeng's avatar
      feat(antigravity): map gemini-2.5-pro to gemini-3-pro-high · beb63cb1
      liuxiongfeng authored
      Add prefix mapping rules for gemini-2.5-pro variants:
      - gemini-2.5-pro -> gemini-3-pro-high
      - gemini-2.5-pro-preview -> gemini-3-pro-high
      - gemini-2.5-pro-exp -> gemini-3-pro-high
      beb63cb1
    • shuike's avatar
      feat: 增加邀请码注册功能 · 6c86501d
      shuike authored
      6c86501d
  2. 02 Feb, 2026 9 commits
  3. 30 Jan, 2026 5 commits
  4. 29 Jan, 2026 3 commits
  5. 28 Jan, 2026 10 commits
  6. 27 Jan, 2026 2 commits
  7. 26 Jan, 2026 3 commits
    • song's avatar
      feat(gemini): 为 Gemini 原生平台添加图片计费支持 · 0059a232
      song authored
      对齐 Antigravity 平台的图片计费逻辑:
      - 添加 extractImageSize() 方法提取图片尺寸
      - Forward() 和 ForwardNative() 返回 ImageCount/ImageSize
      - 支持分组自定义图片价格和倍率
      0059a232
    • ianshaw's avatar
      fix(ratelimit): 修复 OpenAI usage_limit_reached 错误的重置时间解析 · a55cfebd
      ianshaw authored
      - 问题:OpenAI 的 usage_limit_reached 错误(需 37 小时重置)被错误地设置为 5 分钟
      - 原因:handle429 只检查 Anthropic 响应头,没有解析 OpenAI 响应体中的 resets_in_seconds
      - 修复:新增 parseOpenAIRateLimitResetTime 函数解析 OpenAI 响应体
      - 影响:避免调度器不断尝试已达配额上限的账户
      a55cfebd
    • 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