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
yangjianbo
03f69dd394
fix(proxy): 将401/405质量检测结果调整为告警
2026-02-20 14:42:07 +08:00
yangjianbo
d14c24bbf3
feat(proxy): 持久化质量检测结果并在列表展示
2026-02-20 12:13:04 +08:00
yangjianbo
48dc011b2a
test(admin,service): 修复代理质量与计费单测口径
2026-02-19 21:39:31 +08:00
yangjianbo
b341810e60
fix(sora): 优化 challenge 重试与调试日志
2026-02-19 21:38:04 +08:00
yangjianbo
46d9aee6dd
feat(proxy,sora): 增强代理质量检测与Sora稳定性并修复审查问题
2026-02-19 21:18:35 +08:00
yangjianbo
36a1a7998b
feat(sora): 强制Sora走curl_cffi sidecar并完善校验测试
2026-02-19 20:29:31 +08:00
yangjianbo
40498aac9d
feat(sora): 对齐sora2api分镜角色去水印与挑战错误治理
2026-02-19 20:04:10 +08:00
yangjianbo
440b87094a
fix(sora): 增强 Cloudflare 挑战识别并收敛 Sora 请求链路
...
- 在 failover 场景透传上游响应头并识别 Cloudflare challenge/cf-ray
- 统一 Sora 任务请求的 UA 与代理使用,sentinel 与业务请求保持一致
- 修复流式错误事件 JSON 转义问题并补充相关单元测试
2026-02-19 15:09:58 +08:00
yangjianbo
0832dfb32e
fix(sora): 默认开启 TLS 指纹并支持显式关闭
2026-02-19 08:30:54 +08:00
yangjianbo
be09188bda
feat(account-test): 增强 Sora 账号测试能力探测与弹窗交互
...
- 后端新增 Sora2 邀请码与剩余额度探测,并补充对应结果解析
- Sora 测试流程补齐请求头与 Cloudflare 场景提示,完善单测覆盖
- 前端测试弹窗对 Sora 账号改为免选模型流程,并新增中英文提示文案
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 08:29:51 +08:00
yangjianbo
5d2219d299
fix(sora): 修复令牌刷新请求格式与流式错误转义
...
- 将 refresh_token 恢复请求改为表单编码并匹配 OAuth 约定
- 流式错误改为 JSON 序列化,避免消息含引号或换行导致 SSE 非法
- 补充 Sora token 恢复与 failover 流式错误透传回归测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 08:23:00 +08:00
yangjianbo
900cce20a1
feat(sora): 对齐 Sora OAuth 流程并隔离网关请求路径
...
- 新增并接通 Sora 专用 OAuth 接口与 ST/RT 换取能力
- 完成前端 Sora 授权、RT/ST 手动导入与账号创建流程
- 强化 Sora token 恢复、转发日志与网关路由隔离行为
- 补充后端服务层与路由层相关测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 08:02:56 +08:00
yangjianbo
36bb327024
fix: 更新 ListWithFilters 方法以支持 groupID 参数
2026-02-18 20:52:35 +08:00
yangjianbo
5d9667d27a
Merge branch 'main' into test
...
# Conflicts:
# backend/cmd/server/VERSION
# backend/ent/migrate/schema.go
# backend/ent/mutation.go
# backend/ent/runtime/runtime.go
# backend/ent/usagelog.go
# backend/ent/usagelog/usagelog.go
# backend/ent/usagelog/where.go
# backend/ent/usagelog_create.go
# backend/ent/usagelog_update.go
# backend/internal/repository/usage_log_repo.go
# backend/internal/server/api_contract_test.go
# backend/internal/server/middleware/cors.go
# backend/internal/service/gateway_service.go
2026-02-18 20:16:31 +08:00
yangjianbo
fad04ca995
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-02-18 20:10:32 +08:00
shaw
074bd0dfda
fix: 临时移除context-1m-2025-08-07以确保避免sonnet1m触发429
2026-02-18 18:41:30 +08:00
shaw
b41fa5e15f
feat: 前端新增sonnet4.6快捷映射按钮
2026-02-18 17:06:37 +08:00
Wesley Liddick
beceb45d23
Merge pull request #591 from miraserver/main
...
feat: add Cache TTL Override per account
2026-02-18 15:59:25 +08:00
Wesley Liddick
9450edf462
Merge pull request #589 from 0-don/fix/strip-unsupported-codex-params
...
fix: strip unsupported parameters from Codex model requests
2026-02-18 15:58:05 +08:00
Wesley Liddick
785a7397f8
Merge pull request #579 from KortanZ/main
...
fix: accept openai x-stainless-* header to fix CORS error
2026-02-18 15:57:44 +08:00
John Doe
3d1f03c286
feat: add Cache TTL Override per account + bump VERSION to 0.1.83
...
- Account-level cache TTL override: rewrite Anthropic cache_creation
token classification (5m↔1h) in streaming/non-streaming responses
- New DB field cache_ttl_overridden in usage_log for billing tracking
- Migration 055_add_cache_ttl_overridden
- Frontend: CacheTTL override toggle in account create/edit modals
- Ent schema regenerated for new usage_log fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 14:19:24 +03:00
0-don
8ff40f52e0
fix: remove unsupported parameters from Codex model requests
2026-02-17 00:06:32 +01:00
yangjianbo
6577f2ef03
fix(gateway): 避免SSE delta将缓存创建明细重置为0
...
- 仅在 delta 中 5m/1h 值大于0时覆盖 usage 明细
- 新增回归测试覆盖 delta 默认 0 不应覆盖 message_start 非零值
- 迁移 054 在删除 legacy 字段前追加一次回填,避免升级实例丢失历史写入
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 13:23:12 +08:00
yangjianbo
41d0383fb7
merge(test): 合并 main 并解决前端筛选器冲突
2026-02-15 22:04:06 +08:00
程序猿MT
1cf51b14f7
Merge branch 'Wei-Shaw:main' into main
2026-02-15 20:49:14 +08:00
yangjianbo
372e04f69a
fix(docker): 默认从cmd/server/VERSION读取版本号
2026-02-14 23:28:33 +08:00
yangjianbo
e2107ce45e
fix(build): Docker 构建注入版本号并同步 aicodex 镜像脚本
2026-02-14 21:16:21 +08:00
shaw
a817cafe3d
feat: 区分 Anthropic 5m/1h 缓存创建 token 的差异化计费
...
Anthropic API 的 cache_creation 对象区分了 ephemeral_5m 和 ephemeral_1h
两种缓存创建 token,1h 单价远高于 5m(如 claude-3-5-haiku: 5m=$1/MTok,
1h=$6/MTok)。此前系统统一按 5m 单价计费,导致计费偏低。
后端:
- pricing_service: 加载 LiteLLM 的 cache_creation_input_token_cost_above_1hr
- billing_service: GetModelPricing 启用分类计费(安全守卫 1h>5m),
CalculateCost 按 5m/1h 分别计费,无明细时回退到 5m 单价
- gateway_service: parseSSEUsage/handleNonStreamingResponse 用 gjson
提取嵌套 cache_creation 对象的 ephemeral_5m/1h_input_tokens
- antigravity_gateway_service: extractSSEUsage/extractClaudeUsage 同步提取
- usage_log: 修复 GORM column tag 确保写入正确的数据库列
- 新增迁移 054: 删除 GORM 自动生成的重复列
前端:
- 使用记录 tooltip 展示 5m/1h 缓存创建明细(带彩色 badge 区分)
- 表格单元格缓存写入数值旁显示 1h 标识
2026-02-14 18:15:35 +08:00
Kortan
ab14df043a
fix: accept openai x-stainless-* header to fix CORS error
2026-02-14 16:52:07 +08:00
yangjianbo
5feff6b1e5
feat: 0.1.74.9
2026-02-14 13:23:26 +08:00
yangjianbo
06b0f62e79
feat(accounts): 自动刷新改为ETag增量同步并优化单账号更新体验
...
- 前端自动刷新改为 ETag/304 增量合并,减少全量重刷
- 单账号更新后增加静默窗口,避免刚更新即被自动刷新覆盖
- 列表筛选移除时改为待同步提示,不再立即触发全量补页
- 后端账号列表支持 If-None-Match,命中返回 304
- 单账号接口统一补充运行时容量字段并暴露 ETag 头
2026-02-14 13:22:51 +08:00
yangjianbo
40d110efe4
chore(logging): 删除过时的日志审计文档
2026-02-14 12:36:42 +08:00
yangjianbo
f23318fbcf
fix(frontend): 同步账号本地移除后的分页状态
2026-02-14 12:35:35 +08:00
yangjianbo
cbab49d65f
feat: 0.1.74.8
2026-02-14 12:10:20 +08:00
yangjianbo
b5a3b3db66
Merge branch 'test' into release
2026-02-14 12:07:19 +08:00
yangjianbo
9cafa46dd3
fix(accounts): 账号管理改为单行增量更新并避免全量刷新
...
- 将编辑与重新授权成功事件改为回传更新后的账号对象
- 在账号列表页按 id 就地补丁更新单行数据并保留运行时容量字段
- 单账号操作(刷新凭证/清错/清限流/临时不可调度重置)改为单行更新
- 后端增强 clear-rate-limit 接口,返回更新后的账号对象
- 同步前端 clearRateLimit API 类型定义
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 12:06:17 +08:00
yangjianbo
f6bff97d26
fix(frontend): 修复前端审计问题并补充回归测试
2026-02-14 11:56:08 +08:00
yangjianbo
d04b47b3ca
feat(backend): 提交后端审计修复与配套测试改动
2026-02-14 11:23:10 +08:00
yangjianbo
862199143e
fix(ops): 修复错误日志查询 q 过滤列名二义性
2026-02-14 11:21:30 +08:00
yangjianbo
57e8abcb63
fix(openai): 自动透传预检 instructions 并本地 403 拦截
2026-02-14 10:49:01 +08:00
yangjianbo
ed31c54961
fix(openai): 拒绝日志记录原始 User-Agent 便于攻击研判
2026-02-14 09:59:19 +08:00
yangjianbo
4bfa69bffa
fix(openai): 仅记录 codex_cli_only 拒绝日志并输出详细 User-Agent
2026-02-14 09:53:17 +08:00
Wesley Liddick
2857fa2ef7
Merge pull request #577 from qwIvan/patch-1
...
docker-compose.yml add PGDATA env
2026-02-14 00:24:23 +08:00
shaw
e681431454
fix: Anthropic 429 限流使用精确的窗口重置时间而非聚合最大值
...
当账号仅触发 5h 窗口限流时,旧逻辑从聚合头
anthropic-ratelimit-unified-reset 读取重置时间,该值为所有窗口的
最大值(即 7d 重置时间),导致账号被标记为不可调度约 6 天。
新增 calculateAnthropic429ResetTime 函数,解析 Anthropic 的
per-window 头(5h-utilization/reset、7d-utilization/reset、
surpassed-threshold),判断实际触发的窗口并使用对应的重置时间:
- 仅 5h 超标 → 使用 5h-reset(约 5 小时)
- 仅 7d 超标 → 使用 7d-reset
- 两者均超标 → 使用 7d-reset(较长冷却)
- per-window 头不存在 → 回退到聚合头(向后兼容)
2026-02-14 00:21:56 +08:00
yang chanfa
5b568aa9d4
docker-compose.yml add PGDATA env
...
`docker-compose.yml` also have to define the `PGDATA` env
2026-02-13 23:47:52 +08:00
Wesley Liddick
471943269c
Merge pull request #573 from wucm667/fix/stat-card-value-overflow
...
修复:StatCard 数值溢出问题
2026-02-13 20:29:12 +08:00
Wesley Liddick
28a5e2f0e6
Merge pull request #570 from wucm667/fix/sidebar-logo-load-flicker
...
fix: 修复侧边栏 Logo 加载时的闪烁问题
2026-02-13 20:29:01 +08:00
Wesley Liddick
b4c22ce6ce
Merge pull request #561 from james-6-23/main
...
feat(admin): Add group filtering for account listings
2026-02-13 20:23:56 +08:00