Wesley Liddick
465ba76788
Merge pull request #250 from IanShaw027/fix/custom-error-codes-disable-scheduling
...
fix(gateway): 自定义错误码触发停止调度
2026-01-12 15:26:14 +08:00
shaw
cf313d5761
fix(gateway): 修复 Claude Code 客户端检测和请求信息记录
...
- 在 Messages 方法中调用 SetClaudeCodeClientContext 启用客户端检测
- 修复 RecordUsageInput 未传递 UserAgent 和 IPAddress 的问题
2026-01-12 15:19:40 +08:00
ianshaw
6dcb27632e
fix(gateway): 自定义错误码触发停止调度
...
- 修改 HandleUpstreamError 逻辑,启用自定义错误码时所有在列表中的错误码都会停止调度
- 添加 handleCustomErrorCode 函数处理自定义错误码的账号停用
- 前端添加 429/529 错误码的警告提示,因为这些错误码已有内置处理机制
- 更新 EditAccountModal、CreateAccountModal、BulkEditAccountModal 的错误码添加逻辑
2026-01-11 22:20:02 -08:00
Wesley Liddick
9c144587fe
Merge pull request #249 from IanShaw027/feat/stream-timeout-handling
...
feat(gateway): 添加流超时处理机制
2026-01-12 14:14:21 +08:00
ianshaw
0c52809591
refactor(settings): 简化流超时配置,移除冗余字段
...
- 移除 TimeoutSeconds 字段,超时判定由网关配置控制
- 默认禁用流超时处理功能
2026-01-11 22:09:35 -08:00
ianshaw
2a0758bdfe
feat(gateway): 添加流超时处理机制
...
- 添加 StreamTimeoutSettings 配置结构体和系统设置
- 实现 TimeoutCounterCache Redis 计数器用于累计超时次数
- 在 RateLimitService 添加 HandleStreamTimeout 方法
- 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理
- 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout
- 添加前端配置界面到系统设置页面
- 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口
默认配置:
- 启用:true
- 超时阈值:60秒
- 处理方式:临时不可调度
- 暂停时长:5分钟
- 触发阈值:3次
- 阈值窗口:10分钟
2026-01-11 21:54:52 -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
程序猿MT
fd8473f267
Merge branch 'Wei-Shaw:main' into main
2026-01-12 10:28:22 +08:00
shaw
cc4910dd30
fix(test): 修复聚合测试的时区边界条件问题
2026-01-12 09:23:46 +08:00
shaw
50de5d05b0
fix: 修复PR合并后的功能回退和安全问题
2026-01-12 09:14:32 +08:00
IanShaw027
c48795a948
fix(ci): 修复最后一批CI错误
...
- 修复 ops_repo_trends.go 中剩余3处 Rows.Close 未检查错误
- 修复 ops_settings.go, ops_settings_models.go, ops_trends.go 的格式化问题
2026-01-12 00:02:19 +08:00
IanShaw027
19b67e89a2
fix(ci): 修复剩余的CI错误
...
- 修复 ops_repo_latency_histogram_buckets.go 中另一个函数的 WriteString 未检查错误
- 修复 ops_repo_request_details.go 和 ops_repo_trends.go 中的 Rows.Close 未检查错误
- 修复 ops_alert_models.go, ops_cleanup_service.go, ops_request_details.go 的格式化问题
- 移除 ops_retry.go 中未使用的 status 字段
- 修复 maxTime 函数重复声明(将测试文件中的函数重命名为 testMaxTime)
2026-01-11 23:57:20 +08:00
IanShaw027
f017fd97c1
fix(ci): 修复所有CI失败问题
...
- 修复 ops_ws_handler.go 代码格式问题
- 修复所有未检查的错误返回值(Rows.Close 和 WriteString)
- 更新 .golangci.yml 排除 ops 相关服务文件的 redis 导入检查
2026-01-11 23:49:03 +08:00
IanShaw027
ce3336e3f4
fix(lint): 修复代码格式和未使用变量问题
...
- 修复 ops_ws_handler.go 中的代码格式和返回值
- 移除 ops_repo_latency_histogram_buckets.go 中不必要的错误检查
- 修复 api_contract_test.go 缩进并添加运维监控配置项测试
- 移除 ops_cleanup_service.go 中未使用的变量
- 添加 ops_retry.go 中缺失的 status 字段
2026-01-11 23:40:09 +08:00
IanShaw027
54c5788b86
fix(lint): 修复所有golangci-lint错误
...
- 修复depguard错误:为ops service文件添加redis导入例外
- 修复errcheck错误:添加错误检查和类型断言检查
- 修复gofmt错误:格式化代码
- 修复ineffassign错误:移除无效的idx++赋值
- 修复staticcheck错误:合并条件赋值
- 修复unused错误:移除未使用的字段和函数
- ops_cleanup_service.go: entryID字段
- ops_retry.go: status字段
- ops_upstream_context.go: getOpsUpstreamErrors函数
2026-01-11 23:26:29 +08:00
IanShaw027
4cb7b26f03
fix: 移除未使用的os包导入
2026-01-11 23:18:00 +08:00
IanShaw027
3dfb62e996
merge: 合并main分支最新改动
...
解决冲突:
- backend/internal/config/config.go: 合并Ops和Dashboard配置
- backend/internal/server/api_contract_test.go: 合并handler初始化
- backend/internal/service/openai_gateway_service.go: 保留Ops错误追踪逻辑
- backend/internal/service/wire.go: 合并Ops和APIKeyAuth provider
主要合并内容:
- Dashboard缓存和预聚合功能
- API Key认证缓存优化
- Codex转换支持
- 使用日志分区表
2026-01-11 23:15:01 +08:00
IanShaw027
73b62bb15c
feat(ops): 增强上游错误追踪和新增定时报告服务
...
- 优化错误日志中间件,即使请求成功也记录上游重试/故障转移事件
- 新增OpsScheduledReportService支持定时报告功能
- 使用Redis分布式锁确保定时任务单实例执行
- 完善依赖注入配置
- 优化前端错误趋势图表展示
2026-01-11 23:00:31 +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
IanShaw027
8fffcd8091
feat(ops): 优化健康评分算法和智能诊断机制
...
- 采用分层加权评分(业务70% + 基础设施30%),避免重复扣分
- 新增延迟诊断(P99 > 2s critical, > 1s warning)
- 新增资源诊断(CPU/内存/DB/Redis状态)
- 调整诊断阈值(上游错误率5% critical,请求错误率3% critical)
- 为每个诊断项添加可操作建议
- 添加完整的单元测试覆盖(30+测试用例)
- 完善中英文国际化文本
2026-01-11 21:42:02 +08:00
IanShaw027
76484bd5c9
chore(ops): 更新依赖注入配置
2026-01-11 20:56:10 +08:00
IanShaw027
e4ed35fe01
feat(ops): 增强告警评估和指标收集服务功能
2026-01-11 20:56:02 +08:00
IanShaw027
f5e45c1a8a
refactor(ops): 优化运维监控数据仓库层查询逻辑
2026-01-11 20:55:52 +08:00
IanShaw027
a2f83ff032
test(ops): 添加告警评估服务单元测试
2026-01-11 20:55:44 +08:00
Wesley Liddick
2b2f7a6dec
Merge pull request #237 from cyhhao/main
...
feat: 补充 OpenCode 使用密钥配置示例
2026-01-11 20:53:58 +08:00
yangjianbo
5f80760a8c
fix(账号管理): 修复BulkUpdateAccounts方法中的混合渠道检查逻辑缩进
2026-01-11 20:39:15 +08:00
IanShaw027
dd59e872ff
feat(ops): 添加分组和账号级别监控指标
...
- 后端新增 GetAccountAvailability 方法获取账号可用性数据
- 添加分组可用率和限流率计算辅助函数
- 前端支持分组和账号级别的监控指标类型
- 优化警报规则指标选择器,按类别分组显示
2026-01-11 20:33:52 +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
IanShaw027
c1a3dd41dd
feat(ops): 添加运维监控配置开关
...
- 在 .env.example 和 config.example.yaml 中添加 ops.enabled 配置项
- 默认值为 true,保持现有行为
- 当设置为 false 时,左侧栏隐藏运维监控菜单并禁用所有运维监控功能
- 修改后端 GetSettings API,让 ops_monitoring_enabled 受 config.ops.enabled 控制
- 数据清理和预聚合任务默认保持开启状态(通过运维监控设置对话框配置)
2026-01-11 20:10:08 +08:00
IanShaw027
988b4d0254
feat(ops): 添加高级设置API支持
...
- 新增OpsAdvancedSettings数据模型
- 支持数据保留策略配置(错误日志、分钟级指标、小时级指标)
- 支持数据聚合开关配置
- 添加GET/PUT /admin/ops/advanced-settings接口
- 添加配置校验和默认值处理
相关文件:
- backend/internal/service/ops_settings_models.go
- backend/internal/service/ops_settings.go
- backend/internal/handler/admin/ops_settings_handler.go
- backend/internal/server/routes/admin.go
- backend/internal/service/domain_constants.go
2026-01-11 19:51:18 +08:00
yangjianbo
48613558d4
fix(仪表盘): 修正分区迁移与范围测试
2026-01-11 19:01:15 +08:00
yangjianbo
4b66ee2f8f
chore(测试): 清理未使用导入
2026-01-11 18:49:57 +08:00
cyhhao
abbde130ab
Revert Codex OAuth fallback handling
2026-01-11 18:43:47 +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
IanShaw027
e5857161ff
feat(ops): 增强错误详情弹窗与API支持
...
**前端改动**:
1. OpsErrorDetailModal.vue:
- 新增上游错误详情展示功能
- 支持查看上游错误的请求头、响应体等调试信息
- 改进错误信息格式化与可读性
2. ops.ts API:
- 新增getUpstreamErrors接口调用上游错误查询API
**后端配置**:
- config.go/config.yaml/deploy/config.example.yaml:
- 更新配置支持上游错误事件记录开关
- 添加相关配置项文档说明
2026-01-11 15:31:48 +08:00
IanShaw027
7ebca553ef
feat(ops): 实现上游错误事件记录与查询功能
...
**新增功能**:
- 新建ops_upstream_error_events表存储上游服务错误详情
- 支持记录上游429/529/5xx错误的详细上下文信息
- 提供按时间范围查询上游错误事件的API
**后端改动**:
1. 模型层(ops_models.go, ops_port.go):
- 新增UpstreamErrorEvent结构体
- 扩展Repository接口支持上游错误事件CRUD
2. 仓储层(ops_repo.go):
- 实现InsertUpstreamErrorEvent写入上游错误
- 实现GetUpstreamErrorEvents按时间范围查询
3. 服务层(ops_service.go, ops_upstream_context.go):
- ops_service: 新增GetUpstreamErrorEvents查询方法
- ops_upstream_context: 封装上游错误上下文构建逻辑
4. Handler层(ops_error_logger.go):
- 新增GetUpstreamErrorsHandler处理上游错误查询请求
5. Gateway层集成:
- antigravity_gateway_service.go: 429/529错误时记录上游事件
- gateway_service.go: OpenAI 429/5xx错误时记录
- gemini_messages_compat_service.go: Gemini 429/5xx错误时记录
- openai_gateway_service.go: OpenAI 429/5xx错误时记录
- ratelimit_service.go: 429限流错误时记录
**数据记录字段**:
- request_id: 关联ops_logs主记录
- platform/model: 上游服务标识
- status_code/error_message: 错误详情
- request_headers/response_body: 调试信息(可选)
- created_at: 错误发生时间
2026-01-11 15:30:27 +08:00
yangjianbo
ab5839b461
fix(仪表盘): 修复缓存稳定性并补充测试
2026-01-11 15:00:16 +08:00
IanShaw027
89a725a433
feat(ops): 添加QPS脉搏线图并优化指标布局
...
- 添加实时QPS/TPS历史数据追踪(最近60个数据点)
- 在平均QPS/TPS上方添加SVG脉搏线图(sparkline)
- 将延迟和TTFT卡片的指标布局从2列改为3列
- 恢复Max指标显示(P95/P90/P50/Avg/Max)
2026-01-11 11:49:34 +08:00
IanShaw027
645609d441
merge: 正确合并 main 分支改动
...
合并 origin/main 最新改动,正确保留所有配置:
- Ops 运维监控配置和功能
- LinuxDo Connect OAuth 配置
- Update 在线更新配置
- 优惠码功能
- 其他 main 分支新功能
修复之前合并时错误删除 LinuxDo 和 Update 配置的问题。
2026-01-11 11:41:10 +08:00
IanShaw027
fc4ea65936
fix: 临时保存编译错误修复
...
- 添加 LinuxDo 和 Update 配置(从 main 分支缺失)
- 添加 LinuxDoConnectSyntheticEmailDomain 常量
- 添加 IsClaudeCodeClient context key
- 添加 GetLinuxDoConnectOAuthConfig 方法
- 修复 BindStickySession 调用签名
- 修复前端 i18n 重复属性
- 重新生成 wire 依赖注入代码
这个提交准备被合并替换,先保存以防丢失。
2026-01-11 10:59:01 +08:00
yangjianbo
d75cd820b0
fix(认证): 订阅兑换失效认证缓存
...
订阅兑换后同步失效认证缓存避免授权快照滞后
补充单测覆盖订阅兑换的失效场景
测试: go test ./... -tags=unit
2026-01-11 10:55:26 +08:00
yangjianbo
cb3e08dda4
fix(认证): 补齐余额与删除场景缓存失效
...
为 Usage/Promo/Redeem 注入认证缓存失效逻辑
删除用户与分组前先失效认证缓存降低窗口
补充回归测试验证失效调用
测试: make test
2026-01-11 10:55:25 +08:00