- 19 Jan, 2026 1 commit
-
-
shaw authored
- 新增 session_id_masking_enabled 配置,启用后将在15分钟内固定 metadata.user_id 中的 session ID - TLS fingerprint 模块日志从自定义 debugLog 迁移到 slog - main.go 添加 slog 初始化,根据 gin mode 设置日志级别 - 前端创建/编辑账号模态框添加会话ID伪装开关 - 多语言支持(中英文)
-
- 18 Jan, 2026 7 commits
-
-
shaw authored
- 分页接口 page_size 最大限制从 100 改为 1000 - 通过 Redis Pub/Sub 实现跨实例认证缓存失效 - 允许订阅类型分组编辑计费倍率 - 账号计费倍率支持 3 位小数
-
shaw authored
-
shaw authored
-
yangjianbo authored
分页组件支持隐藏每页条数选择器并新增跳转页输入 清理任务列表启用跳转页并固定每页 5 条 补充中英文分页文案
-
yangjianbo authored
新增 usage_cleanup_task Ent schema 与仓储实现,支持清理任务排序分页 补充清理任务全链路日志、仪表盘重算触发及 UI 过滤调整 完善 repository/service 单测并引入 sqlite 测试依赖
-
Gemini Wen authored
- 账号管理新增代理列显示和列设置下拉菜单 - 订阅管理新增列设置,支持用户列在邮箱/用户名间切换 - 列设置持久化到 localStorage - 统一列设置图标样式 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
-
- 16 Jan, 2026 9 commits
-
-
IanShaw027 authored
- 移除已弃用的 1.5 系列模型 - 调整模型优先级顺序(2.0 Flash > 2.5 Flash > 2.5 Pro > 3.0 Preview) - 同步前后端模型配置 - 更新相关测试用例和默认模型选择逻辑
-
shaw authored
- 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制 - 支持账号级别的并发会话数量限制 - 使用Redis缓存窗口费用(30秒TTL)减少数据库压力 - 费用计算基于标准费用(不含账号倍率)
-
yangjianbo authored
问题: - 原实现使用静态 import() 映射表 - Rollup 静态分析时将所有 37 个视图组件引用打包进 index.js - 导致首次加载时需要解析大量未使用的 import 语句 修复: - 移除静态 import() 映射,改用纯路径字符串邻接表 - 通过 router.getRoutes() 动态获取组件的 import 函数 - 延迟初始化 routePrefetch,首次导航时才创建实例 - 更新测试文件使用 mock router 效果: - index.js 中动态 import 引用从 37 个减少到 1 个 - 首次加载不再包含未使用的视图组件引用 - 41 个测试全部通过 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
- 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载 - 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc) - 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍 - 集成 Vitest 测试框架,添加 40 个单元测试和集成测试 - 支持 prefers-reduced-motion 和暗色模式 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
- 添加路由预加载功能,使用 requestIdleCallback 在浏览器空闲时预加载 - 配置 Vite manualChunks 分离 vendor 库(vue/ui/chart/i18n/misc) - 新增 NavigationProgress 导航进度条组件,支持防闪烁和无障碍 - 集成 Vitest 测试框架,添加 40 个单元测试和集成测试 - 支持 prefers-reduced-motion 和暗色模式 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
- 删除 Google Fonts @import,解决国内访问阻塞问题 - 使用 system-ui 优先的系统字体栈 - 添加中文字体支持(苹方、冬青黑、微软雅黑) - 移除 Inter 字体专用的 font-feature-settings 此改动可显著提升国内用户的页面加载速度,避免因 Google Fonts 被墙导致的渲染阻塞问题。 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
longgexx authored
支持为分组配置模型路由规则,可以指定特定模型模式优先使用的账号列表。 - 新增 model_routing 字段存储路由配置(JSONB格式,支持通配符匹配) - 新增 model_routing_enabled 字段控制是否启用路由 - 更新后端 handler/service/repository 支持路由配置的增删改查 - 更新前端 GroupsView 添加路由配置界面 - 添加数据库迁移脚本 040/041
-
yangjianbo authored
- 检测动态导入模块加载失败错误 - 自动刷新页面获取最新资源 - 使用 sessionStorage 防止无限刷新循环(10秒冷却) - 解决前端重新部署后用户缓存导致的加载失败问题 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
移除多余分号并整理 onMounted 代码块,确保 lint:check 通过。
-
- 15 Jan, 2026 13 commits
-
-
IanShaw027 authored
- 合并双定时器为单一倒计时定时器 - 倒计时归零时触发数据刷新 - 添加自定义时间范围的安全回退
-
IanShaw027 authored
- TTFT 定义统一改为"首 Token"/"First Token"(而非"首字节"/"first byte") - 请求时长卡片标题去掉"(毫秒)"/"(ms)"后缀
-
IanShaw027 authored
后端改动: - 添加 ops_job_heartbeats.last_result 字段记录任务执行结果 - 优化告警评估器统计信息(规则数/事件数/邮件数) - 统一各定时任务的心跳记录格式 前端改动: - 重构 OpsConcurrencyCard 使用父组件统一控制刷新节奏 - 移除独立的 5 秒刷新定时器,改用 refreshToken 机制 - 修复 TypeScript 类型错误
-
IanShaw027 authored
- 移除请求时长卡片详情按钮的 min_duration_ms 参数限制 - 现在点击详情会显示所有请求,按时长倒序排列 - 不再只显示 P99 以上的请求
-
IanShaw027 authored
功能特性: - 在时间段选择器中增加"自定义"选项 - 点击后弹出对话框,支持选择任意时间范围 - 使用 HTML5 datetime-local 输入框,体验友好 - 自定义时显示格式化的时间范围标签(MM-DD HH:mm ~ MM-DD HH:mm) - 默认初始化为最近1小时 技术实现: - 扩展 TimeRange 类型支持 'custom' - 添加 customStartTime 和 customEndTime 状态管理 - 创建 buildApiParams 辅助函数统一处理 API 参数 - 当选择自定义时,使用 start_time 和 end_time 参数替代 time_range - 更新所有相关 API 调用支持自定义时间范围 国际化: - 添加"自定义"、"开始时间"、"结束时间"翻译
-
IanShaw027 authored
阈值检查系统优化: - 引入三级阈值系统(normal/warning/critical) - 统一阈值判断逻辑,支持警告和严重两个级别 - 移除硬编码的 TTFT 颜色判断,改用阈值配置 - 新增 getThresholdColorClass 统一颜色映射 布局优化: - 优化详细指标在卡片内的响应式布局 - 改进宽屏下的卡片布局显示 - 优化指标数值的对齐和间距
-
yangjianbo authored
切换账号调度状态后,updateSchedulableInList 已完成局部更新, 无需再调用 load() 刷新整个列表。此修改减少不必要的 API 请求, 避免 UI 闪烁。 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
LLLLLLiulei authored
-
yangjianbo authored
-
LLLLLLiulei authored
This reverts commit 09c4f82927ddce1c9528c146a26457f53d02b034.
-
LLLLLLiulei authored
-
IanShaw027 authored
**问题描述**: - UsersView 的"更多"菜单仍然出现在页面左上角错误位置 - UsersView 使用 actionButtonRefs Map 获取按钮元素,导致定位失败 - UsersView 和 AccountsView 的菜单定位逻辑不一致,难以维护 **解决方案**: - 修改 openActionMenu 函数签名,添加 MouseEvent 参数 - 使用 e.currentTarget 直接从事件对象获取触发元素 - 移除不必要的 actionButtonRefs Map 和 setActionButtonRef 函数 - 统一菜单宽度为 200px(与 AccountsView 一致) - 完全复制 AccountsView 的定位逻辑,确保两者行为一致 **技术要点**: - 移动端:菜单居中对齐按钮,优先显示在按钮下方 - 桌面端:使用鼠标位置定位,添加边界检测 - 简化代码,移除不必要的防御性检查 - 两个组件的菜单定位逻辑完全一致,便于维护
-
IanShaw027 authored
**问题描述**: - 表格在移动端显示列过多,需要横向滚动,内容被截断 - 顶部操作栏按钮拥挤,占用过多空间 - 弹窗表单在小屏幕上布局不合理 - "更多"操作菜单定位错误,位置过高或超出屏幕 - 滚动页面时菜单不会自动关闭,与卡片分离 **解决方案**: 1. **DataTable 组件 - 移动端卡片视图** - 在 < 768px 时自动切换到卡片布局 - 每个表格行渲染为独立卡片,所有字段清晰可见 - 操作按钮在卡片底部,触摸目标足够大 - 支持深色模式,包含加载和空状态 - 自动应用于所有使用 DataTable 的管理页面 2. **UsersView 顶部操作栏优化** - 移动端:搜索框全宽 + 次要按钮显示为图标 + 创建按钮突出 - 桌面端:保持原有布局(图标 + 文字) - 使用响应式 Tailwind classes 3. **UserCreateModal 弹窗优化** - 余额/并发数字段:移动端单列,桌面端双列 - 弹窗边距:移动端 8px,桌面端 16px 4. **操作菜单定位修复** - UsersView: 移动端菜单居中对齐按钮,智能定位 - AccountsView: 移动端菜单优先显示在按钮下方 - 所有情况下确保菜单不超出屏幕边界 - 添加滚动监听,滚动时自动关闭菜单 **影响范围**: - 所有使用 DataTable 的管理页面(8 个页面)自动获得移动端卡片视图 - 用户管理和账号管理页面的操作菜单定位优化 - 创建用户弹窗的响应式布局优化 **技术要点**: - 使用 Tailwind 响应式断点(md:, sm:) - 触摸目标 ≥ 44px - 完整支持深色模式 - 向后兼容,桌面端保持原有布局
-
- 14 Jan, 2026 10 commits
-
-
IanShaw027 authored
- 修复错误列表中用户列显示 \n 的问题 - 上游错误显示账号(account),请求错误显示用户(user) - 错误详情模态框同步调整显示逻辑 - 添加 accountId 国际化翻译
-
IanShaw027 authored
- 修复 TypeScript 编译错误 - 添加 user_email 字段到 OpsErrorLog 接口
-
IanShaw027 authored
- 在中英文 i18n 文件中添加 errorLog.user 和 errorLog.userId - 在中英文 i18n 文件中添加 errorDetail.user - 支持错误日志和详情中的用户信息显示
-
IanShaw027 authored
- 在错误日志表格中将账号列替换为用户列 - 在错误详情模态框中将账号信息替换为用户信息 - 显示用户邮箱而不是账号名称 - 上游错误的账号信息保留在上游错误上下文中
-
IanShaw027 authored
- 添加 fullscreen 属性支持,适配全屏模式 - 优化骨架屏布局,更好地匹配实际看板结构 - 改进加载动画效果,提升用户体验
-
IanShaw027 authored
- 新增 GetErrorLogByID 接口用于获取单个错误日志详情 - 优化 GetErrorLogs 过滤逻辑,简化参数处理 - 简化前端错误详情模态框代码,提升可维护性 - 更新相关 API 接口和 i18n 翻译
-
longgexx authored
修复两个问题: 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 端点现支持完整筛选 - 用户在后台使用记录页面选择任意筛选条件时,趋势图和模型分布图会实时响应 - 日期选择器在任何时区下都能正确保持今天的选择
-
IanShaw027 authored
- 重构OpsErrorDetailModal.vue代码格式,提升可读性 - 添加上游错误tab显示功能 - 完善i18n翻译(upstream_http) - 优化其他ops组件代码格式
-
LLLLLLiulei authored
-
IanShaw027 authored
将技术术语的i18n翻译键替换为硬编码文本: - ms (P99) - 毫秒和百分位数标识 - TTFT - Time To First Token缩写 这些是通用技术术语,不需要国际化。
-