"backend/internal/vscode:/vscode.git/clone" did not exist on "59231668c52697b5cff0b9e87b9055e1e362ab00"
  1. 14 Jan, 2026 1 commit
    • 墨颜's avatar
      feat(计费): 支持账号计费倍率快照与统计展示 · fb99ceac
      墨颜 authored
      - 新增 accounts.rate_multiplier(默认 1.0,允许 0)
      - 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算
      - 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
      fb99ceac
  2. 12 Jan, 2026 14 commits
    • Edric Li's avatar
      feat(ops): 添加运维监控全屏模式 · 0da51507
      Edric Li authored
      - 支持通过 URL 参数 ?fullscreen=1 进入全屏模式
      - 全屏模式下隐藏非必要 UI 元素(选择器、按钮、提示等)
      - 增大健康评分圆环和字体以提升可读性
      - 支持 ESC 键退出全屏
      - 添加全屏按钮的 i18n 翻译
      0da51507
    • IanShaw027's avatar
      6ad29a47
    • IanShaw027's avatar
      feat(ops): 添加自动刷新配置功能 · b98fb013
      IanShaw027 authored
      功能特性:
      - 支持配置启用/禁用自动刷新
      - 可配置刷新间隔(15秒/30秒/60秒)
      - 实时倒计时显示,用户可见下次刷新时间
      - 手动刷新自动重置倒计时
      - 页面卸载时自动清理定时器
      
      用户体验:
      - 默认禁用,用户可根据需求开启
      - 与现有 OpsConcurrencyCard 5秒刷新保持一致
      - 倒计时带旋转动画,视觉反馈清晰
      - 配置修改后立即生效,无需刷新页面
      
      技术实现:
      - ops.ts: 添加 auto_refresh_enabled 和 auto_refresh_interval_seconds 配置
      - OpsSettingsDialog.vue: 添加自动刷新配置界面
      - OpsDashboard.vue: 实现主刷新逻辑和双定时器设计
      - OpsDashboardHeader.vue: 倒计时显示组件
      
      配置说明:
      - auto_refresh_enabled: 是否启用(默认 false)
      - auto_refresh_interval_seconds: 刷新间隔(默认 30 秒,范围 15-300 秒)
      b98fb013
    • shaw's avatar
      fix(frontend): 修复账号管理页面分组显示和 Cookie 授权问题 · 68ba866c
      shaw authored
      - 新增 AccountGroupsCell 组件优化分组列显示(最多4个+折叠)
      - 修复 Cookie 自动授权时 group_ids/notes/expires_at 字段丢失
      - 修复 SettingsView 流超时配置前后端字段不一致问题
      68ba866c
    • yangjianbo's avatar
      fix(调度): 修复流超时配置并补回放测试 · 8c1958c9
      yangjianbo authored
      删除前端未支持的 timeout_seconds 字段,避免类型检查失败
      新增调度 outbox 回放集成测试
      调整调度默认等待超时断言
      
      测试: make test
      8c1958c9
    • IanShaw027's avatar
      fix(ops): 修复错误日志和请求详情模态框的布局问题 · 89c1a413
      IanShaw027 authored
      - 修复 OpsErrorDetailsModal 的内容溢出问题,使用 flex 布局确保正确显示
      - 修复 OpsErrorLogTable 的表格滚动问题,添加 min-h-0 确保正确的滚动行为
      - 修复 OpsRequestDetailsModal 的布局问题,添加 pageSize 初始化并优化 flex 布局
      - 统一使用 flex 布局模式,确保模态框内容在不同屏幕尺寸下正确显示
      89c1a413
    • IanShaw027's avatar
      feat(ops): 前端集成实时流量功能 · 5443efd7
      IanShaw027 authored
      - 添加实时流量API调用方法
      - 优化OpsDashboard组件代码
      5443efd7
    • IanShaw027's avatar
      fix(ops): 修正卡片标题翻译 · 8e248e08
      IanShaw027 authored
      - 卡片标题显示"请求"
      - 卡片内部标签保持"请求数"
      8e248e08
    • ianshaw's avatar
      feat(gateway): 添加流超时处理机制 · 2a0758bd
      ianshaw authored
      - 添加 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分钟
      2a0758bd
    • IanShaw027's avatar
      fix(ops): 优化卡片标题和明细筛选逻辑 · f55ba3f6
      IanShaw027 authored
      - 将"请求数"改为"请求"
      - SLA卡片明细只显示错误请求(kind='error')
      - TTFT卡片明细按延迟降序排序
      f55ba3f6
    • IanShaw027's avatar
      feat(ops): 看板上应用指标阈值显示 · 72a2ed95
      IanShaw027 authored
      - 在OpsDashboard中加载阈值配置
      - 在OpsDashboardHeader中根据阈值判断指标是否超标
      - 超出阈值的指标显示为红色(SLA低于阈值也显示红色)
      - 用Icon组件替换emoji表情
      72a2ed95
    • IanShaw027's avatar
      feat(ops): 添加指标阈值配置UI · d0b91a40
      IanShaw027 authored
      - 在OpsSettingsDialog中添加指标阈值配置表单
      - 在OpsRuntimeSettingsCard中添加阈值配置区域
      - 添加阈值验证逻辑
      - 更新国际化文本
      d0b91a40
    • IanShaw027's avatar
      feat(ops): 前端添加指标阈值类型定义和API · f28d4b78
      IanShaw027 authored
      - 添加OpsMetricThresholds类型定义
      - 新增getMetricThresholds和updateMetricThresholds API方法
      f28d4b78
    • shaw's avatar
      50de5d05
  3. 11 Jan, 2026 16 commits
    • IanShaw027's avatar
      refactor(ops): 从系统设置页面移除运维监控配置项 · d5c711d0
      IanShaw027 authored
      - 移除Ops Monitoring设置卡片及相关配置项
      - 移除ops相关组件导入和展示逻辑
      - 相关配置已迁移至运维监控页面统一管理
      d5c711d0
    • IanShaw027's avatar
      feat(ops): 增强上游错误追踪和新增定时报告服务 · 73b62bb1
      IanShaw027 authored
      - 优化错误日志中间件,即使请求成功也记录上游重试/故障转移事件
      - 新增OpsScheduledReportService支持定时报告功能
      - 使用Redis分布式锁确保定时任务单实例执行
      - 完善依赖注入配置
      - 优化前端错误趋势图表展示
      73b62bb1
    • IanShaw027's avatar
      feat(ops): 优化健康评分算法和智能诊断机制 · 8fffcd80
      IanShaw027 authored
      - 采用分层加权评分(业务70% + 基础设施30%),避免重复扣分
      - 新增延迟诊断(P99 > 2s critical, > 1s warning)
      - 新增资源诊断(CPU/内存/DB/Redis状态)
      - 调整诊断阈值(上游错误率5% critical,请求错误率3% critical)
      - 为每个诊断项添加可操作建议
      - 添加完整的单元测试覆盖(30+测试用例)
      - 完善中英文国际化文本
      8fffcd80
    • IanShaw027's avatar
    • IanShaw027's avatar
    • IanShaw027's avatar
      92eafbc2
    • IanShaw027's avatar
      feat(ops): 统一弹窗组件并优化分页设置 · 1b938b20
      IanShaw027 authored
      - OpsErrorDetailsModal和OpsRequestDetailsModal改用BaseDialog统一弹窗组件
      - 分页默认值从50改为20条,减少单页数据量
      - OpsAlertEventsCard表格添加sticky表头,优化滚动体验
      - 移除自定义Teleport和Transition实现,使用统一组件
      1b938b20
    • IanShaw027's avatar
      feat(ops): 添加分组和账号级别监控指标 · dd59e872
      IanShaw027 authored
      - 后端新增 GetAccountAvailability 方法获取账号可用性数据
      - 添加分组可用率和限流率计算辅助函数
      - 前端支持分组和账号级别的监控指标类型
      - 优化警报规则指标选择器,按类别分组显示
      dd59e872
    • yangjianbo's avatar
      fix(账号管理): 调度批量结果明细与刷新优化 · 32953405
      yangjianbo authored
      补充批量调度返回 success_ids/failed_ids 并增加合约/单测
      
      前端加入降级处理与部分失败提示,表格行使用稳定 key
      
      测试: make test-frontend
      
      测试: go test ./internal/service -run BulkUpdateAccounts -tags=unit
      
      测试: go test ./internal/server -run APIContracts -tags=unit
      32953405
    • IanShaw027's avatar
      feat(ops): 隐藏查询模式选择器 · 63dc6a68
      IanShaw027 authored
      - 在OpsDashboardHeader中隐藏queryMode选择器(使用v-if="false")
      - 保留所有后端逻辑和前端状态管理
      - auto模式逻辑:优先使用预聚合数据,不存在时回退到实时计算
      - 用户界面更简洁,后端自动选择最优查询方式
      
      相关文件:
      - frontend/src/views/admin/ops/components/OpsDashboardHeader.vue
      63dc6a68
    • IanShaw027's avatar
      feat(ops): 集成运维监控设置对话框到仪表盘 · a39316e0
      IanShaw027 authored
      - 在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
      a39316e0
    • IanShaw027's avatar
      feat(ops): 优化警报规则和设置的成功提示信息 · f5416368
      IanShaw027 authored
      - 添加警报规则保存成功提示:"警报规则保存成功"
      - 添加警报规则删除成功提示:"警报规则删除成功"
      - 添加运维监控设置保存成功提示:"运维监控设置保存成功"
      - 替换通用的"操作成功"提示为具体的业务提示
      - 失败时显示后端返回的详细错误信息
      
      相关文件:
      - frontend/src/i18n/locales/zh.ts
      - frontend/src/views/admin/ops/components/OpsAlertRulesCard.vue
      - frontend/src/views/admin/ops/components/OpsSettingsDialog.vue
      f5416368
    • IanShaw027's avatar
      feat(ops): 优化仪表盘Header响应式布局与指标展示 · e4bc9f6f
      IanShaw027 authored
      **响应式优化**:
      - 添加flex-wrap支持窄屏时间选择器自动换行
      - 当前QPS/TPS在窄屏时自动换行,避免溢出
      - 时间按钮在窄屏使用更小字号和间距(9px/1.5px)
      - 当前数值使用响应式字体(xl→sm:2xl)
      
      **指标展示优化**:
      1. 请求卡片:
         - 标题简化:总请求 → 请求
         - 字段调整:请求 → 请求数
         - 移除:平均延迟、平均首字延迟(避免冗余)
      
      2. 延迟和TTFT卡片:
         - 布局:grid → flex-wrap(自适应布局)
         - 指标不换行:添加whitespace-nowrap
         - 最小宽度:min-w-[60px]保证可读性
         - 单位内联:名称、数值、单位在同一行(P95: 123 ms)
         - 自动换行:整个指标项作为整体换行
      
      **效果**:
      - 窄屏:所有元素自动适配,无溢出
      - 宽屏:充分利用空间,清晰展示
      - 灵活布局:根据容器宽度自动调整指标排列
      e4bc9f6f
    • IanShaw027's avatar
      feat(ops): 增强错误详情弹窗与API支持 · e5857161
      IanShaw027 authored
      **前端改动**:
      1. OpsErrorDetailModal.vue:
         - 新增上游错误详情展示功能
         - 支持查看上游错误的请求头、响应体等调试信息
         - 改进错误信息格式化与可读性
      
      2. ops.ts API:
         - 新增getUpstreamErrors接口调用上游错误查询API
      
      **后端配置**:
      - config.go/config.yaml/deploy/config.example.yaml:
        - 更新配置支持上游错误事件记录开关
        - 添加相关配置项文档说明
      e5857161
    • IanShaw027's avatar
      feat(ops): 恢复仪表盘脉搏动画效果 · abdc4f39
      IanShaw027 authored
      - 将静态QPS历史折线图替换为动画脉搏线
      - 使用SVG animate元素实现心跳效果(2秒循环动画)
      - 增强流量可视化:通过脉冲跳动直观展示流量"活跃"状态
      - 恢复重构前的视觉效果与用户体验
      abdc4f39
    • IanShaw027's avatar
      feat(ops): 添加QPS脉搏线图并优化指标布局 · 89a725a4
      IanShaw027 authored
      - 添加实时QPS/TPS历史数据追踪(最近60个数据点)
      - 在平均QPS/TPS上方添加SVG脉搏线图(sparkline)
      - 将延迟和TTFT卡片的指标布局从2列改为3列
      - 恢复Max指标显示(P95/P90/P50/Avg/Max)
      89a725a4
  4. 10 Jan, 2026 3 commits
    • Edric Li's avatar
      feat(settings): add iframe CSP warning for home content · 0fa5a601
      Edric Li authored
      Add a warning message to inform admins that some websites may have
      X-Frame-Options or CSP policies that prevent iframe embedding.
      0fa5a601
    • Edric Li's avatar
      feat(settings): add home content customization and config injection · 5265b12c
      Edric Li authored
      - 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
      5265b12c
    • long's avatar
      feat: 实现注册优惠码功能 · d2fc14fb
      long authored
        - 支持创建/编辑/删除优惠码,设置赠送金额和使用限制
        - 注册页面实时验证优惠码并显示赠送金额
        - 支持 URL 参数自动填充 (?promo=CODE)
        - 添加优惠码验证接口速率限制
        - 使用数据库行锁防止并发超限
        - 新增后台优惠码管理页面,支持复制注册链接
      d2fc14fb
  5. 09 Jan, 2026 6 commits
    • IanShaw027's avatar
      feat(运维监控): 重构仪表板布局和增强数据展示 · c48dc097
      IanShaw027 authored
      主要改动:
      - 重构仪表板为左右布局(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)
      c48dc097
    • IanShaw027's avatar
      feat(运维监控): 增强监控功能和健康评分系统 · 585257d3
      IanShaw027 authored
      后端改进:
      - 新增健康评分计算服务(ops_health_score.go)
      - 添加分布式锁支持(ops_advisory_lock.go)
      - 优化指标采集和聚合逻辑
      - 新增运维指标采集间隔配置(60-3600秒)
      - 移除未使用的WebSocket查询token认证中间件
      - 改进清理服务和告警评估逻辑
      
      前端改进:
      - 简化OpsDashboard组件结构
      - 完善国际化文本(中英文)
      - 新增运维监控相关API类型定义
      - 添加运维指标采集间隔设置界面
      - 优化错误详情模态框
      
      测试:
      - 添加健康评分单元测试
      - 更新API契约测试
      585257d3
    • Edric.Li's avatar
      feat(api-key): 添加 IP 白名单/黑名单限制功能 (#221) · 0a4641c2
      Edric.Li authored
      * feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking
      
      - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support)
      - Add IP address logging to usage logs (admin-only visibility)
      - Remove billing_type column from usage logs UI (redundant)
      - Use generic "Access denied" error message for security
      
      Backend:
      - New ip package with IP/CIDR validation and matching utilities
      - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs)
      - Middleware IP restriction check after API key validation
      - Input validation for IP/CIDR patterns on create/update
      
      Frontend:
      - API key form with enable toggle for IP restriction
      - Shield icon indicator in table for keys with IP restriction
      - Removed billing_type filter and column from usage views
      
      * fix: update API contract tests for ip_whitelist/ip_blacklist fields
      
      Add ip_whitelist and ip_blacklist fields to expected JSON responses
      in API contract tests to match the new API key schema.
      0a4641c2
    • Edric Li's avatar
      feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking · 90798f14
      Edric Li authored
      - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support)
      - Add IP address logging to usage logs (admin-only visibility)
      - Remove billing_type column from usage logs UI (redundant)
      - Use generic "Access denied" error message for security
      
      Backend:
      - New ip package with IP/CIDR validation and matching utilities
      - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs)
      - Middleware IP restriction check after API key validation
      - Input validation for IP/CIDR patterns on create/update
      
      Frontend:
      - API key form with enable toggle for IP restriction
      - Shield icon indicator in table for keys with IP restriction
      - Removed billing_type filter and column from usage views
      90798f14
    • IanShaw027's avatar
      feat(前端UI): 实现运维监控前端界面 · 8ae75e7f
      IanShaw027 authored
      - 新增帮助提示组件(HelpTooltip.vue)
      - 更新侧边栏添加 ops 监控菜单项
      - 扩展设置视图集成 ops 配置面板
      - 新增 ops 监控视图目录(dashboard, alerts, realtime, settings 等)
      8ae75e7f
    • shaw's avatar
      f060db0b