song
6941315432
feat: add antigravity web search support
2026-01-18 01:09:40 +08:00
song
8b071cc665
fix(antigravity): restore signature retry and base order
2026-01-17 22:50:50 +08:00
song
959f6c538a
fix(antigravity): remove thinking sanitation
2026-01-17 22:21:48 +08:00
song
217b3b59c0
fix(antigravity): drop MarkUnavailable
2026-01-17 21:59:32 +08:00
song
ec916a3197
fix(antigravity): remove signature retry
2026-01-17 21:56:57 +08:00
song
22eb72e0f9
fix(antigravity): restore url fallback behavior
2026-01-17 21:50:09 +08:00
song
07ba64c666
fix(antigravity): handle url-level 429 without failover
2026-01-17 21:37:32 +08:00
song
f22bc59fe3
fix(antigravity): route signature retry through url fallback
2026-01-17 21:15:33 +08:00
song
0ce8666cc0
Revert "Revert "fix(antigravity): Claude 模型透传 tool_use 的 signature""
...
This reverts commit 5427a9e422 .
2026-01-17 21:09:59 +08:00
song
5427a9e422
Revert "fix(antigravity): Claude 模型透传 tool_use 的 signature"
...
This reverts commit 81b865b89d .
2026-01-17 20:41:06 +08:00
song
5e9f5efbe3
chore: log antigravity signature retry 429
2026-01-17 18:22:53 +08:00
song
a7a0017aa8
chore: gofmt antigravity gateway service
2026-01-17 18:22:43 +08:00
song
9078b17a41
test: add antigravity rate limit coverage
2026-01-17 18:15:45 +08:00
song
14a3694a9a
chore: set antigravity fallback cooldown default to 1
2026-01-17 18:03:45 +08:00
song
b9b4db3df5
Merge upstream/main
2026-01-17 18:00:07 +08:00
ianshaw
bc1d7edc58
fix(ops): 统一 request-errors 和 SLA 的错误分类逻辑
...
修复 request-errors 接口与 Dashboard Overview SLA 计算不一致的问题:
- errors 视图现在只排除业务限制错误(余额不足、并发限制等)
- 上游 429/529 错误现在包含在 errors 视图中,与 SLA 计算保持一致
- excluded 视图现在只显示业务限制错误
这确保了 request-errors 接口和 Dashboard 的 error_count_sla 使用相同的过滤逻辑。
2026-01-17 17:57:40 +08:00
song
5a6f60a954
fix(antigravity): 区分 URL 级别和账户配额级别的 429 限流
...
- "Resource has been exhausted" → URL 级别限流,立即切换 URL
- "exhausted your capacity on this model" → 账户配额限流,重试 3 次(指数退避)后标记限流
2026-01-17 11:11:18 +08:00
IanShaw027
a61cc2cb24
fix(openai): 增强 Codex 工具过滤和参数标准化
...
- codex_transform: 过滤无效工具,支持 Responses-style 和 ChatCompletions-style 格式
- tool_corrector: 添加 fetch 工具映射,修正 bash/edit 参数命名规范
2026-01-17 11:00:07 +08:00
song
31933c8a60
fix: 删除未使用的字段修复 lint 错误
2026-01-17 10:40:28 +08:00
song
78bccd032d
refactor(antigravity): 提取公共重试循环函数减少重复代码
...
- 新增 antigravityRetryLoop 函数统一处理 Forward 和 ForwardGemini 的重试逻辑
- 429 日志增加 base_url 字段便于调试
- 删除重复的 shouldRetryUpstreamError 方法
2026-01-17 10:28:31 +08:00
IanShaw027
ae21db77ec
fix(openai): 使用 prompt_cache_key 兜底粘性会话
...
opencode 请求不带 session_id/conversation_id,导致粘性会话失效。现在按 header 优先、prompt_cache_key 兜底生成 session hash,并补充单测验证优先级。
2026-01-17 02:31:16 +08:00
song
ac7503d95f
fix(antigravity): 429 时也切换 URL 重试
...
- 429 优先切换到下一个 URL 重试
- 只有所有 URL 都返回 429 时才限流账户并返回错误
- 与 client.go 中的逻辑保持一致
2026-01-17 02:14:57 +08:00
song
69c4b17a9b
feat(antigravity): 动态 URL 排序,最近成功的优先使用
...
- URLAvailability 新增 lastSuccess 字段追踪最近成功的 URL
- GetAvailableURLs 返回列表时优先放置 lastSuccess
- 所有 Antigravity API 调用成功后调用 MarkSuccess 更新优先级
2026-01-17 01:54:14 +08:00
IanShaw027
a7165b0f73
fix(group): SIMPLE 模式启动补齐默认分组
2026-01-17 01:53:51 +08:00
song
cc0fca35ec
feat(antigravity): 同步 Antigravity-Manager 的请求逻辑
...
- System Prompt: 改为简短版,添加 OpenCode 过滤、MCP XML 协议注入、SYSTEM_PROMPT_END 标记
- HTTP Headers: 只保留 Content-Type/Authorization/User-Agent,移除 Accept 和 Host
- User-Agent: 改为 antigravity/1.11.9 windows/amd64
- requestType: 动态判断 (agent/web_search/image_gen)
- BaseURLs: 添加 daily sandbox 备用 URL
- Fallback: 扩展触发条件 (429/408/404/5xx)
2026-01-17 01:49:42 +08:00
Wesley Liddick
dae0d5321f
Merge pull request #315 from mt21625457/main
...
perf(前端): 优化页面加载性能和用户体验 和 修复静态 import 导致入口文件膨胀问题
2026-01-16 23:55:45 +08:00
shaw
34415db7ed
fix: 修复 api_contract_test 缺少 SessionLimitCache 参数的问题
2026-01-16 23:53:54 +08:00
IanShaw027
28e46e0e7c
fix(gemini): 更新 Gemini 模型列表配置
...
- 移除已弃用的 1.5 系列模型
- 调整模型优先级顺序(2.0 Flash > 2.5 Flash > 2.5 Pro > 3.0 Preview)
- 同步前后端模型配置
- 更新相关测试用例和默认模型选择逻辑
2026-01-16 23:47:42 +08:00
shaw
7379423325
feat: 添加5h窗口费用控制和会话数量限制
...
- 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制
- 支持账号级别的并发会话数量限制
- 使用Redis缓存窗口费用(30秒TTL)减少数据库压力
- 费用计算基于标准费用(不含账号倍率)
2026-01-16 23:36:52 +08:00
yangjianbo
74a3c74514
perf(Caddy): 添加静态资源长期缓存配置
...
- 为 /assets/* 设置 1 年缓存 + immutable 标记
- 包含 logo.png 和 favicon.ico
- 移除可能干扰缓存的 Pragma/Expires 头
效果:
- 浏览器缓存命中后不再发送请求
- Cloudflare CDN 可正确缓存静态资源
- 重复访问页面秒开
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 22:49:05 +08:00
程序猿MT
3d6d131889
Merge branch 'Wei-Shaw:main' into main
2026-01-16 22:31:14 +08:00
yangjianbo
b0569d873a
perf(路由预加载): 修复静态 import 导致入口文件膨胀问题
...
问题:
- 原实现使用静态 import() 映射表
- Rollup 静态分析时将所有 37 个视图组件引用打包进 index.js
- 导致首次加载时需要解析大量未使用的 import 语句
修复:
- 移除静态 import() 映射,改用纯路径字符串邻接表
- 通过 router.getRoutes() 动态获取组件的 import 函数
- 延迟初始化 routePrefetch,首次导航时才创建实例
- 更新测试文件使用 mock router
效果:
- index.js 中动态 import 引用从 37 个减少到 1 个
- 首次加载不再包含未使用的视图组件引用
- 41 个测试全部通过
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 22:07:39 +08:00
yangjianbo
d9433699db
Merge branch 'dev' of https://github.com/mt21625457/aicodex2api into dev
2026-01-16 21:49:28 +08:00
yangjianbo
92234857f7
perf(前端): 优化页面加载性能和用户体验
...
- 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载
- 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc)
- 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍
- 集成 Vitest 测试框架,添加 40 个单元测试和集成测试
- 支持 prefers-reduced-motion 和暗色模式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 21:48:57 +08:00
yangjianbo
8efa361728
perf(前端): 优化页面加载性能和用户体验
...
- 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载
- 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc)
- 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍
- 集成 Vitest 测试框架,添加 40 个单元测试和集成测试
- 支持 prefers-reduced-motion 和暗色模式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 21:43:39 +08:00
song
1be3eacad5
feat(scheduling): 兜底层账户选择策略可配置
...
- gateway.scheduling.fallback_selection_mode: "last_used"(默认) 或 "random"
- last_used: 按最后使用时间排序(轮询效果)
- random: 同优先级内随机选择
2026-01-16 20:47:07 +08:00
song
34d6b0a601
feat(gateway): 账户切换次数和 Antigravity 限流时间可配置
...
- gateway.max_account_switches: 账户切换最大次数,默认 10
- gateway.max_account_switches_gemini: Gemini 账户切换次数,默认 3
- gateway.antigravity_fallback_cooldown_minutes: Antigravity 429 fallback 限流时间,默认 5 分钟
- Antigravity 429 不再重试,直接标记账户限流
2026-01-16 20:18:30 +08:00
yangjianbo
eb432a49ed
perf(前端): 移除 Google Fonts 改用系统字体栈
...
- 删除 Google Fonts @import,解决国内访问阻塞问题
- 使用 system-ui 优先的系统字体栈
- 添加中文字体支持(苹方、冬青黑、微软雅黑)
- 移除 Inter 字体专用的 font-feature-settings
此改动可显著提升国内用户的页面加载速度,避免因 Google Fonts
被墙导致的渲染阻塞问题。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 19:49:33 +08:00
Wesley Liddick
04811c00cb
Merge pull request #313 from mt21625457/main
...
fix(ci): 修复各类bug
2026-01-16 19:30:07 +08:00
Wesley Liddick
06093d4f79
Merge pull request #311 from longgexx/main
...
添加分组级别模型路由配置功能(Anthropic平台)
2026-01-16 19:22:12 +08:00
song
2055a60bcb
fix(antigravity): 429 重试3次后限流账户
...
- 收到429后重试最多3次(指数退避)
- 3次都失败后调用 handleUpstreamError 限流账户
- 移除无效的 URL fallback 逻辑(当前只有一个URL)
2026-01-16 18:51:07 +08:00
song
cc892744bc
fix(antigravity): 429 fallback 改为 5 分钟并限流整个账户
...
- fallback 时间从 1 分钟改为 5 分钟
- fallback 时直接限流整个账户而非仅限制 quota scope
2026-01-16 18:09:34 +08:00
longgexx
577ee16108
Merge branch 'main' of github.com:longgexx/sub2api
2026-01-16 17:35:44 +08:00
longgexx
392a8ac7ea
修复格式问题。
2026-01-16 17:35:17 +08:00
longgexx
226920064b
Merge branch 'Wei-Shaw:main' into main
2026-01-16 17:26:54 +08:00
longgexx
19865b865f
feat(group): 添加分组级别模型路由配置功能
...
支持为分组配置模型路由规则,可以指定特定模型模式优先使用的账号列表。
- 新增 model_routing 字段存储路由配置(JSONB格式,支持通配符匹配)
- 新增 model_routing_enabled 字段控制是否启用路由
- 更新后端 handler/service/repository 支持路由配置的增删改查
- 更新前端 GroupsView 添加路由配置界面
- 添加数据库迁移脚本 040/041
2026-01-16 17:26:05 +08:00
yangjianbo
e3f812c2fe
fix(安全): CSP 策略自动增强,无需配置文件修改即可生效
...
- 添加 enhanceCSPPolicy() 自动增强任何 CSP 策略
- 自动添加 nonce 占位符(如果策略中没有)
- 自动添加 Cloudflare Insights 域名
- 即使配置文件使用旧策略也能正常工作
- 添加 enhanceCSPPolicy 和 addToDirective 单元测试
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 17:20:39 +08:00
yangjianbo
c9f79dee66
feat(安全): 实现 CSP nonce 支持解决内联脚本安全问题
...
- 添加 GenerateNonce() 生成加密安全的随机 nonce
- SecurityHeaders 中间件为每个请求生成唯一 nonce
- CSP 策略支持 __CSP_NONCE__ 占位符动态替换
- embed_on.go 注入的内联脚本添加 nonce 属性
- 添加 Cloudflare Insights 域名到 CSP 允许列表
- 添加完整单元测试,覆盖率达到 89.8%
解决的问题:
- 内联脚本违反 CSP script-src 指令
- Cloudflare Insights beacon.min.js 加载被阻止
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 17:05:49 +08:00
yangjianbo
c659788022
fix(前端路由): 添加 chunk 加载错误自动恢复机制
...
- 检测动态导入模块加载失败错误
- 自动刷新页面获取最新资源
- 使用 sessionStorage 防止无限刷新循环(10秒冷却)
- 解决前端重新部署后用户缓存导致的加载失败问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 16:20:10 +08:00
yangjianbo
aeb987ceb1
Merge branch 'dev'
2026-01-16 15:35:38 +08:00