erio
fb3ef5f388
fix(frontend): add Gemini models to bulk edit and fix status grid layout
...
Add Gemini model presets to BulkEditAccountModal for bulk model mapping.
Fix AccountStatusIndicator model rate limit grid layout using proper
grid container.
2026-02-24 18:55:25 +08:00
erio
86bc76e352
test: add warmup request interception unit tests
...
Add comprehensive tests for warmup request interception behavior
covering Antigravity accounts with various credential configurations.
2026-02-24 18:55:11 +08:00
erio
644058174e
fix(gemini): enable model_mapping filtering for Gemini API Key accounts
...
Remove the special case that bypassed model-supported checks for Gemini
API Key accounts, allowing model_mapping to filter requests properly.
Add tests for multiplatform model filtering behavior.
2026-02-24 18:54:59 +08:00
erio
4573868c08
fix(antigravity): bill with mapped model and use final model key for rate limiting
...
- Use mapped model (billingModel) instead of original request model for billing
- Use resolveFinalAntigravityModelKey for 429 rate limit model key,
ensuring rate limit records match the actual upstream model
- Add regression tests for both fixes
2026-02-24 18:08:19 +08:00
erio
09166a52f8
refactor: extract failover error handling into FailoverState
...
- Extract duplicated failover logic from gateway_handler.go (3 places)
and gemini_v1beta_handler.go into shared failover_loop.go
- Introduce FailoverState with HandleFailoverError and HandleSelectionExhausted
- Move helper functions (needForceCacheBilling, sleepWithContext) into failover_loop.go
- Add comprehensive unit tests (32+ test cases)
- Delete redundant gateway_handler_single_account_retry_test.go
2026-02-24 18:08:04 +08:00
erio
aaac1aaca9
feat: add mixed-channel precheck API for account-group binding
...
Add a dedicated CheckMixedChannel endpoint that allows the frontend
to pre-validate mixed channel risk before submitting create/update
requests. This improves UX by showing warnings earlier in the flow
instead of only after form submission.
Backend changes:
- Add CheckMixedChannelRequest struct and CheckMixedChannel handler
- Register POST /check-mixed-channel route
- Expose CheckMixedChannelRisk as public method on AdminService
- Simplify Create/Update 409 responses (remove details/require_confirmation)
- Add comprehensive handler tests and stub methods
Frontend changes:
- Add checkMixedChannelRisk API function and TypeScript types
- Refactor CreateAccountModal to precheck before step transition and submission
- Refactor EditAccountModal to precheck before update submission
- Replace pendingPayload pattern with action-based dialog flow
2026-02-24 17:16:53 +08:00
erio
59898c16c6
fix: fix intercept_warmup_requests config not being saved
...
Extract applyInterceptWarmup utility to unify all credential building
call sites:
- Fix upstream account creation missing intercept_warmup_requests write
- Fix apikey edit mode missing else-branch to clear the setting
- Add backend unit test for IsInterceptWarmupEnabled
- Add frontend unit test for credentialsBuilder
2026-02-24 16:48:16 +08:00
erio
0dacdf480b
fix: distinguish client disconnection from upstream retry failure
...
Before this change, when a client disconnected mid-request, the error
message was "Upstream request failed after retries", which is misleading
and pollutes error logs. Now we check context.Err() to return a more
accurate "Client disconnected" message for both Claude and Gemini
forward paths.
2026-02-24 16:45:08 +08:00
erio
fdf9f68298
fix: update Claude usage window to support 4.6 models
...
The usage progress bar only matched claude-sonnet-4-5 and
claude-opus-4-5-thinking. After upgrading to 4.6, the backend returns
claude-sonnet-4-6/claude-opus-4-6-thinking which didn't match,
causing the Claude usage bar to not display.
- Add claude-sonnet-4-6 and claude-opus-4-6-thinking to the match list
- Rename label from "C4.5" to "Claude" for future-proofing
2026-02-24 16:44:18 +08:00
shaw
7be5e1734c
fix: 修复 CI 集成测试因 context deadline exceeded 未被跳过而失败
...
skipIfExternalServiceUnavailable 检查了 "timeout" 但 Go 的
context.DeadlineExceeded 错误信息是 "context deadline exceeded",
不包含 "timeout" 子串,导致外部服务不可达时测试直接失败而非跳过。
2026-02-24 15:04:04 +08:00
shaw
bfe414670f
chore: update version
2026-02-24 14:51:10 +08:00
shaw
e435a46db5
fix: 修复 antigravity UserAgent 重构遗留的编译错误和测试不匹配
...
- oauth.go: GetUserAgent() 缺少闭合大括号导致语法错误
- client_test.go/oauth_test.go: UserAgent 变量已重构为 GetUserAgent(),更新测试引用
- model_rate_limit_test.go: gemini-3-pro-preview 映射目标已更新为 gemini-3.1-pro-high,同步测试
2026-02-24 14:44:57 +08:00
Wesley Liddick
84bd881e68
Merge pull request #608 from cagedbird043/feature/gemini-3-to-3.1-mapping
...
feat: Antigravity 将 gemini-3-pro 路由升级到 gemini-3.1-pro
2026-02-24 14:08:42 +08:00
Wesley Liddick
a901117b8c
Merge pull request #605 from cagedbird043/feature/antigravity-user-agent-configurable
...
feat: 让 Antigravity User-Agent 版本可通过环境变量配置
2026-02-24 14:08:25 +08:00
Wesley Liddick
6bccb8a8a6
Merge branch 'main' into feature/antigravity-user-agent-configurable
2026-02-24 14:01:43 +08:00
Wesley Liddick
3de1e0e485
Merge pull request #597 from 0-don/feat/add-gemini-3.1-pro-preview
...
feat: add gemini-3.1-pro-preview to model lists
2026-02-24 12:25:17 +08:00
shaw
492b852a1f
fix: 幂等测试使用哈希值避免超出 VARCHAR(64) 限制
...
idempotency_key_hash 和 request_fingerprint 列为 VARCHAR(64),
而 uniqueTestValue 生成的字符串含完整测试名可能超过 64 字符。
新增 hashedTestValue 辅助函数对测试值做 SHA-256 哈希,
与生产逻辑一致且严格符合列宽限制。
2026-02-24 12:18:07 +08:00
shaw
8a137405d4
fix: 移除重复的 ptrTime 函数声明修复编译错误
...
idempotency_repo_integration_test.go 中的 ptrTime 与
scheduler_cache.go 中的声明冲突,导致 repository 包测试构建失败。
2026-02-24 11:49:01 +08:00
shaw
f431f5ed72
fix: 恢复backend-ci.yml
2026-02-24 11:37:14 +08:00
shaw
980fc9608f
fix: 修复日志重复输出及清理冗余迁移逻辑
...
- logger: sinkCore 包装 tee core 时绕过了子 core 的 Check 级别过滤,
导致每条日志同时写入 stdout 和 stderr,表现为启动日志重复显示。
修复为正确委托 Check 给内部 tee core,sinkCore.Write 仅负责 sink 转发。
- migration 054: 移除冗余的遗留列回填逻辑,migration 009 已完成数据迁移,
直接删除遗留列即可。
2026-02-24 11:31:19 +08:00
Wesley Liddick
07be258dca
Merge pull request #603 from mt21625457/release
...
feat : 大幅度的性能优化 和 新增了很多功能
2026-02-24 11:08:47 +08:00
Wesley Liddick
dbdb29594c
Merge pull request #606 from Nek0Neko/fix/user-balance-modal-dark-mode
...
fix: 更新余额显示样式以支持深色模式
2026-02-24 10:35:52 +08:00
yangjianbo
53d55bb92f
feat: 工程清理
2026-02-24 10:19:58 +08:00
cagedbird043
3f3efff065
feat: 添加 Gemini 3→3.1 前端快捷按钮及后端映射(包括 3.1 透传)
2026-02-23 23:06:07 +08:00
Leon-mac
57b078f2c7
fix: 更新余额显示样式以支持深色模式
2026-02-23 22:27:09 +08:00
cagedbird043
1fc6ef3d4f
feat: 让 User-Agent 版本可通过环境变量 ANTIGRAVITY_USER_AGENT_VERSION 配置,默认 1.84.2
2026-02-23 21:17:35 +08:00
yangjianbo
c2567831d9
fix(service): 使用 os.Root 修复 Sora 存储路径告警
...
- 将媒体写入和删除切换为 os.Root 沙箱 API
- 移除旧的路径拼接校验辅助函数并收敛删除逻辑
- 调整并新增相关单元测试覆盖删除行为
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 16:06:04 +08:00
yangjianbo
e8671fd7c2
fix(service): 修复 Sora 媒体落地路径穿越风险
...
- 新增安全路径拼接校验,确保目标文件仍在下载目录内
- 清理失败下载文件时复用安全校验,避免不安全删除路径
- 增加扩展名白名单归一化与相关单元测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 14:42:07 +08:00
yangjianbo
4950ee48a0
chore(version): 更新版本号至 0.1.83.4
2026-02-23 13:07:34 +08:00
yangjianbo
5fa45f3b8c
feat(idempotency): 为关键写接口接入幂等并完善并发容错
2026-02-23 12:45:37 +08:00
yangjianbo
3b6584cc8d
chore(version): 更新版本号至 0.1.83.3
2026-02-22 22:20:42 +08:00
yangjianbo
7be1195281
feat(api-key): 增加 API Key 上次使用时间并补齐测试
2026-02-22 22:07:17 +08:00
yangjianbo
1fae8d086d
fix(codex): 补回窗口绝对重置时间类型定义
2026-02-22 21:06:22 +08:00
yangjianbo
10636d8a1f
fix(codex): 修复额度窗口过期展示并补齐高覆盖测试
...
- 后端新增绝对重置时间字段计算(codex_5h_reset_at/codex_7d_reset_at)
- 前端统一窗口解析逻辑:绝对时间优先,updated_at+seconds 回退,过期自动归零
- 新增后端与前端单元测试,覆盖关键边界与异常场景
2026-02-22 21:04:52 +08:00
yangjianbo
c67f02eaf0
fix(jwt): 修复仅配置小时时会话提前失效问题
...
- 将 jwt.access_token_expire_minutes 默认值改为 0,未显式配置时回退 expire_hour
- 调整配置校验为允许 0,仅拒绝负数并补充优先级注释
- 新增配置与认证服务单元测试,覆盖分钟优先与小时回退场景
- 更新示例配置文档,明确分钟/小时优先级与默认行为
2026-02-22 17:37:35 +08:00
yangjianbo
0b32f61062
fix(ratelimit): 清除限流时同步清理临时不可调度状态
...
- ClearRateLimit 增加清理 temp_unschedulable 与缓存\n- 新增 ClearRateLimit 相关单元测试覆盖成功与失败分支
2026-02-22 17:00:29 +08:00
yangjianbo
2ee6c26676
fix(gateway): 修复粘性会话预取分组错配并优化并发等待热路径
2026-02-22 16:43:33 +08:00
yangjianbo
a89477ddf5
perf(gateway): 优化热点路径并补齐高覆盖测试
2026-02-22 13:31:30 +08:00
yangjianbo
2f520c8d47
docs(readme): 说明 Sora 功能暂不可用及技术问题
...
- 在 README.md 增加 Sora 暂不可用状态说明
- 在 README_CN.md 增加对应中文说明并标注恢复后可选
- 明确 gateway.sora_* 配置当前仅为预留项
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 13:06:56 +08:00
yangjianbo
33db7a0fb6
feat(gateway): 引入使用量记录有界 worker 池与自动扩缩容
...
- 新增 UsageRecordWorkerPool,支持有界队列、溢出降级策略与自动扩缩容
- 将 Gateway/OpenAI/Sora/Gemini 使用量记录改为提交到统一任务池执行
- 增加 usage_record 配置默认值与校验规则,并补充配置与任务提交相关测试
- 注入并托管 worker 池生命周期,服务退出时统一 StopAndWait
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 12:56:57 +08:00
yangjianbo
50b9897182
docs(perf): 新增后端热点API性能优化审计行动计划
2026-02-22 12:54:21 +08:00
yangjianbo
f8ac5538e2
Merge branch 'test' into release
2026-02-21 22:00:16 +08:00
yangjianbo
1985be26b2
fix(gateway): 恢复 Anthropic 透传流数据间隔超时保护并补充回归测试
2026-02-21 16:54:44 +08:00
yangjianbo
fdfc739b72
fix(anthropic): 补齐创建账号页自动透传开关并验证后端透传参数
...
- 在 CreateAccountModal 为 Anthropic API Key 增加自动透传开关
- 创建请求写入 extra.anthropic_passthrough 并补充状态重置
- 新增 AccountHandler 单测,验证 extra 字段从请求到 CreateAccountInput 的透传
2026-02-21 14:40:31 +08:00
yangjianbo
bde9dbc57a
feat(anthropic): 支持 API Key 自动透传并优化透传链路性能
...
- 新增 Anthropic API Key 自动透传开关与后端透传分支(仅替换认证)
- 账号编辑页新增自动透传开关,默认关闭
- 优化透传性能:SSE usage 解析 gjson 快路径、减少请求体重复拷贝、优化流式写回与非流式 usage 解析
- 补充单元测试与 benchmark,确保 Claude OAuth 路径不受影响
2026-02-21 14:16:18 +08:00
yangjianbo
80510e5f16
fix(gateway): 明确旧协议接口不支持的错误提示
...
将 /v1/chat/completions 的拦截文案改为旧协议不支持,避免误导为会路由到 Sora。
明确要求客户端改用 /v1/responses。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 12:36:43 +08:00
yangjianbo
773f20ed5e
Merge branch 'test' into release
2026-02-21 12:15:30 +08:00
yangjianbo
f323174d07
fix(openai): 修复 codex_cli_only 误拦截并补充 codex 家族识别
...
- 为 codex_cli_only 增加 originator 判定通道,避免仅依赖 User-Agent 误拦截
- 扩展官方客户端家族标识,补充 codex_chatgpt_desktop 等常见前缀
- 新增并更新单元测试与网关透传回归测试,覆盖 UA 与 originator 组合场景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 12:06:24 +08:00
yangjianbo
987589eabc
Merge branch 'test' into release
2026-02-21 10:07:53 +08:00
0-don
1004bd86ac
feat: add gemini-3.1-pro-preview to model lists
...
Add the newly released Gemini 3.1 Pro model to both the
native API fallback list and the admin UI test model dropdown.
2026-02-20 23:27:30 +01:00