yangjianbo
2d4bbbf49d
feat: 优化codex冷启动, 还有连接池数据库配置信息
2026-02-06 20:31:42 +08:00
yangjianbo
ee01f80dc1
test(backend): 修复 usage 类型断言未检查
2026-02-06 09:54:29 +08:00
yangjianbo
98671a73f4
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
...
# Conflicts:
# backend/internal/service/gateway_cached_tokens_test.go
2026-02-06 09:35:46 +08:00
yangjianbo and Claude Opus 4.6
f33a950103
fix(兼容): 将 Kimi cached_tokens 映射到 Claude 标准 cache_read_input_tokens
...
Kimi 等 Claude 兼容 API 返回缓存信息使用 OpenAI 风格的 cached_tokens 字段,
而非 Claude 标准的 cache_read_input_tokens,导致客户端收不到缓存命中信息且
内部计费缓存折扣为 0。
新增 reconcileCachedTokens 辅助函数,在 cache_read_input_tokens == 0 且
cached_tokens > 0 时自动填充,覆盖流式(message_start/message_delta)和
非流式两种响应路径。对 Claude 原生上游无影响。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 09:27:42 +08:00
yangjianbo and Claude Opus 4.6
c6a456c7c7
fix(兼容): 将 Kimi cached_tokens 映射到 Claude 标准 cache_read_input_tokens
...
Kimi 等 Claude 兼容 API 返回缓存信息使用 OpenAI 风格的 cached_tokens 字段,
而非 Claude 标准的 cache_read_input_tokens,导致客户端收不到缓存命中信息且
内部计费缓存折扣为 0。
新增 reconcileCachedTokens 辅助函数,在 cache_read_input_tokens == 0 且
cached_tokens > 0 时自动填充,覆盖流式(message_start/message_delta)和
非流式两种响应路径。对 Claude 原生上游无影响。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 08:42:55 +08:00
yangjianbo
a113dd4def
feat: vesion -> 0.1.70
2026-02-06 07:55:30 +08:00
yangjianbo
98f793155f
build(工具链): 升级 Go 到 1.25.7
2026-02-06 07:41:23 +08:00
yangjianbo
a38bd413ab
fix(计费): gpt-5.3-codex 定价回退到 gpt-5.2-codex
2026-02-06 07:40:38 +08:00
yangjianbo
9e1535e203
feat(模型): 添加 gpt-5.3 Codex 映射与价格配置
2026-02-06 07:14:46 +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
yangjianbo
6a9cc13e3e
fix(网关): 明确粘性命中范围并优化映射构建
...
仅在粘性命中时构建候选账号映射以减少开销
新增用例验证粘性账号缺失时回退负载感知选择
2026-01-10 14:51:16 +08:00
yangjianbo
7a0ca05233
perf(网关): 粘性会话命中复用候选账号
...
使用候选账号映射避免粘性命中时额外的 GetByID 查询
新增单测确保粘性命中不触发 GetByID 且提前返回
2026-01-10 14:39:33 +08:00
yangjianbo
3730819857
chore(合并): 修复合并冲突并保留分组上下文优化
...
解决 GroupRepository 接口签名更新导致的测试失败
保留 ctxkey.Group Hydrated 覆盖逻辑相关测试
测试: make test-backend
2026-01-10 10:00:49 +08:00
yangjianbo
297f08c683
Merge branch 'test' into dev
2026-01-10 09:39:02 +08:00
yangjianbo
61f556745a
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-10 09:28:30 +08:00
yangjianbo
435f693892
test(分组): 增加无效上下文覆盖回归测试
...
补充 GatewayService 与 APIKey 中间件对无效 ctxkey.Group 的覆盖行为测试
测试: make test-backend
2026-01-10 09:27:47 +08:00
yangjianbo
72f78f8a56
fix(分组): 强化上下文分组可信校验
...
- 引入 Hydrated 标记限制复用来源
- 无效上下文分组允许被新值覆盖自愈
- 更新相关单测覆盖
2026-01-10 08:40:27 +08:00
yangjianbo
2597fe78ba
fix(分组): 防止降级环并校验上下文分组
...
- 增加降级链路环检测并拦截配置
- 仅复用合法分组上下文并必要时回退查询
- 标注 GetByIDLite 轻量语义并补充测试
2026-01-10 07:56:50 +08:00