yangjianbo
|
1ae49b9ead
|
feat: version 0.1.74.5
|
2026-02-12 19:32:13 +08:00 |
|
yangjianbo
|
0bf162f64a
|
Merge branch 'dev' into release
|
2026-02-12 19:23:54 +08:00 |
|
yangjianbo
|
6423636177
|
Merge branch 'test' into dev
|
2026-02-12 19:23:35 +08:00 |
|
yangjianbo
|
b6aaee01ce
|
fix(logging): 修复 warn 级别下系统日志空白问题
- 新增 logger.WriteSinkEvent,支持旁路写入 sink,不受全局级别门控影响\n- 在 http.access 中间件中,当 info 被门控时补写 sink,保障 Ops 系统日志可索引\n- 增加 level=warn 场景回归测试,验证访问日志仍可入库
|
2026-02-12 19:19:11 +08:00 |
|
yangjianbo
|
3511376c2c
|
chore(logging): 默认使用 console 普通日志输出
- 将配置默认 log.format 从 json 调整为 console\n- 将 logger 初始化兜底默认格式调整为 console\n- 同步更新 deploy 配置示例
|
2026-02-12 19:07:16 +08:00 |
|
yangjianbo
|
584cfc3db2
|
chore(logging): 完成后端日志审计与结构化迁移
- 将高密度服务与处理器日志迁移到新日志系统(LegacyPrintf/结构化日志)
- 增加 stdlog bridge 与兼容测试,保留旧日志捕获能力
- 将 OpenAI 断流告警改为结构化 Warn 并改造对应测试为 sink 捕获
- 补齐后端相关文件 logger 引用并通过全量 go test
|
2026-02-12 19:01:09 +08:00 |
|
yangjianbo
|
eaa7d899f0
|
fix(ops): 优化系统日志展示为可读文本
解析 extra 字段(status_code/latency_ms/method/path 等)并拼成普通文本\n表格改为 3 列并固定时间/级别宽度,详情列填满后自动换行
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-12 18:00:16 +08:00 |
|
yangjianbo
|
84cc651b46
|
fix(logger): 修复 caller 字段与 OpsSystemLogSink 停止刷盘
修复点:
- zap logger 不再强制 AddCallerSkip(1),确保 caller 指向真实调用点
- slog handler 避免重复写 time 字段
- OpsSystemLogSink 优先从字段 component 识别业务组件;停止时 drain 队列并用可用 ctx 刷盘
补充:新增/完善对应单测
|
2026-02-12 17:42:29 +08:00 |
|
yangjianbo
|
b7243660c4
|
fix(deploy): 修复 Postgres 数据未持久化导致重启后无法登录
原因:postgres:18-alpine 默认 PGDATA 不在 /var/lib/postgresql/data,数据落到匿名卷,docker compose down/up 会触发 initdb 重新初始化。
修复:在 compose 中显式设置 PGDATA=/var/lib/postgresql/data,让数据落到 postgres_data 命名卷。
|
2026-02-12 17:42:18 +08:00 |
|
yangjianbo
|
e722992439
|
fix(setup): 数据库有用户时跳过管理员引导
|
2026-02-12 16:50:42 +08:00 |
|
yangjianbo
|
fff1d54858
|
feat(log): 落地统一日志底座与系统日志运维能力
|
2026-02-12 16:27:29 +08:00 |
|
yangjianbo
|
a5f29019d9
|
test(ops): 提升日志链路覆盖率并修复lint阻塞
|
2026-02-12 16:25:44 +08:00 |
|
yangjianbo
|
208c5380f4
|
fix(ops): 排除刷新信号避免分页重置页码
|
2026-02-12 15:00:22 +08:00 |
|
yangjianbo
|
29191af877
|
Merge branch 'dev' into release
|
2026-02-12 14:40:37 +08:00 |
|
yangjianbo
|
2d6066f985
|
Merge branch 'test' into dev
|
2026-02-12 14:40:22 +08:00 |
|
yangjianbo
|
3ea5e5c33a
|
feat: update build aicodex.sh
|
2026-02-12 14:40:05 +08:00 |
|
yangjianbo
|
dbd7969a3e
|
Merge branch 'test' into release
|
2026-02-12 14:27:58 +08:00 |
|
yangjianbo
|
af3069073a
|
chore(lint): 修复 golangci-lint unused
- 移除 OpenAIGatewayHandler 未使用字段
- 删除并发缓存中未使用的 Redis 脚本常量
- 将仅供 unit 测试使用的 parseIntegralNumber 移入 unit build tag 文件
|
2026-02-12 14:20:56 +08:00 |
|
yangjianbo
|
65661f24e2
|
feat(ops): 运维监控新增 OpenAI Token 请求统计表
- 新增管理端接口 /api/v1/admin/ops/dashboard/openai-token-stats,按模型聚合统计 gpt% 请求
- 支持 time_range=30m|1h|1d|15d|30d(默认 30d),支持 platform/group_id 过滤
- 支持分页(page/page_size)或 TopN(top_n)互斥查询
- 前端运维监控页新增统计表卡片,包含空态/错误态与分页/TopN 交互
- 补齐后端与前端测试
|
2026-02-12 14:20:14 +08:00 |
|
yangjianbo
|
ed2eba9028
|
fix(gateway): 默认过滤OpenAI透传超时头并补充断流告警
|
2026-02-12 14:16:18 +08:00 |
|
yangjianbo
|
10c1590b1d
|
Merge branch 'dev' into release
|
2026-02-12 12:12:40 +08:00 |
|
yangjianbo
|
114e172603
|
test(repository): 补充 JWT 密钥引导并发与兼容性单测
|
2026-02-12 12:07:20 +08:00 |
|
yangjianbo
|
09c8380b3d
|
fix(repository): 修复 JWT 密钥引导冲突一致性与并发读取竞态
|
2026-02-12 12:04:13 +08:00 |
|
yangjianbo
|
ba567babf4
|
:erge branch 'dev' into release
|
2026-02-12 11:45:11 +08:00 |
|
yangjianbo
|
9403aa9bd1
|
feat: version 0.1.74.4
|
2026-02-12 11:44:45 +08:00 |
|
yangjianbo
|
34b8bbcbe4
|
Merge branch 'dev' into release
|
2026-02-12 11:43:47 +08:00 |
|
yangjianbo
|
6b36992d34
|
feat(security): 启动时自动迁移并持久化JWT密钥
- 新增 security_secrets 表及 Ent schema 用于存储系统级密钥
- 启动阶段支持无 jwt.secret 配置并在数据库中自动生成持久化
- 在 Ent 初始化后补齐密钥并执行完整配置校验
- 增加并发与异常分支单元测试,覆盖密钥引导核心路径
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-12 11:41:20 +08:00 |
|
yangjianbo
|
6533a4647d
|
fix(openai): 增强自动透传命中日志
|
2026-02-12 11:41:06 +08:00 |
|
yangjianbo
|
9c910c2049
|
feat(openai): 支持自动透传开关并透传 User-Agent
- OpenAI OAuth/API Key 统一支持自动透传开关,编辑页可开关\n- 透传模式仅替换认证并保留计费/并发/审计,修复 API Key responses 端点拼接\n- Usage 页面显示原始 User-Agent 且不截断,补充回归测试与清单
|
2026-02-12 10:56:07 +08:00 |
|
yangjianbo
|
43dc23a47d
|
Merge branch 'test' into release
|
2026-02-12 09:49:05 +08:00 |
|
yangjianbo
|
61a2bf469a
|
feat(openai): 极致优化 OAuth 链路并补齐性能守护
- 优化 /v1/responses 热路径,减少重复解析与不必要拷贝\n- 优化并发与 token 竞争路径并补齐运行指标\n- 补充 OpenAI/Ops 相关单元测试与回归用例\n- 新增灰度阈值守护与压测脚本,支撑发布验收
|
2026-02-12 09:41:37 +08:00 |
|
yangjianbo
|
a88bb8684f
|
fix(openai): 修复 OAuth 透传流式断开与压缩头问题
- 透传流式在客户端断开后继续 drain 上游并解析 usage,避免计费信息丢失
- 阻断透传 accept-encoding,避免压缩响应影响 SSE/usage 解析
- 阻断 proxy-authorization,避免透传代理鉴权信息
- 补充回归测试:请求头阻断与断流后 usage 采集
|
2026-02-11 22:17:38 +08:00 |
|
yangjianbo
|
e2cdb6c758
|
feat: 优化build image
|
2026-02-11 18:07:50 +08:00 |
|
yangjianbo
|
f1e884ce2b
|
feat(openai): 增加 OAuth 透传开关
- 仅对 Codex CLI 且账号开启时走原样透传(只替换认证)
- 透传模式禁用工具修正/模型替换,并旁路解析 usage 用于计费
- 管理后台增加开关与文案,ops upstream error 记录 passthrough 标记
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-11 00:59:39 +08:00 |
|
yangjianbo
|
86f3124720
|
perf(service): 优化重试场景 thinking 过滤性能
- 避免全量 Unmarshal 请求体,改为仅解析 messages 子树
- 顶层 thinking 使用 sjson 直接删除,减少整体重写
- content 仅在需要修改时延迟分配 new slice
- 增加 FilterThinkingBlocksForRetry 基准测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-11 00:47:26 +08:00 |
|
yangjianbo
|
4b309fa8b5
|
fix(gateway): 优化 ParseGatewayRequest 函数,使用 unsafe 提高性能并增加 JSON 校验
|
2026-02-10 22:12:24 +08:00 |
|
yangjianbo
|
166080b29c
|
chore: 更新版本号至 0.1.74.3
|
2026-02-10 18:02:02 +08:00 |
|
yangjianbo
|
3b0910f664
|
Merge branch 'main' into test-sora
|
2026-02-10 18:01:17 +08:00 |
|
yangjianbo
|
e489996713
|
test(backend): 补充改动代码单元测试覆盖率至 85%+
新增 48 个测试用例覆盖修复代码的各分支路径:
- subscription_maintenance_queue: nil receiver/task、Stop 幂等、零值参数 (+6)
- billing_service: CalculateCostWithConfig、错误传播、SoraImageCost 等 (+12)
- timing_wheel_service: Schedule/ScheduleRecurring after Stop (+3)
- sora_media_cleanup_service: nil guard、Start/Stop 各分支、timezone (+10)
- sora_gateway_service: normalizeSoraMediaURLs、buildSoraContent 等辅助函数 (+17)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-10 17:52:10 +08:00 |
|
yangjianbo
|
54fe363257
|
fix(backend): 修复代码审核发现的 8 个确认问题
- P0-1: subscription_maintenance_queue 使用 RWMutex 防止 channel close/send 竞态
- P0-2: billing_service CalculateCostWithLongContext 修复被吞没的 out-range 错误
- P1-1: timing_wheel_service Schedule/ScheduleRecurring 添加 SetTimer 错误日志
- P1-2: sora_gateway_service StoreFromURLs 失败时降级使用原始 URL
- P1-3: concurrency_cache 用 Pipeline 替代 Lua 脚本兼容 Redis Cluster
- P1-6: sora_media_cleanup_service runCleanup 添加 nil cfg/storage 防护
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-10 17:51:49 +08:00 |
|
程序猿MT
|
1dd3158c7e
|
Merge branch 'Wei-Shaw:main' into main
|
2026-02-10 13:55:51 +08:00 |
|
shaw
|
5dd83d3cf2
|
fix: 移除特定system以适配新版cc客户端缓存失效的bug
|
2026-02-10 10:28:34 +08:00 |
|
Wesley Liddick
|
14e1aac9b5
|
Merge pull request #533 from GuangYiDing/feat/antigravity-single-account-503-retry
feat: Antigravity 单账号分组 503 退避重试机制
|
2026-02-10 09:59:48 +08:00 |
|
yangjianbo
|
5d1c51a37f
|
fix(handler): 修复 gjson 迁移后的请求校验语义回退
- OpenAI handler: 添加 gjson.ValidBytes 校验 JSON 合法性;model 校验改为
检查 gjson.String 类型而非仅判断非空(拒绝 model:123 等非法类型);stream
字段添加 True/False 类型检查;sjson.SetBytes 返回值显式处理错误
- Sora handler: 添加 gjson.ValidBytes 校验;model 校验同上改为类型检查;
messages 校验从 Exists+Type==JSON 改为 IsArray+len>0(拒绝空数组和对象)
- 补充 TestOpenAIHandler_GjsonValidation 和更新 TestSoraHandler_ValidationExtraction
覆盖新增的边界校验场景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-10 09:13:20 +08:00 |
|
yangjianbo
|
58912d4ac5
|
perf(backend): 使用 gjson/sjson 优化热路径 JSON 处理
将 API 网关热路径中的 json.Unmarshal+json.Marshal 替换为 gjson 零拷贝查询和 sjson 精准写入:
- unwrapV1InternalResponse 性能提升 22x(4009ns→182ns),内存分配减少 28.5x
- unwrapGeminiResponse、extractGeminiUsage、estimateGeminiCountTokens、ParseGeminiRateLimitResetTime 改为接收 []byte 使用 gjson 提取
- ParseGatewayRequest 的 model/stream/metadata/thinking/max_tokens 改用 gjson 类型安全提取
- Handler 层(sora/openai)改用 gjson 提取字段、sjson 注入/修改字段,移除 map[string]any 中间变量
- Sora Client 响应解析改用 gjson ForEach 遍历,减少内存分配
- 新增约 100 个单元测试用例,所有改动函数覆盖率 >85%
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-10 08:59:30 +08:00 |
|
yangjianbo
|
29ca1290b3
|
chore(test): 清理测试用例与类型导入
|
2026-02-10 00:37:56 +08:00 |
|
yangjianbo
|
3fcb0cc37c
|
feat(subscription): 有界队列执行维护并改进鉴权解析
|
2026-02-10 00:37:47 +08:00 |
|
shaw
|
aa4b102108
|
fix: 移除Antigravity的apikey账户额外的表单
|
2026-02-09 22:15:14 +08:00 |
|
Rose Ding
|
e4bc35151f
|
test: 添加单账号 503 退避重试机制的单元测试
覆盖 Service 层和 Handler 层的所有新增逻辑:
- isSingleAccountRetry context 标记检查
- handleSmartRetry 中 503 + SingleAccountRetry 分支
- handleSingleAccountRetryInPlace 原地重试逻辑
- antigravityRetryLoop 预检查跳过限流
- sleepAntigravitySingleAccountBackoff 固定延迟退避
- 端到端集成场景验证
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-09 22:06:06 +08:00 |
|
yangjianbo
|
2bfb16291f
|
fix(unit): 修复 unit tag 测试编译与账号选择用例
|
2026-02-09 21:35:41 +08:00 |
|