shaw
33bae6f49b
fix: Cache Token拆分为缓存创建和缓存读取
2026-03-05 18:32:17 +08:00
Wesley Liddick
32d619a56b
Merge pull request #780 from mt21625457/feat/codex-remote-compact-outcome-logging
...
feat(openai-handler): support codex remote compact outcome logging
2026-03-05 16:59:02 +08:00
Wesley Liddick
642432cf2a
Merge pull request #777 from guoyongchang/feature-schedule-test-support
...
feat: 支持基于 crontab 的定时账号测试
2026-03-05 16:57:23 +08:00
程序猿MT
61e9598b08
fix(lint): remove redundant context type in compact outcome logger
2026-03-05 16:51:46 +08:00
guoyongchang
d4e34c7514
fix: 修复空结果导致定时测试模态框崩溃的问题
...
后端返回 null (Go nil slice) 时前端访问 .length 抛出 TypeError,
在 API 层对 listByAccount 和 listResults 加 ?? [] 兜底。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:47:01 +08:00
程序猿MT
bfe7a5e452
test(openai-handler): add codex remote compact outcome coverage
2026-03-05 16:46:14 +08:00
程序猿MT
77d916ffec
feat(openai-handler): support codex remote compact outcome logging
2026-03-05 16:46:12 +08:00
guoyongchang
831abf7977
refactor: 移除冗余中间类型和不必要代码
...
- 移除 ScheduledTestOutcome 中间类型,RunTestBackground 直接返回 *ScheduledTestResult
- 简化 SaveResult 直接接受 *ScheduledTestResult
- 移除 handler 中不必要的 nil 检查
- 移除前端 ScheduledTestsPanel 中多余的 String() 转换
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:37:07 +08:00
guoyongchang
817a491087
simplify: 移除 leader lock,单实例无需分布式锁
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:31:27 +08:00
guoyongchang
9a8dacc514
fix: 修复 golangci-lint depguard 和 gofmt 错误
...
将 redis leader lock 逻辑从 service 层抽取为 LeaderLocker 接口,
实现移至 repository 层,消除 service 层对 redis 的直接依赖。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:28:48 +08:00
guoyongchang
8adf80d98b
fix: wire_gen_test 补充 scheduledTestRunner 参数
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:23:41 +08:00
guoyongchang
62686a6213
revert: 还原 docker-compose.local.yml 的本地测试改动
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:17:33 +08:00
guoyongchang
3a089242f8
feat: 支持基于 crontab 的定时账号测试
...
每个测试计划绑定一个账号和一个模型,按 cron 表达式定期执行测试,
保存历史结果并在前端账号管理页面中提供完整的增删改查和结果查看功能。
主要变更:
- 新增 scheduled_test_plans / scheduled_test_results 两张表及迁移
- 后端 service 层:CRUD 服务 + 后台 cron runner(每分钟扫描到期计划并发执行)
- RunTestBackground 方法通过 httptest 在内存中执行账号测试并解析 SSE 输出
- Redis leader lock + pg_try_advisory_lock 双重保障多实例部署只执行一次
- REST API:5 个管理端点(计划 CRUD + 结果查询)
- 前端 ScheduledTestsPanel 组件:计划管理、启用开关、内联编辑、结果展开查看
- 中英文 i18n 支持
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 16:06:05 +08:00
shaw
9d70c38504
fix: 修复claude apikey账号请求时未携带beta=true 查询参数的bug
2026-03-05 15:01:04 +08:00
shaw
aeb464f3ca
feat: 模型映射应用 /v1/messages/count_tokens端点
2026-03-05 14:49:28 +08:00
Wesley Liddick
7076717b20
Merge pull request #772 from mt21625457/aicodex2api-main
...
feat(openai-ws): 合并 WS v2 透传模式与前端 ws mode
2026-03-05 13:46:02 +08:00
程序猿MT
c0a4fcea0a
Delete docker-compose-aicodex.yml
...
删除测试 docker compose文件
2026-03-05 13:44:07 +08:00
程序猿MT
aa2b195c86
Delete Caddyfile.dmit
...
删除测试caddy 配置文件
2026-03-05 13:43:25 +08:00
yangjianbo
1d0872e7ca
feat(openai-ws): 合并 WS v2 透传模式与前端 ws mode
...
新增 OpenAI WebSocket v2 passthrough relay 数据面与服务适配层,
支持按账号 ws mode 在 ctx_pool 与 passthrough 间路由。
同步调整前端 OpenAI ws mode 选项为 off/ctx_pool/passthrough,
并补充 i18n 文案与对应单测。
新增 Caddyfile.dmit 与 docker-compose-aicodex.yml 部署配置,
用于宿主机场景下的反向代理与服务编排。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 11:50:58 +08:00
shaw
33988637b5
fix: SMTP测试连接和发送测试邮件返回具体错误信息而非internal error
2026-03-05 10:54:41 +08:00
shaw
d4f6ad7225
feat: 新增apikey的usage查询页面
2026-03-05 10:45:51 +08:00
shaw
078fefed03
fix: 修复账号管理页面容量列显示为0的bug
2026-03-05 09:48:00 +08:00
Wesley Liddick
5b10af85b4
Merge pull request #762 from touwaeriol/fix/dark-theme-open-in-new-tab
...
fix: add dark theme support for "open in new tab" FAB button
2026-03-05 08:56:28 +08:00
Wesley Liddick
4caf95e5dd
Merge pull request #767 from litianc/fix/rewrite-userid-regex-match-account-uuid
...
fix: extend RewriteUserID regex to match user_id containing account_uuid
2026-03-05 08:56:03 +08:00
litianc
8e1bcf53bb
fix: extend RewriteUserID regex to match user_id containing account_uuid
...
The existing regex only matched the old format where account_uuid is
empty (account__session_). Real Claude Code clients and newer sub2api
generated user_ids use account_{uuid}_session_ which was silently
skipped, causing the original metadata.user_id to leak to upstream
when User-Agent is rewritten by an intermediate gateway.
Closes #766
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 23:13:17 +08:00
erio
064f9be7e4
fix: add dark theme support for "open in new tab" FAB button
...
The backdrop-blur background on the iframe "open in new tab" floating
button was hardcoded to bg-white/80, making it look broken in dark
theme. Added dark:bg-dark-800/80 variant for both PurchaseSubscription
and CustomPage views.
2026-03-04 21:40:40 +08:00
Wesley Liddick
adcfb44cb7
Merge pull request #761 from james-6-23/main
...
feat: 修复 v0.1.89 OAuth 401 永久锁死账号问题,改用临时不可调度实现自动恢复;增强二次 401 自动升级为错误状态,添加 DB 回退确保生效;管理后台新增临时不可调度状态筛选
2026-03-04 21:11:24 +08:00
kyx236
3d79773ba2
Merge branch 'main' of https://github.com/james-6-23/sub2api
2026-03-04 20:25:39 +08:00
kyx236
6aa8cbbf20
feat: 二次 401 直接升级为错误状态,添加 DB 回退确保生效
...
账号首次 401 仅临时不可调度,给予 token 刷新窗口;若恢复后再次 401
说明凭证确实失效,直接升级为错误状态以避免反复无效调度。
- 缓存中 reason 为空时从 DB 回退读取,防止升级判断失效
- ClearError 同时清除临时不可调度状态,管理员恢复后重新给予一次机会
- 管理后台账号列表添加"临时不可调度"状态筛选
- 补充 DB 回退场景单元测试
2026-03-04 20:25:15 +08:00
shaw
742e73c9c2
fix: 优化充值/订阅菜单的icon
2026-03-04 17:24:09 +08:00
shaw
f8de2bdedc
fix(frontend): settings页面分tab拆分
2026-03-04 16:59:57 +08:00
shaw
59879b7fa7
fix(i18n): replace hardcoded English strings in EmailVerifyView with i18n calls
2026-03-04 15:58:44 +08:00
Wesley Liddick
27abae21b8
Merge pull request #724 from PMExtra/feat/registration-email-domain-whitelist
...
feat(registration): add email domain whitelist policy
2026-03-04 15:51:51 +08:00
shaw
0819c8a51a
refactor: 消除重复的 normalizeAccountIDList,补充 PR#754 新增组件的单元测试
...
- 删除 account_today_stats_cache.go 中重复的 normalizeAccountIDList,统一使用 id_list_utils.go 的 normalizeInt64IDList
- 新增 snapshot_cache_test.go:覆盖 snapshotCache、buildETagFromAny、parseBoolQueryWithDefault
- 新增 id_list_utils_test.go:覆盖 normalizeInt64IDList、buildAccountTodayStatsBatchCacheKey
- 新增 ops_query_mode_test.go:覆盖 shouldFallbackOpsPreagg、cloneOpsFilterWithMode
2026-03-04 15:22:46 +08:00
Wesley Liddick
9dcd3cd491
Merge pull request #754 from xvhuan/perf/admin-core-large-dataset
...
perf(admin): 优化后台大数据场景加载性能(仪表盘/用户/账号/Ops)
2026-03-04 15:15:13 +08:00
Wesley Liddick
49767cccd2
Merge pull request #755 from xvhuan/perf/admin-usage-fast-pagination-main
...
perf(admin-usage): 优化 usage 大表分页,默认避免全量 COUNT(*)
2026-03-04 14:15:57 +08:00
PMExtra
29fb447daa
fix(frontend): remove unused variables
2026-03-04 14:12:08 +08:00
xvhuan
f6fe5b552d
fix(admin): resolve CI lint and user subscriptions regression
2026-03-04 14:07:17 +08:00
PMExtra
bd0801a887
feat(registration): add email domain whitelist policy
2026-03-04 13:54:18 +08:00
xvhuan
05b1c66aa8
perf(admin-usage): avoid expensive count on large usage_logs pagination
2026-03-04 13:51:27 +08:00
xvhuan
80ae592c23
perf(admin): optimize large-dataset loading for dashboard/users/accounts/ops
2026-03-04 13:45:49 +08:00
shaw
ba6de4c4d4
feat: /keys页面支持表单筛选
2026-03-04 11:29:31 +08:00
shaw
46ea9170cb
fix: 修复自定义菜单页面管理员视角菜单不生效问题
2026-03-04 10:44:28 +08:00
shaw
7d318aeefa
fix: 恢复check_pnpm_audit_exceptions.py
2026-03-04 10:20:19 +08:00
shaw
0aa3cf677a
chore: 清理一些无用的文件
2026-03-04 10:15:42 +08:00
shaw
72961c5858
fix: Anthropic 平台无限流重置时间的 429 不再误标记账号限流
2026-03-04 09:36:24 +08:00
Wesley Liddick
a05711a37a
Merge pull request #742 from zqq-nuli/fix/ops-error-detail-upstream-payload
...
fix(frontend): show real upstream payload in ops error detail modal
2026-03-04 09:04:11 +08:00
zqq61
efc9e1d673
fix(frontend): prefer upstream payload for generic ops error body
2026-03-03 23:45:34 +08:00
Wesley Liddick
a11ac188c2
Merge pull request #738 from DaydreamCoding/feat/ungrouped-key-setting
...
feat(gateway): 系统设置控制未分组 Key 调度 — Handler 层中间件拦截
2026-03-03 21:03:31 +08:00
Wesley Liddick
60350d298a
Merge pull request #735 from alfadb/fix/count-tokens-default-ignore
...
fix(ops): 默认忽略 count_tokens 404 错误
2026-03-03 21:02:46 +08:00