yangjianbo
d8e405511e
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-02-06 06:56:23 +08:00
yangjianbo
74d35f0860
chore(ent): 重新生成代码
2026-02-04 20:41:26 +08:00
yangjianbo
de7ff902de
Merge branch 'main' into test
2026-02-04 20:35:09 +08:00
yangjianbo
317f26f0bf
feat: update caddy
2026-02-04 19:27:51 +08:00
yangjianbo
9b120e68b8
fix(sora): 恢复流式辅助逻辑并通过 lint
2026-02-04 14:06:06 +08:00
yangjianbo
377bffe281
Merge branch 'main' into test
2026-02-03 22:48:04 +08:00
yangjianbo
31fe017888
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-02-03 21:00:11 +08:00
yangjianbo
99250ec527
fix(Sora): 加固直连安全与下载限制
...
补充图片输入 SSRF 防护与重定向限制\n增加媒体下载超时/大小上限配置并更新示例\n完善 recent_tasks 轮询回退策略与相关测试\n\n测试: go test ./... -tags=unit
2026-02-01 22:10:15 +08:00
yangjianbo
dcf5f60237
feat: add codex skills
2026-02-01 21:38:00 +08:00
yangjianbo
399dd78b2a
feat(Sora): 直连生成并移除sora2api依赖
...
实现直连 Sora 客户端、媒体落地与清理策略\n更新网关与前端配置以支持 Sora 平台\n补齐单元测试与契约测试,新增 curl 测试脚本\n\n测试: go test ./... -tags=unit
2026-02-01 21:37:10 +08:00
yangjianbo
78d0ca3775
fix(sora): 修复流式重写与计费问题
2026-01-31 21:46:28 +08:00
yangjianbo
618a614cbf
feat(Sora): 完成Sora网关接入与媒体能力
...
新增 Sora 网关路由、账号调度与同步服务\n补充媒体代理与签名 URL、模型列表动态拉取\n完善计费配置、前端支持与相关测试
2026-01-31 20:22:22 +08:00
yangjianbo
99dc3b59bc
feat(账号): 添加 Sora 账号双表同步与创建
...
- 新增 sora_accounts 表与 accounts.extra GIN 索引\n- OpenAI OAuth 支持同时创建 Sora 账号并同步配置\n- Token 刷新同步关联 Sora 账号凭证与扩展表\n- 增加 Sora 账号连通性测试与前端开关文案
2026-01-30 14:08:04 +08:00
yangjianbo
d9e345f23d
Merge branch 'test' of https://github.com/mt21625457/aicodex2api into test
2026-01-29 20:34:21 +08:00
yangjianbo
a505d992ee
feat: 优化配置
2026-01-29 20:33:26 +08:00
yangjianbo and Claude Sonnet 4.5
13262a5698
feat(sora): 新增 Sora 平台支持并修复高危安全和性能问题
...
新增功能:
- 新增 Sora 账号管理和 OAuth 认证
- 新增 Sora 视频/图片生成 API 网关
- 新增 Sora 任务调度和缓存机制
- 新增 Sora 使用统计和计费支持
- 前端增加 Sora 平台配置界面
安全修复(代码审核):
- [SEC-001] 限制媒体下载响应体大小(图片 20MB、视频 200MB),防止 DoS 攻击
- [SEC-002] 限制 SDK API 响应大小(1MB),防止内存耗尽
- [SEC-003] 修复 SSRF 风险,添加 URL 验证并强制使用代理配置
BUG 修复(代码审核):
- [BUG-001] 修复 for 循环内 defer 累积导致的资源泄漏
- [BUG-002] 修复图片并发槽位获取失败时已持有锁未释放的永久泄漏
性能优化(代码审核):
- [PERF-001] 添加 Sentinel Token 缓存(3 分钟有效期),减少 PoW 计算开销
技术细节:
- 使用 io.LimitReader 限制所有外部输入的大小
- 添加 urlvalidator 验证防止 SSRF 攻击
- 使用 sync.Map 实现线程安全的包级缓存
- 优化并发槽位管理,添加 releaseAll 模式防止泄漏
影响范围:
- 后端:新增 Sora 相关数据模型、服务、网关和管理接口
- 前端:新增 Sora 平台配置、账号管理和监控界面
- 配置:新增 Sora 相关配置项和环境变量
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-29 16:18:38 +08:00
yangjianbo
bece1b5201
perf(服务端): 启用 h2c 并保留 HTTP/1.1 回退
2026-01-24 20:01:03 +08:00
yangjianbo
5e5d4a513b
feat: 移动镜像脚本位置
2026-01-20 15:11:27 +08:00
yangjianbo and Claude Opus 4.5
2a16735495
fix(测试): 修复 SelectAccountWithLoadAwareness 调用缺少参数
...
为 gateway_multiplatform_test.go 中的 SelectAccountWithLoadAwareness
调用添加缺少的第6个参数 metadataUserID,修复 CI 测试编译错误。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 14:16:46 +08:00
yangjianbo
292f25f9ca
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-20 14:02:08 +08:00
yangjianbo
c92e37775a
Merge branch 'dev'
2026-01-20 13:57:08 +08:00
yangjianbo
f6ed3d1456
Merge branch 'test' into dev
2026-01-20 11:59:13 +08:00
yangjianbo
84686753e8
Merge branch 'test' of https://github.com/mt21625457/aicodex2api into test
2026-01-20 11:51:44 +08:00
yangjianbo
91f01309da
fix(调度): 完善粘性会话清理与账号调度刷新
...
- Update/BulkUpdate 按不可调度字段触发缓存刷新
- GatewayCache 支持多前缀会话键清理
- 模型路由与混合调度优化粘性会话处理
- 补充调度与缓存相关测试覆盖
2026-01-20 11:40:55 +08:00
yangjianbo
57a1fc9d33
style(仓储): 格式化账号仓储
...
- gofmt 修正 lint 格式提示
2026-01-20 11:30:36 +08:00
yangjianbo
7a83db6180
fix(调度): 完善粘性会话清理与账号调度刷新
...
- Update/BulkUpdate 按不可调度字段触发缓存刷新
- GatewayCache 支持多前缀会话键清理
- 模型路由与混合调度优化粘性会话处理
- 补充调度与缓存相关测试覆盖
2026-01-20 11:19:32 +08:00
yangjianbo
73e6b160f8
feat(认证): 启用 OpenAI OAuth HTTP/2 并修复清理任务 lint
...
为共享 req 客户端增加 HTTP/2 选项与缓存隔离
OpenAI OAuth 超时提升到 120s,并按协议控制强制
新增客户端池与 OAuth 客户端单测覆盖
修复 usage cleanup 相关 errcheck/ineffassign/staticcheck 并统一格式
测试: make test
2026-01-19 19:50:57 +08:00
yangjianbo
2a94cc76a6
fix(软删除): 增强错误处理,确保软删除操作中的错误类型正确
2026-01-18 16:51:26 +08:00
yangjianbo
150b315a7b
fix(软删除): 修复软删除钩子的客户端调用逻辑,确保正确处理变更
2026-01-18 16:46:22 +08:00
yangjianbo
fb839ae6ca
fix(软删除): 修复删除钩子调用链并跳过无Docker测试
...
软删除钩子改用 next.Mutate 处理更新,避免 mutation 类型不匹配
集成测试检测 Docker 可用性,无 Docker 自动跳过
2026-01-18 16:10:54 +08:00
yangjianbo
bdc426a774
Merge branch 'main' into dev
2026-01-18 15:55:58 +08:00
yangjianbo
771baa66ee
feat(界面): 优化分页跳转与页大小显示
...
分页组件支持隐藏每页条数选择器并新增跳转页输入
清理任务列表启用跳转页并固定每页 5 条
补充中英文分页文案
2026-01-18 14:31:22 +08:00
yangjianbo
bd18f4b8ef
feat(清理任务): 引入Ent存储并补充日志与测试
...
新增 usage_cleanup_task Ent schema 与仓储实现,支持清理任务排序分页
补充清理任务全链路日志、仪表盘重算触发及 UI 过滤调整
完善 repository/service 单测并引入 sqlite 测试依赖
2026-01-18 14:18:28 +08:00
yangjianbo
bf7b79f2f0
fix(数据库): 优化任务状态更新查询,使用别名提高可读性
2026-01-18 11:58:53 +08:00
yangjianbo
8391d480c9
fix(数据库): 补充分组列回填前置保护
2026-01-18 11:52:59 +08:00
yangjianbo
d17f853a5f
fix(数据库): 补充允许分组列兼容迁移
2026-01-18 11:45:43 +08:00
yangjianbo
ef5a41057f
feat(usage): 添加清理任务与统计过滤
2026-01-18 10:52:18 +08:00
yangjianbo and Claude Opus 4.5
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
yangjianbo and Claude Opus 4.5
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 and Claude Opus 4.5
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 and Claude Opus 4.5
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
yangjianbo and Claude Opus 4.5
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
yangjianbo and Claude Opus 4.5
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 and Claude Opus 4.5
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 and Claude Opus 4.5
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
yangjianbo
b478982484
style(界面): 修复 AccountsView ESLint 报错
...
移除多余分号并整理 onMounted 代码块,确保 lint:check 通过。
2026-01-16 15:25:47 +08:00
yangjianbo
fe71ee57b3
fix(定时轮): 初始化失败返回错误并补充单测
...
- NewTimingWheelService 改为返回 error,避免 panic
- ProvideTimingWheelService 透传 error 并更新 wire 生成代码
- 补充定时任务调度/取消/周期任务相关单元测试
2026-01-16 15:25:33 +08:00
yangjianbo and Claude Opus 4.5
f862ddc9ff
style: 修复 gofmt 格式化问题
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-15 19:42:18 +08:00
yangjianbo
3ba4d535e3
Merge branch 'dev'
2026-01-15 19:33:32 +08:00
yangjianbo and Claude Opus 4.5
5b37e9aea4
fix(OAuth缓存): 修复缓存键冲突、401强制刷新及Redis降级处理
...
- Gemini 缓存键统一增加 gemini: 前缀,避免与其他平台命名空间冲突
- OAuth 账号 401 错误时设置 expires_at=now 并持久化,强制下次请求刷新 token
- Redis 锁获取失败时降级为无锁刷新,仅在 token 接近过期时执行,并检查 ctx 取消状态
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-15 19:08:07 +08:00
yangjianbo
1820389a05
feat(网关): 引入 OpenAI/Claude OAuth token 缓存
...
新增 OpenAI/Claude TokenProvider 与缓存键生成
扩展 OAuth 缓存失效覆盖更多平台
统一 OAuth 缓存前缀与依赖注入
2026-01-15 18:27:06 +08:00
yangjianbo
35e3a89385
fix(忽略文件): 添加 .serena 目录到 .gitignore
2026-01-15 16:34:42 +08:00
yangjianbo
a65fd9dee8
Merge branch 'test'
2026-01-15 15:58:47 +08:00
yangjianbo and Claude Opus 4.5
1bb4c76deb
fix(账号管理): 移除调度切换后的冗余列表刷新
...
切换账号调度状态后,updateSchedulableInList 已完成局部更新,
无需再调用 load() 刷新整个列表。此修改减少不必要的 API 请求,
避免 UI 闪烁。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-15 15:57:47 +08:00
yangjianbo
0a848e7578
Merge branch 'test'
2026-01-15 15:15:07 +08:00
yangjianbo
90bce60b85
feat: merge dev
2026-01-15 15:14:44 +08:00
yangjianbo
a458e684bc
fix(认证): OAuth 401 直接标记错误状态
...
- OAuth 401 清理缓存并设置错误状态
- 移除 oauth_401_cooldown_minutes 配置及示例
- 更新 401 相关单测
破坏性变更: OAuth 401 不再临时不可调度,需手动恢复
2026-01-15 15:06:34 +08:00
yangjianbo
52ad7c6e9c
Merge branch 'main' into dev
2026-01-15 09:30:29 +08:00
yangjianbo
daf10907e4
fix(认证): 修复 OAuth token 缓存失效与 401 处理
...
新增 token 缓存失效接口并在刷新后清理
401 限流支持自定义规则与可配置冷却时间
补齐缓存失效与 401 处理测试
测试: make test
2026-01-14 15:55:44 +08:00
yangjianbo
9c567fad92
fix(网关): 优化 OAuth 请求中 store 参数的处理逻辑
2026-01-14 09:46:10 +08:00
yangjianbo
0abb3a6843
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-14 09:22:37 +08:00
yangjianbo
3663951d11
fix(网关): OAuth 请求强制 store=false
...
避免上游 Store 必须为 false 的错误
仅在缺失或 true 时写回 store
测试: go test ./internal/service -run TestApplyCodexOAuthTransform
测试: make test-backend(golangci-lint 已单独执行)
2026-01-14 09:17:58 +08:00
yangjianbo
7bbf49fd65
为类型断言补充 ok 校验并添加中文说明,避免 errcheck 报错(backend/internal/service/
...
openai_codex_transform_test.go:36、backend/internal/service/
openai_codex_transform_test.go:89、backend/internal/service/
openai_codex_transform_test.go:104)。
2026-01-13 17:22:57 +08:00
yangjianbo
eea6c2d02c
fix(网关): 补齐Codex指令回退与输入过滤
2026-01-13 17:02:31 +08:00
yangjianbo
70eaa450db
fix(网关): 修复工具续链校验与存储策略
...
完善 function_call_output 续链校验与引用匹配
续链场景强制 store=true,过滤 input 时避免副作用
补充续链判断与过滤相关单元测试
测试: go test ./...
2026-01-13 16:47:35 +08:00
yangjianbo
0e44829720
Merge branch 'main' into dev
2026-01-13 10:29:12 +08:00
yangjianbo
9622347faa
fix(调度): 修复 outbox 空载写入并稳固回放测试
...
将 outbox payload 为空时写入 NULL
避免事务因 JSON 解析错误中断
调整回放测试为预置缓存后验证 last_used 更新
测试: go test -tags=integration ./internal/repository
2026-01-12 15:46:55 +08:00
yangjianbo
9618cb5643
Merge branch 'main' into test
2026-01-12 15:15:03 +08:00
yangjianbo
8c1958c9ad
fix(调度): 修复流超时配置并补回放测试
...
删除前端未支持的 timeout_seconds 字段,避免类型检查失败
新增调度 outbox 回放集成测试
调整调度默认等待超时断言
测试: make test
2026-01-12 15:13:39 +08:00
yangjianbo
2db34139f0
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-12 14:50:53 +08:00
yangjianbo
9c02ab789d
fix(rate_limiter): 更新速率限制逻辑,支持返回修复状态
2026-01-12 14:42:58 +08:00
yangjianbo
202ec21bab
fix(config): 提升粘性会话默认等待时长
...
- 默认值调整为 120s
- 同步示例配置与环境变量
2026-01-12 14:26:31 +08:00
yangjianbo
3141aa5144
feat(scheduler): 引入调度快照缓存与 outbox 回放
...
- 调度热路径优先读 Redis 快照,保留分组排序语义
- outbox 回放 + 全量重建纠偏,失败重试不推进水位
- 自动 Atlas 基线对齐并同步调度配置示例
2026-01-12 14:19:06 +08:00
yangjianbo
b76cc583fb
去掉失误提交的openspec提案
2026-01-12 11:18:14 +08:00
yangjianbo
955af6b3ec
fix(仪表盘): 添加聚合和回填操作的执行时间日志
2026-01-12 10:59:52 +08:00
yangjianbo
1073317a3e
fix(仪表盘): 增加对数据库驱动和仓储实例的有效性检查
2026-01-12 10:53:41 +08:00
yangjianbo
839ab37d40
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-12 10:38:44 +08:00
yangjianbo
9dd0ef187d
fix(仪表盘): 优化CleanupAggregates方法,逐条删除数据以提高错误处理能力
2026-01-12 10:38:42 +08:00
yangjianbo
18b8bd43ad
fix(限流): 原子化 Redis 限流并支持故障策略
...
使用 Lua 脚本原子设置计数与过期,修复 TTL 缺失\n支持 fail-open/fail-close 并对优惠码验证启用 fail-close\n新增单元与集成测试覆盖关键分支\n\n测试:go test ./...
2026-01-11 22:21:05 +08:00
yangjianbo
5f80760a8c
fix(账号管理): 修复BulkUpdateAccounts方法中的混合渠道检查逻辑缩进
2026-01-11 20:39:15 +08:00
yangjianbo
32953405b1
fix(账号管理): 调度批量结果明细与刷新优化
...
补充批量调度返回 success_ids/failed_ids 并增加合约/单测
前端加入降级处理与部分失败提示,表格行使用稳定 key
测试: make test-frontend
测试: go test ./internal/service -run BulkUpdateAccounts -tags=unit
测试: go test ./internal/server -run APIContracts -tags=unit
2026-01-11 20:22:17 +08:00
yangjianbo
48613558d4
fix(仪表盘): 修正分区迁移与范围测试
2026-01-11 19:01:15 +08:00
yangjianbo
4b66ee2f8f
chore(测试): 清理未使用导入
2026-01-11 18:49:57 +08:00
yangjianbo
ccb8144557
fix(仪表盘): 修复rows.Close错误检查
2026-01-11 18:39:29 +08:00
yangjianbo
1240c78ef6
Merge branch 'test' into dev
2026-01-11 18:22:07 +08:00
yangjianbo
6271a33d08
fix(仪表盘): 兼容禁用聚合与回填限制
2026-01-11 18:20:15 +08:00
yangjianbo
5364011a5b
fix(仪表盘): 修正聚合时间桶与清理节流
2026-01-11 17:21:17 +08:00
yangjianbo
d78f42d2fd
chore(注释): 调整仪表盘注释为中文
2026-01-11 16:02:28 +08:00
yangjianbo
1a869547d7
feat(仪表盘): 引入预聚合统计与聚合作业
2026-01-11 16:01:35 +08:00
yangjianbo
ab5839b461
fix(仪表盘): 修复缓存稳定性并补充测试
2026-01-11 15:00:16 +08:00
yangjianbo and shaw
d75cd820b0
fix(认证): 订阅兑换失效认证缓存
...
订阅兑换后同步失效认证缓存避免授权快照滞后
补充单测覆盖订阅兑换的失效场景
测试: go test ./... -tags=unit
2026-01-11 10:55:26 +08:00
yangjianbo and shaw
cb3e08dda4
fix(认证): 补齐余额与删除场景缓存失效
...
为 Usage/Promo/Redeem 注入认证缓存失效逻辑
删除用户与分组前先失效认证缓存降低窗口
补充回归测试验证失效调用
测试: make test
2026-01-11 10:55:25 +08:00
yangjianbo and shaw
44a93c1922
perf(认证): 引入 API Key 认证缓存与轻量删除查询
...
增加 L1/L2 缓存、负缓存与单飞回源
使用 key+owner 轻量查询替代全量加载并清理旧接口
补充缓存失效与余额更新测试,修复随机抖动 lint
测试: make test
2026-01-11 10:55:25 +08:00
yangjianbo
c2c865b0cb
perf(仪表盘): 增强统计缓存与隔离配置
...
新增仪表盘缓存开关与 TTL 配置,支持 Redis key 前缀隔离,并补充单测与校验。
测试: make test-backend
2026-01-11 10:07:03 +08:00
yangjianbo
a16f72f52e
fix(认证): 订阅兑换失效认证缓存
...
订阅兑换后同步失效认证缓存避免授权快照滞后
补充单测覆盖订阅兑换的失效场景
测试: go test ./... -tags=unit
2026-01-10 23:14:20 +08:00
yangjianbo
99e2391b2a
fix(认证): 补齐余额与删除场景缓存失效
...
为 Usage/Promo/Redeem 注入认证缓存失效逻辑
删除用户与分组前先失效认证缓存降低窗口
补充回归测试验证失效调用
测试: make test
2026-01-10 22:52:13 +08:00
yangjianbo
9d0a4f3d68
perf(认证): 引入 API Key 认证缓存与轻量删除查询
...
增加 L1/L2 缓存、负缓存与单飞回源
使用 key+owner 轻量查询替代全量加载并清理旧接口
补充缓存失效与余额更新测试,修复随机抖动 lint
测试: make test
2026-01-10 22:23:51 +08:00
yangjianbo
e79dbad602
Merge branch 'main' into test
2026-01-10 14:56:51 +08:00