IanShaw027
2548800c3f
feat(ui): 增强Select组件功能和样式
2026-01-11 20:56:27 +08:00
IanShaw027
9dce8a5388
i18n(ops): 添加运维监控相关国际化文本
2026-01-11 20:56:19 +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
IanShaw027
1b938b2003
feat(ops): 统一弹窗组件并优化分页设置
...
- OpsErrorDetailsModal和OpsRequestDetailsModal改用BaseDialog统一弹窗组件
- 分页默认值从50改为20条,减少单页数据量
- OpsAlertEventsCard表格添加sticky表头,优化滚动体验
- 移除自定义Teleport和Transition实现,使用统一组件
2026-01-11 20:41:39 +08:00
IanShaw027
dd59e872ff
feat(ops): 添加分组和账号级别监控指标
...
- 后端新增 GetAccountAvailability 方法获取账号可用性数据
- 添加分组可用率和限流率计算辅助函数
- 前端支持分组和账号级别的监控指标类型
- 优化警报规则指标选择器,按类别分组显示
2026-01-11 20:33:52 +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
63dc6a68df
feat(ops): 隐藏查询模式选择器
...
- 在OpsDashboardHeader中隐藏queryMode选择器(使用v-if="false")
- 保留所有后端逻辑和前端状态管理
- auto模式逻辑:优先使用预聚合数据,不存在时回退到实时计算
- 用户界面更简洁,后端自动选择最优查询方式
相关文件:
- frontend/src/views/admin/ops/components/OpsDashboardHeader.vue
2026-01-11 19:58:38 +08:00
IanShaw027
a39316e004
feat(ops): 集成运维监控设置对话框到仪表盘
...
- 在OpsDashboardHeader添加设置和警报规则按钮
- 在OpsDashboard集成OpsSettingsDialog组件
- 添加警报规则弹窗展示
- 添加高级设置API类型定义
- 支持从Header快速访问设置和规则管理
相关文件:
- frontend/src/api/admin/ops.ts
- frontend/src/views/admin/ops/types.ts
- frontend/src/views/admin/ops/OpsDashboard.vue
- frontend/src/views/admin/ops/components/OpsDashboardHeader.vue
2026-01-11 19:51:37 +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
IanShaw027
f541636840
feat(ops): 优化警报规则和设置的成功提示信息
...
- 添加警报规则保存成功提示:"警报规则保存成功"
- 添加警报规则删除成功提示:"警报规则删除成功"
- 添加运维监控设置保存成功提示:"运维监控设置保存成功"
- 替换通用的"操作成功"提示为具体的业务提示
- 失败时显示后端返回的详细错误信息
相关文件:
- frontend/src/i18n/locales/zh.ts
- frontend/src/views/admin/ops/components/OpsAlertRulesCard.vue
- frontend/src/views/admin/ops/components/OpsSettingsDialog.vue
2026-01-11 19:50:43 +08:00
IanShaw027
e4bc9f6fb0
feat(ops): 优化仪表盘Header响应式布局与指标展示
...
**响应式优化**:
- 添加flex-wrap支持窄屏时间选择器自动换行
- 当前QPS/TPS在窄屏时自动换行,避免溢出
- 时间按钮在窄屏使用更小字号和间距(9px/1.5px)
- 当前数值使用响应式字体(xl→sm:2xl)
**指标展示优化**:
1. 请求卡片:
- 标题简化:总请求 → 请求
- 字段调整:请求 → 请求数
- 移除:平均延迟、平均首字延迟(避免冗余)
2. 延迟和TTFT卡片:
- 布局:grid → flex-wrap(自适应布局)
- 指标不换行:添加whitespace-nowrap
- 最小宽度:min-w-[60px]保证可读性
- 单位内联:名称、数值、单位在同一行(P95: 123 ms)
- 自动换行:整个指标项作为整体换行
**效果**:
- 窄屏:所有元素自动适配,无溢出
- 宽屏:充分利用空间,清晰展示
- 灵活布局:根据容器宽度自动调整指标排列
2026-01-11 15:50:26 +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
abdc4f39cb
feat(ops): 恢复仪表盘脉搏动画效果
...
- 将静态QPS历史折线图替换为动画脉搏线
- 使用SVG animate元素实现心跳效果(2秒循环动画)
- 增强流量可视化:通过脉冲跳动直观展示流量"活跃"状态
- 恢复重构前的视觉效果与用户体验
2026-01-11 15:30:59 +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
IanShaw027
c2962752eb
feat(ops): 添加上游错误事件数据库表
...
- 新建ops_upstream_error_events表存储上游服务错误详情
- 记录上游错误的请求ID、平台、模型、状态码等信息
- 支持索引优化查询性能(request_id, platform, status_code, created_at)
2026-01-11 15:29:59 +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
shaw
56fc2764e4
chore: remove accidentally committed test binary
2026-01-11 10:37:09 +08:00
Wesley Liddick
0c4f1762c9
Merge pull request #232 from Edric-Li/feat/api-key-ip-restriction
...
feat(settings): 首页自定义内容 & 配置注入优化
2026-01-11 10:36:01 +08:00
Edric Li
0fa5a6015e
feat(settings): add iframe CSP warning for home content
...
Add a warning message to inform admins that some websites may have
X-Frame-Options or CSP policies that prevent iframe embedding.
2026-01-10 22:35:33 +08:00
kzw200015
24d19a5f78
fix: 从codex请求参数中移除max_output_tokens ( #231 )
...
某些客户端比如 opencode 会在请求中附加 max_output_tokens,这会导致上游返回400错误
2026-01-10 19:37:04 +08:00
Edric Li
3fb4a2b0ff
style: replace interface{} with any per golangci-lint rules
2026-01-10 19:08:41 +08:00
Edric Li
0772cdda0f
fix: update API contract test for home_content field and fix gofmt
2026-01-10 19:01:00 +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
shaw
ff0875868e
Merge PR #229 : perf(网关): 粘性会话命中复用候选账号
2026-01-10 15:21:59 +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
shaw
d1a6d6b1cf
Merge branch 'mt21625457/main'
2026-01-10 14:44:58 +08:00
yangjianbo
7a0ca05233
perf(网关): 粘性会话命中复用候选账号
...
使用候选账号映射避免粘性命中时额外的 GetByID 查询
新增单测确保粘性命中不触发 GetByID 且提前返回
2026-01-10 14:39:33 +08:00
shaw
15884f368d
Merge branch 'longgexx/main'
2026-01-10 14:16:13 +08:00
shaw
b03fb9c2f6
fix: remove accidentally committed test binary and restore .gitignore
...
- Remove backend/repository.test (62MB macOS arm64 test binary)
- Restore *.test pattern in .gitignore to prevent future accidents
2026-01-10 14:16:06 +08:00
shaw
3d4984133e
chore: 删除误提交的 Go 测试二进制并更新 .gitignore
2026-01-10 14:03:41 +08:00
IanShaw027
13ae0ce7b0
refactor(migration): 重命名 ops 迁移文件避免编号冲突
...
将 030_ops_monitoring_vnext.sql 重命名为 033_ops_monitoring_vnext.sql
以避免与主分支的 030_add_account_expires_at.sql 冲突。
2026-01-10 13:26:01 +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
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
IanShaw027
c48dc097ff
feat(运维监控): 重构仪表板布局和增强数据展示
...
主要改动:
- 重构仪表板为左右布局(5:7比例)
- 左侧:健康评分 + 实时信息(当前/峰值/平均 QPS/TPS)
- 右侧:6个卡片展示详细指标(3列x2行)
- 总请求:请求数、Token数、平均QPS/TPS、平均延迟/TTFT
- SLA:百分比、异常数、进度条
- 延迟:P99/P95/P90/P50/Avg/Max(带颜色编码)
- TTFT:P99/P95/P90/P50/Avg/Max(带颜色编码)
- 请求错误:错误率、错误数、业务限制数
- 上游错误:错误率、错误数(排除429/529)、429/529数
- 添加延迟/TTFT颜色编码(<500ms绿色,<1s黄色,<2s橙色,≥2s红色)
- 添加实时窗口选择器(1min/5min/30min/1h)
- 优化时间段选择器标签("近5分钟"等)
- 完善中英文i18n翻译
- 数据库:添加Redis连接池字段(redis_conn_total, redis_conn_idle)
2026-01-10 02:17:38 +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
yangjianbo
675543240e
perf(网关): 复用分组上下文减少热路径查询
...
新增 GetByIDLite 并在网关与 Gemini 选择流程复用上下文 group,避免 COUNT 触发
更新 API key 中间件注入 group 上下文,减少重复查库
补充 gateway/gemini 中间件与仓库层回归测试
测试: make test
2026-01-09 23:01:42 +08:00