song
877c17251d
feat(group): 添加 MCP XML 注入开关
...
- Group 新增 mcp_xml_inject 字段,控制 Antigravity 平台的 MCP XML 协议注入
- 默认启用,可在分组设置中关闭
- 修复 GetByKeyForAuth 遗漏查询 mcp_xml_inject 字段导致认证缓存值始终为 false 的问题
2026-01-27 13:09:56 +08:00
song
fd0370c07a
Add invalid-request fallback routing
2026-01-23 22:24:46 +08:00
song
64795a03e3
新增账号凭证邮箱查询接口
2026-01-20 14:17:10 +08:00
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
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
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
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
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
Wesley Liddick
b588ea194c
Merge pull request #251 from IanShaw027/fix/ops-bugs
...
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
2026-01-12 15:26:26 +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
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
yangjianbo
1a869547d7
feat(仪表盘): 引入预聚合统计与聚合作业
2026-01-11 16:01:35 +08:00
IanShaw027
645609d441
merge: 正确合并 main 分支改动
...
合并 origin/main 最新改动,正确保留所有配置:
- Ops 运维监控配置和功能
- LinuxDo Connect OAuth 配置
- Update 在线更新配置
- 优惠码功能
- 其他 main 分支新功能
修复之前合并时错误删除 LinuxDo 和 Update 配置的问题。
2026-01-11 11:41:10 +08:00
Edric Li
f6f072cb9a
Merge branch 'main' into feat/api-key-ip-restriction
2026-01-10 18:49:50 +08:00
Edric Li
5265b12cc7
feat(settings): add home content customization and config injection
...
- Add home_content setting for custom homepage (HTML or iframe URL)
- Inject public settings into index.html to eliminate page flash
- Support ETag caching with automatic invalidation on settings update
- Add Vite plugin for dev mode settings injection
- Refactor HomeView to use appStore instead of local API calls
2026-01-10 18:37:44 +08:00
IanShaw027
3a67002cfe
merge: 合并主分支改动并保留 ops 监控实现
...
合并 main 分支的最新改动到 ops 监控分支。
冲突解决策略:保留当前分支的 ops 相关改动,接受主分支的其他改动。
保留的 ops 改动:
- 运维监控配置和依赖注入
- 运维监控 API 处理器和中间件
- 运维监控服务层和数据访问层
- 运维监控前端界面和状态管理
接受的主分支改动:
- Linux DO OAuth 集成
- 账号过期功能
- IP 地址限制功能
- 用量统计优化
- 其他 bug 修复和功能改进
2026-01-10 13:24:40 +08:00
long
9f4d4e5adf
feat: 实现注册优惠码功能
...
- 支持创建/编辑/删除优惠码,设置赠送金额和使用限制
- 注册页面实时验证优惠码并显示赠送金额
- 支持 URL 参数自动填充 (?promo=CODE)
- 添加优惠码验证接口速率限制
- 使用数据库行锁防止并发超限
- 新增后台优惠码管理页面,支持复制注册链接
2026-01-10 13:23:03 +08:00
long
d2fc14fb97
feat: 实现注册优惠码功能
...
- 支持创建/编辑/删除优惠码,设置赠送金额和使用限制
- 注册页面实时验证优惠码并显示赠送金额
- 支持 URL 参数自动填充 (?promo=CODE)
- 添加优惠码验证接口速率限制
- 使用数据库行锁防止并发超限
- 新增后台优惠码管理页面,支持复制注册链接
2026-01-10 13:14:35 +08:00
IanShaw027
585257d340
feat(运维监控): 增强监控功能和健康评分系统
...
后端改进:
- 新增健康评分计算服务(ops_health_score.go)
- 添加分布式锁支持(ops_advisory_lock.go)
- 优化指标采集和聚合逻辑
- 新增运维指标采集间隔配置(60-3600秒)
- 移除未使用的WebSocket查询token认证中间件
- 改进清理服务和告警评估逻辑
前端改进:
- 简化OpsDashboard组件结构
- 完善国际化文本(中英文)
- 新增运维监控相关API类型定义
- 添加运维指标采集间隔设置界面
- 优化错误详情模态框
测试:
- 添加健康评分单元测试
- 更新API契约测试
2026-01-10 01:38:47 +08:00
IanShaw027
2d123a11ad
feat(设置): 集成运维监控配置到系统设置
...
- 扩展 setting_handler 支持 ops 配置管理
- 扩展 setting_service 支持 ops 配置持久化
- 更新 settings_view 包含 ops 配置视图
2026-01-09 20:57:32 +08:00
IanShaw027
f3ed95d4de
feat(handler): 实现运维监控 API 处理器和中间件
...
- 新增 ops 错误日志记录器(ops_error_logger.go)
- 新增 ops 主处理器(ops_handler.go)
- 新增告警管理处理器(ops_alerts_handler.go)
- 新增仪表板处理器(ops_dashboard_handler.go)
- 新增实时监控处理器(ops_realtime_handler.go)
- 新增配置管理处理器(ops_settings_handler.go)
- 新增 WebSocket 处理器(ops_ws_handler.go)
- 扩展设置 DTO 支持 ops 配置
- 新增客户端请求 ID 中间件(client_request_id.go)
- 新增 WebSocket 查询令牌认证中间件(ws_query_token_auth.go)
- 更新管理员认证中间件支持 ops 路由
- 注册 handler 依赖注入
2026-01-09 20:54:26 +08:00
shaw
62dc0b953b
Merge branch 'fix/table-pagination-and-features'
2026-01-09 20:42:05 +08:00
IanShaw027
7c3d5cadd5
fix(admin): 代码审查修复 - 输入验证和测试完善
...
根据 Codex 代码审查报告,修复所有 P0 和 P1 优先级问题。
## P0 紧急修复
### 1. 修复集成测试编译错误
- 更新 group_repo_integration_test.go 中所有 ListWithFilters 调用
- 添加缺失的 search 参数(传入空字符串)
- 修复 4 处旧签名调用,避免 CI 编译失败
### 2. 添加统一的 search 参数输入验证
为所有 admin handler 添加一致的输入验证逻辑:
- group_handler.go: 添加 TrimSpace + 长度限制
- proxy_handler.go: 添加 TrimSpace + 长度限制
- redeem_handler.go: 添加 TrimSpace + 长度限制
- user_handler.go: 添加 TrimSpace + 长度限制
验证规则:
- TrimSpace() 去除首尾空格
- 最大长度 100 字符(防止 DoS 攻击)
- 超长输入自动截断
## P1 改进
### 3. 补充 search 功能的单元测试
新增 admin_service_group_test.go 中的测试:
- TestAdminService_ListGroups_WithSearch
- search 参数正常传递到 repository 层
- search 为空字符串时的行为
- search 与其他过滤条件组合使用
新增 admin_service_search_test.go 文件:
- 为其他 admin API 添加 search 测试覆盖
- 统一的测试模式和断言
### 4. 补充 search 功能的集成测试
新增 group_repo_integration_test.go 测试场景:
- TestListWithFilters_Search
- 搜索 name 字段匹配
- 搜索 description 字段匹配
- 搜索不存在内容(返回空)
- 大小写不敏感测试
- 特殊字符转义测试(%、_)
- 与其他过滤条件组合
## 测试结果
- ✅ 编译检查通过
- ✅ 单元测试全部通过 (3/3)
- ✅ 集成测试编译通过
- ✅ 所有 service 测试通过
## 影响范围
修改文件: 8 个
代码变更: +234 行 / -8 行
## 相关 Issue
解决代码审查中的安全性和稳定性问题:
- 防止 DoS 攻击(超长搜索字符串)
- 修复测试编译错误(CI 阻塞问题)
- 提升测试覆盖率
2026-01-09 19:43:19 +08:00