song
|
b9b4db3df5
|
Merge upstream/main
|
2026-01-17 18:00:07 +08:00 |
|
shaw
|
7379423325
|
feat: 添加5h窗口费用控制和会话数量限制
- 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制
- 支持账号级别的并发会话数量限制
- 使用Redis缓存窗口费用(30秒TTL)减少数据库压力
- 费用计算基于标准费用(不含账号倍率)
|
2026-01-16 23:36:52 +08:00 |
|
song
|
34d6b0a601
|
feat(gateway): 账户切换次数和 Antigravity 限流时间可配置
- gateway.max_account_switches: 账户切换最大次数,默认 10
- gateway.max_account_switches_gemini: Gemini 账户切换次数,默认 3
- gateway.antigravity_fallback_cooldown_minutes: Antigravity 429 fallback 限流时间,默认 5 分钟
- Antigravity 429 不再重试,直接标记账户限流
|
2026-01-16 20:18:30 +08:00 |
|
longgexx
|
392a8ac7ea
|
修复格式问题。
|
2026-01-16 17:35:17 +08:00 |
|
longgexx
|
19865b865f
|
feat(group): 添加分组级别模型路由配置功能
支持为分组配置模型路由规则,可以指定特定模型模式优先使用的账号列表。
- 新增 model_routing 字段存储路由配置(JSONB格式,支持通配符匹配)
- 新增 model_routing_enabled 字段控制是否启用路由
- 更新后端 handler/service/repository 支持路由配置的增删改查
- 更新前端 GroupsView 添加路由配置界面
- 添加数据库迁移脚本 040/041
|
2026-01-16 17:26:05 +08:00 |
|
song
|
455576300c
|
fix(antigravity): 使用 Contains 匹配 missing_project_id 错误信息
|
2026-01-16 14:03:25 +08:00 |
|
song
|
821968903c
|
feat(antigravity): 手动刷新令牌时自动恢复 missing_project_id 错误账户状态
- 当手动刷新成功获取到 project_id,且之前错误为 missing_project_id 时,自动清除错误状态
- 后台自动刷新时同样支持状态恢复
|
2026-01-16 13:18:00 +08:00 |
|
song
|
95fe1e818f
|
fix: Antigravity 刷新 token 时检测 project_id 缺失
- 刷新 token 后调用 LoadCodeAssist 获取 project_id
- 如果获取失败,保留原有 project_id,标记账户为 error
- token 仍会正常更新,不影响凭证刷新
- 错误信息:账户缺少project id,可能无法使用Antigravity
|
2026-01-16 12:13:54 +08:00 |
|
LLLLLLiulei
|
aab44f9fc8
|
feat: add proxy geo location
|
2026-01-15 15:15:20 +08:00 |
|
LLLLLLiulei
|
87b4662993
|
Revert "feat: add proxy geo location"
This reverts commit 09c4f82927ddce1c9528c146a26457f53d02b034.
|
2026-01-15 15:01:50 +08:00 |
|
LLLLLLiulei
|
3a100339b9
|
feat: add proxy geo location
|
2026-01-15 15:01:50 +08:00 |
|
longgexx
|
4672a6fac3
|
merge: 合并上游 upstream/main 分支
解决冲突:
- usage_log_repo.go: 保留 groupID 和 stream 参数,同时合并上游的
account_rate_multiplier 逻辑
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-15 13:09:26 +08:00 |
|
Wesley Liddick
|
27214f8657
|
Merge pull request #285 from IanShaw027/fix/ops-bug
feat(ops): 增强错误日志管理、告警静默和前端 UI 优化
|
2026-01-15 11:26:16 +08:00 |
|
Wesley Liddick
|
28de614dfb
|
Merge pull request #282 from LLLLLLiulei/feat/ip-management-enhancements
feat: enhance proxy management
|
2026-01-15 11:23:17 +08:00 |
|
IanShaw027
|
2a6fb1e456
|
feat(ops): 添加用户信息显示和搜索功能
- 在错误日志列表和详情中显示用户邮箱
- 在 GetErrorLogByID 中关联 users 表获取用户邮箱
- 在 OpsErrorLogFilter 中添加 UserQuery 字段
- 在 buildOpsErrorLogsWhere 中添加用户邮箱搜索条件
- 在 GetErrorLogs handler 中支持 user_query 参数
|
2026-01-14 23:56:45 +08:00 |
|
IanShaw027
|
841d7ef2f2
|
fix(lint): 修复 golangci-lint 检查问题
- 格式化代码(gofmt)
- 修复空指针检查(staticcheck)
- 删除未使用的函数(unused)
|
2026-01-14 23:49:27 +08:00 |
|
IanShaw027
|
9584af5cb4
|
fix(ops): 优化错误日志查询和详情展示
- 新增 GetErrorLogByID 接口用于获取单个错误日志详情
- 优化 GetErrorLogs 过滤逻辑,简化参数处理
- 简化前端错误详情模态框代码,提升可维护性
- 更新相关 API 接口和 i18n 翻译
|
2026-01-14 23:16:01 +08:00 |
|
longgexx
|
806f402bba
|
fix(admin): 修复使用记录页面趋势图筛选联动和日期选择问题
修复两个问题:
1. Token使用趋势图和模型分布图未响应筛选条件
2. 上午时段选择今天刷新后日期回退到前一天
前端修改:
- 更新 dashboard API 类型定义,添加 model、account_id、group_id、stream 参数支持
- 修改 UsageView 趋势图加载逻辑,传递所有筛选参数到后端
- 修复日期格式化函数,使用本地时区避免 UTC 转换导致的日期偏移
后端修改:
- Handler 层:接收并解析所有筛选参数(model、account_id、group_id、stream)
- Service 层:传递完整的筛选参数到 Repository 层
- Repository 层:SQL 查询动态添加所有过滤条件
- 更新接口定义和所有调用点以保持一致性
影响范围:
- /admin/dashboard/trend 端点现支持完整筛选
- /admin/dashboard/models 端点现支持完整筛选
- 用户在后台使用记录页面选择任意筛选条件时,趋势图和模型分布图会实时响应
- 日期选择器在任何时区下都能正确保持今天的选择
|
2026-01-14 21:52:50 +08:00 |
|
LLLLLLiulei
|
9bdb45be7c
|
feat: enhance proxy management
|
2026-01-14 19:45:29 +08:00 |
|
IanShaw027
|
55e469c7fe
|
fix(ops): 优化错误日志过滤和查询逻辑
后端改动:
- 添加 resolved 参数默认值处理(向后兼容,默认显示未解决错误)
- 新增 status_codes_other 查询参数支持
- 移除 service 层的高级设置过滤逻辑,简化错误日志查询流程
前端改动:
- 完善错误日志相关组件的国际化支持
- 优化 Ops 监控面板和设置对话框的用户体验
|
2026-01-14 16:26:33 +08:00 |
|
墨颜
|
fb99ceacc7
|
feat(计费): 支持账号计费倍率快照与统计展示
- 新增 accounts.rate_multiplier(默认 1.0,允许 0)
- 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算
- 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
|
2026-01-14 16:12:08 +08:00 |
|
IanShaw027
|
8d0767352b
|
fix(ops): 修复ops handler逻辑
|
2026-01-14 14:30:41 +08:00 |
|
IanShaw027
|
7c4309ea24
|
feat(ops): 添加ops handler和路由配置
|
2026-01-14 14:29:01 +08:00 |
|
IanShaw027
|
2ca6c631ac
|
refactor(ops): 重构ops handler和repository层
|
2026-01-14 12:40:34 +08:00 |
|
IanShaw027
|
182683814b
|
refactor(ops): 移除duration相关告警指标,简化监控配置
主要改动:
- 移除 p95_latency_ms 和 p99_latency_ms 告警指标类型
- 移除配置中的 latency_p99_ms_max 阈值设置
- 简化健康分数计算(移除latency权重,重新归一化SLA和错误率)
- 移除duration相关的诊断规则和阈值检查
- 统一术语:延迟 → 请求时长
- 保留duration数据展示,但不再用于告警判断
- 聚焦TTFT作为主要的响应速度告警指标
影响范围:
- Backend: handler, service, models, tests
- Frontend: API types, i18n, components
|
2026-01-14 10:52:56 +08:00 |
|
IanShaw027
|
33f58d583d
|
fix(ops): 修复告警状态验证和错误处理逻辑
- 增强告警事件状态验证,添加合法状态值检查
- 移除重试逻辑中的遗留字段赋值
- 修正仓库不可用时的错误类型
- 格式化测试文件代码
|
2026-01-14 09:39:18 +08:00 |
|
IanShaw027
|
659df6e220
|
feat(handler): 新增ops管理接口和路由
- 添加告警静默管理接口
- 扩展错误日志查询和操作接口
- 新增重试和解决状态相关端点
- 完善错误日志记录功能
|
2026-01-14 09:03:35 +08:00 |
|
yangjianbo
|
70eaa450db
|
fix(网关): 修复工具续链校验与存储策略
完善 function_call_output 续链校验与引用匹配
续链场景强制 store=true,过滤 input 时避免副作用
补充续链判断与过滤相关单元测试
测试: go test ./...
|
2026-01-13 16:47:35 +08:00 |
|
Wesley Liddick
|
0df7385c4e
|
Merge pull request #226 from xilu0/main
feat(gateway): 优化 Antigravity/Gemini 思考块处理 此提交解决了思考块 (thinking blocks) 在转发过程中的兼容性问题
|
2026-01-13 09:39:43 +08:00 |
|
xiluo
|
524d80ae1c
|
feat(gateway): 优化 Antigravity/Gemini 思考块处理
此提交解决了思考块 (thinking blocks) 在转发过程中的兼容性问题。
主要变更:
1. **思考块优化 (Thinking Blocks)**:
- 在 AntigravityGatewayService 中增加了 sanitizeThinkingBlocks 处理,强制移除思考块中不支持的 cache_control 字段(避免 Anthropic/Vertex AI 报错)
- 实现历史思考块展平 (Flattening):将非最后一条消息中的思考块转换为普通文本块,以绕过上游对历史思考块签名的严格校验
- 增加 cleanCacheControlFromGeminiJSON 作为最后一道防线,确保转换后的 Gemini 请求中不残留非法的 cache_control
2. **GatewayService 缓存控制优化**:
- 更新缓存控制逻辑,跳过 thinking 块(thinking 块不支持 cache_control 字段)
- 增加 removeCacheControlFromThinkingBlocks 函数强制清理
关联 Issue: #225
|
2026-01-12 13:36:59 +00:00 |
|
shaw
|
22ef9534e0
|
fix: 修复反向代理下客户端 IP 获取错误
|
2026-01-12 20:44:38 +08:00 |
|
IanShaw027
|
345a965fa3
|
feat(ops): 添加 count_tokens 错误过滤功能
功能特性:
- 自动识别并标记 count_tokens 请求的错误
- 支持配置是否在统计中忽略 count_tokens 错误
- 错误数据完整保留,仅在统计时动态过滤
技术实现:
- ops_error_logger.go: 自动标记 count_tokens 请求
- ops_repo.go: INSERT 语句添加 is_count_tokens 字段
- ops_repo_dashboard.go: buildErrorWhere 核心过滤函数
- ops_repo_preagg.go: 预聚合统计中添加过滤
- ops_repo_trends.go: 趋势统计查询添加过滤(2 处)
- ops_settings_models.go: 添加 ignore_count_tokens_errors 配置
- ops_settings.go: 配置验证和默认值设置
- ops_port.go: 错误日志模型添加 IsCountTokens 字段
业务价值:
- count_tokens 是探测性请求,其错误不影响真实业务 SLA
- 用户可根据需求灵活控制是否计入统计
- 提升错误率、告警等运维指标的准确性
影响范围:
- Dashboard 概览统计
- 错误趋势图表
- 告警规则评估
- 预聚合指标(hourly/daily)
- 健康分数计算
|
2026-01-12 17:06:12 +08:00 |
|
shaw
|
8363663ea8
|
fix(gateway): 修复 usage_logs 记录 IP 不正确的问题
在 nginx 反向代理场景下,使用 ip.GetClientIP() 替代 c.ClientIP()
以正确获取客户端真实 IP 地址
|
2026-01-12 15:37:45 +08:00 |
|
Wesley Liddick
|
b588ea194c
|
Merge pull request #251 from IanShaw027/fix/ops-bugs
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
|
2026-01-12 15:26:26 +08:00 |
|
shaw
|
cf313d5761
|
fix(gateway): 修复 Claude Code 客户端检测和请求信息记录
- 在 Messages 方法中调用 SetClaudeCodeClientContext 启用客户端检测
- 修复 RecordUsageInput 未传递 UserAgent 和 IPAddress 的问题
|
2026-01-12 15:19:40 +08:00 |
|
IanShaw027
|
e0cccf6ed2
|
fix(ops): 修复Go代码格式问题
|
2026-01-12 14:36:32 +08:00 |
|
IanShaw027
|
62771583e7
|
feat(ops): 集成实时流量API接口
- 添加实时流量handler处理逻辑
- 注册实时流量路由
- 扩展ops service接口定义
|
2026-01-12 14:17:58 +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 |
|
IanShaw027
|
7536dbfee5
|
feat(ops): 后端添加指标阈值管理API
- 新增GetMetricThresholds和UpdateMetricThresholds接口
- 支持配置SLA、延迟P99、TTFT P99、请求错误率、上游错误率阈值
- 添加参数验证逻辑
- 提供默认阈值配置
|
2026-01-12 11:42:56 +08:00 |
|
shaw
|
50de5d05b0
|
fix: 修复PR合并后的功能回退和安全问题
|
2026-01-12 09:14:32 +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
|
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 |
|
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
|
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 |
|