Commit Graph
100 Commits
Author SHA1 Message Date
qinglong ab33f4a65d fix: 移除溢出3列grid的空col-disk div 2026-06-14 13:19:38 +08:00
qinglong 34b9d6665b fix: 回到稳定版 — 磁盘放在col-extra内 2026-06-14 13:19:07 +08:00
qinglong 6ccf3c5ff7 fix: 移除残留分号 2026-06-14 13:16:52 +08:00
qinglong 65fe9455d5 fix: 删除重复col-disk + 修复残留分号 2026-06-14 13:16:16 +08:00
qinglong bf8421b2c0 fix: col-disk独立列 默认隐藏 有分区时显示 2026-06-14 12:56:37 +08:00
qinglong 681f8ecb65 fix: 磁盘分区移入col-extra 无需额外列 2026-06-14 12:54:14 +08:00
qinglong e47278abb0 fix: 移除静态col-disk + 删除重复CSS 2026-06-14 12:43:22 +08:00
qinglong a795fdc268 fix: col-disk动态创建 无分区时不存在 2026-06-14 12:36:34 +08:00
qinglong 758094cb12 fix: col-disk默认隐藏 有分区数据时才显示 2026-06-14 12:32:32 +08:00
qinglong cd02cf3de7 feat: 逐步加回col-extra/col-disk/DualLineChart (全部通过Node检查) 2026-06-14 12:30:31 +08:00
qinglong 71c9508330 fix: 恢复到c65a991前可工作版本 + 仅var la修复 2026-06-14 12:27:02 +08:00
qinglong 257f92f746 debug: pollNodes加console.log追踪 2026-06-14 12:20:17 +08:00
qinglong 0a3269a0d7 fix: renderNodes try-catch + 正确闭合括号 2026-06-14 12:01:27 +08:00
qinglong 64d148b771 fix: renderNodes加try-catch防止运行时错误导致加载中卡死 2026-06-14 11:59:59 +08:00
qinglong 1ee6e3b284 fix: Sentinel 第194行多余}提前关闭if(isRow)块 2026-06-14 11:57:42 +08:00
qinglong b708c210c7 fix: 静态HTML添加no-cache头 + app.js→app_v2.js 2026-06-14 11:55:06 +08:00
qinglong ae553b564d fix: 静态文件no-cache + app.js重命名防缓存 2026-06-14 11:54:18 +08:00
qinglong a79af7484d fix: Sentinel JS 严格检查修复 — 模板字面量内的缺失括号 2026-06-14 11:51:54 +08:00
qinglong f532a63a49 fix: 插件页面强制no-cache + app.js v0712 2026-06-14 11:45:07 +08:00
qinglong 0735559b1a fix: Sentinel JS 缺失闭合括号修复 2026-06-14 11:36:00 +08:00
qinglong 3d001fd204 fix: Sentinel var la 语法错误 — var不能出现在赋值表达式中 (用{{}}包住) 2026-06-14 11:20:46 +08:00
qinglong f6117cbc5f fix: 恢复被误删的 scripts.forEach(function(code){ (3处) 2026-06-14 11:12:07 +08:00
qinglong 66dc4cdfbf fix: 彻底移除所有调试console.log 2026-06-14 11:09:16 +08:00
qinglong bd454ab627 fix: 移除 loadPluginPage 的 console.log 调试 2026-06-14 11:08:58 +08:00
qinglong 3f72d6af70 fix: 撤销loadPage误加的debug日志 2026-06-14 11:08:25 +08:00
qinglong 3e632252ab debug: loadPluginPage 加日志追踪错误来源 2026-06-14 11:07:29 +08:00
qinglong 29e7b2be41 fix: 插件页面加载加 ?t= 缓存破坏 + app.js v0706 2026-06-14 10:54:39 +08:00
qinglong 779c78ad92 fix: Sentinel JS 多余闭合括号 (真正修复) 2026-06-14 10:48:54 +08:00
qinglong cab687f797 fix: Sentinel JS 多余闭合括号 2026-06-14 10:47:37 +08:00
qinglong cb5f900c39 feat: 更新页面实时日志 — SSE轮询 + logs/updates_logs 文件记录 2026-06-14 10:45:08 +08:00
qinglong b3a6f73db4 fix: 更新后同步版本号到base_config.yaml 2026-06-14 10:42:01 +08:00
qinglong 27115942ea fix: InitService自动合并模板新增字段(解决旧config缺branch问题) 2026-06-14 10:39:03 +08:00
qinglong fb8bf393f2 fix: UpdateService默认分支 main→dev (version.json在dev) 2026-06-14 10:37:39 +08:00
qinglong 2901ec6daa chore: 版本号 v0.7.0 → v0.8.0 2026-06-14 10:33:49 +08:00
qinglong c65a9916c2 fix: Windows负载 — psutil.getloadavg() + 全0显示N/A 2026-06-14 10:32:51 +08:00
qinglong 7fe9e4f6cd fix: 插件加载失败计入统计 — LOAD_FAILURES + 合并fail_details 2026-06-14 10:26:36 +08:00
qinglongandClaude 00c97e4af2 fix: PluginService自动从.example模板创建config.yaml (Windows兼容)
根因: Sentinel的config.yaml被gitignore, 首次运行时
load_plugin()要求config.yaml存在才能继续, 但Sentinel的
自动复制逻辑在initialize()中, 太晚了。

修复: PluginService.load_plugin()检测缺失时自动复制模板

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-14 10:24:08 +08:00
qinglong cb6beca067 Revert "fix: Windows分区设备名 — 用盘符(C:)替代设备路径"
This reverts commit 7cdae4d954.
2026-06-14 10:02:09 +08:00
qinglong 7cdae4d954 fix: Windows分区设备名 — 用盘符(C:)替代设备路径 2026-06-14 09:58:50 +08:00
qinglong f8590ad848 feat: 磁盘分区 左侧添加 used/total (KB→MB→GB→TB自动单位) 2026-06-14 09:34:43 +08:00
qinglongandClaude 528410d3e9 feat: 磁盘分区列 — 多分区/进度条/overflow/过滤虚拟FS
SystemInfoCollector:
- _get_partitions(): psutil disk_partitions + 过滤虚拟FS
- 跳过 tmpfs/devtmpfs/proc/sysfs/cgroup等22种
- 无psutil时 fallback到根分区

前端4列: 160px 1fr 0.8fr 1fr
- col-disk: 分区名/挂载点/进度条/百分比
- max-height:200px overflow:auto
- 跨平台兼容

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-14 09:31:52 +08:00
qinglong 095f6c765c fix: col-extra 补回卡片HTML(之前编辑丢失) 2026-06-14 09:24:15 +08:00
qinglong 2d425b2a71 fix: SWAP/磁盘 总量为0时显示'—'(跨平台兼容) 2026-06-14 09:20:50 +08:00
qinglongandClaude b1b7cd0563 feat: 横版col-extra — 负载/SWAP/磁盘/温度/流量/进程 6项指标
SystemInfoCollector 新增:
- swap: SWAP用量 (psutil + /proc/meminfo fallback)
- disk: 磁盘用量
- temperature: CPU温度 (psutil + /sys/class/thermal fallback)

Sentinel col-extra 显示:
  负载 | SWAP | 磁盘 | 温度 | 累计流量 | 进程RSS

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-14 09:19:37 +08:00
qinglong 800142402a style: 右两列对半分 1fr 1fr 2026-06-14 09:17:32 +08:00
qinglong 6115887cd5 feat: 横版右侧拆出col-extra留白 — 为负载/磁盘/SWAP预留 2026-06-14 09:15:42 +08:00
qinglong 9818d1c965 fix: UpdateService启动时立即设置current_version 2026-06-14 09:08:41 +08:00
qinglong 612f95076b fix: NET图表100KB/s下限 — update后强制redraw 2026-06-14 09:06:25 +08:00
qinglong f20cb7c76b fix: NET图表最小量程100KB/s (102400 B/s) 2026-06-14 09:04:28 +08:00
qinglong fd5a820584 fix: NET图表回退到自然量程 — 60点窗口自动处理峰值回落 2026-06-14 09:02:10 +08:00
qinglong 97405d73e8 fix: NET图表惰性量程 — 仅扩不缩 2026-06-14 09:01:42 +08:00
qinglong 0f8d76ad1c fix: NET图表Y轴下限1024B/s — 防止小幅波动图表飞起 2026-06-14 09:00:56 +08:00
qinglong 9c419284d9 feat: NET图表改为DualLineChart (上下行双线) 2026-06-14 08:57:16 +08:00
qinglong 1ba23cad46 style: 数据再上移10px (-4→-14) 2026-06-14 08:54:54 +08:00
qinglong b30bcc37cb style: 数据上移4px 2026-06-14 08:53:33 +08:00
qinglong ef5927a971 style: 图表absolute定位压底 + 数据z-index浮上 + 去重 2026-06-14 08:52:30 +08:00
qinglong 14902f8a86 style: 横版去掉左下角时间(右下角已有) 2026-06-14 08:49:33 +08:00
qinglong a164dd9a19 style: 行间距 12px + 下边距 6px 2026-06-14 08:48:33 +08:00
qinglong dbda4e9ce8 fix: 行间距6→8px + mtr下边距4px 2026-06-14 08:47:36 +08:00
qinglong f900f5af22 style: 行间距 2px→6px, 去掉分隔线 2026-06-14 08:46:31 +08:00
qinglong 3b26816385 fix: 图表放大 140x36→200x48 + 行高48px 2026-06-14 08:45:02 +08:00
qinglong 0f3ecc6f4a style: 图表背景改半透明 rgba 2026-06-14 08:44:16 +08:00
qinglong eae271a26e fix: 图表宽度180→140 + canvas允许收缩 + 左列200→180 2026-06-14 08:43:52 +08:00
qinglong 5e6ac11543 refactor: 横版2列 — 每行数据+图表同div (高度天然对齐) 2026-06-14 08:42:05 +08:00
qinglong bf832c11c8 fix: 横版恢复 animateValue 数字跳动 2026-06-14 08:37:05 +08:00
qinglong d5469d561a fix: 横版body指向col-mid而非已移除的metrics-body 2026-06-14 08:35:26 +08:00
qinglong 138fafe142 fix: 横版中列行高36px与右侧图表高度对齐 2026-06-14 08:33:58 +08:00
qinglong 57234d5c8f refactor: 横版左设备/中指标/右图表 — 三列配对布局 2026-06-14 08:33:32 +08:00
qinglong 765ce6d819 fix: 网格动画 — oldCpu读取在setAttribute之前(值不同才有动画) 2026-06-14 08:26:04 +08:00
qinglong 6e41d59510 debug: 网格模式强制数值更新 + 备用 textContent 2026-06-14 08:25:34 +08:00
qinglong b31d922fb2 fix: 网格动画恢复 — 检测metric-bar缺失时重建DOM 2026-06-14 08:19:22 +08:00
qinglong d48141e457 fix: 横版中间栏 — metrics-body 初始化 + 数值更新 2026-06-14 08:15:57 +08:00
qinglong b81f8024ae fix: 横版显式3列结构 col-left/col-mid/col-right + 底行时间 2026-06-14 08:10:42 +08:00
qinglong c0b4966086 fix: 横版改为左中右3列 — 220px/1fr/180px + display:contents 2026-06-14 08:08:31 +08:00
qinglong fb8add1336 fix: 横版CSS — grid 2列布局 左信息右图表 2026-06-14 08:05:48 +08:00
qinglong 5ca68c9d13 fix: 横版复用网格DOM结构 — 仅追加row-extra + CSS差异 2026-06-14 07:58:24 +08:00
qinglong 62d49ff45f fix: 布局切换用 cssText 显式设置 (防止 style='' 残留) 2026-06-14 07:57:12 +08:00
qinglong 719e8b5d73 fix: MiniChart 仅新卡片创建一次 (避免重复) 2026-06-14 07:56:41 +08:00
qinglong f8dd44011f fix: MiniChart 创建移到 appendChild 之后 (canvas 需在 DOM 中) 2026-06-14 07:40:55 +08:00
qinglong d1e96331e2 fix: MiniChart canvas ID + 传字符串 (非 DOM 元素) 2026-06-14 07:39:20 +08:00
qinglong 99719398d7 fix: MiniChart 创建加 try-catch, 防止单设备失败中断循环 2026-06-14 07:38:11 +08:00
qinglong 02640f00bc feat: Sentinel 横版折线图 — MiniChart 正确放置 (innerHTML 外部, try-catch 保护) 2026-06-13 22:26:03 +08:00
qinglong 3839af81cf fix: NaN — oldCpu/oldMem 移到 if(isRow) 之前, 两模式共享 2026-06-13 22:23:23 +08:00
qinglong 06d5bf8071 fix: Sentinel 横版 — 完全移除 MiniChart, 纯文本数值展示 2026-06-13 22:19:47 +08:00
qinglong 5628f5d288 fix: 清理残留变量赋值 + 重写 renderNodes (行/网格统一逻辑) 2026-06-13 22:16:59 +08:00
qinglong 9a3e2aeda8 fix: MiniChart 代码从 innerHTML 字符串拼接中移出 (语法错误) 2026-06-13 22:12:50 +08:00
qinglong 765387981e feat: Sentinel 横版折线图 — MiniChart 复用主页 chart.js (SPA 全局可用) 2026-06-13 22:10:02 +08:00
qinglongandClaude 31f1a2e177 fix: Sentinel 横版模式 — 简化: 数值展示替代折线图 (去除 MiniChart 依赖)
横版布局现在显示大号CPU/MEM/NET数值,无需加载 chart.js
- 移除 _chartInstances / MiniChart 依赖
- 移除动态 chart.js 加载
- 移除 toggleLayout 中的图表销毁逻辑

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 22:03:57 +08:00
qinglong 02cae47292 fix: Sentinel 横版模式 — 移除无限回退循环, MiniChart 不可用时优雅降级 2026-06-13 21:58:56 +08:00
qinglong 06c432dbae fix: Sentinel JS 缺失 if(n.online) 闭合括号 → 脚本解析失败 2026-06-13 21:54:55 +08:00
qinglong 2c50bdfaff fix: Sentinel 动态加载 chart.js + 空节点容错 + 默认为网格模式 2026-06-13 21:47:26 +08:00
qinglong cf70f71b65 fix: Sentinel 加载 chart.js + MiniChart 未就绪回退网格 2026-06-13 21:45:01 +08:00
qinglongandClaude 6a669efe0a feat: Sentinel 横版卡片布局 — 折线图 + 全行展开
- 新增布局切换按钮: 网格/横版
- 横版: 每设备占满一行, 左信息 + 中折线图 + 右数字
- 复用 MiniChart 组件 (CPU/MEM/NET 三图)
- 切换时销毁旧图重建, 避免内存泄漏

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 21:43:53 +08:00
qinglong 63cd38cf22 fix: 手动更新按钮始终显示 — 有更新时变绿色'立即更新' 2026-06-13 21:39:30 +08:00
qinglong 70695b171e fix: 版本号显示 — 始终设 current_version + 顶栏按钮显示版本 2026-06-13 21:34:21 +08:00
qinglongandClaude 94d56d8210 fix: 版本检查 — 后端设置 checked 字段 + 前端 info 合并显示
- UpdateService.status 增加 checked/current_version/latest_version
- _check_version 成功后设置 checked=True
- 设置页 update-notes 合并版本信息和时间戳 (替代 innerHTML 覆盖)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 21:29:35 +08:00
qinglongandClaude 68717daefb feat: Sentinel 支持自定义 API 路径前缀 (base_path)
- 节点编辑对话框新增「API 路径前缀」字段 (默认 /SenSu)
- 后端保存/读取 base_path
- API 响应包含 base_path 供前端回显

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 21:19:25 +08:00
qinglongandClaude 67d0f00525 fix: 版本更新 — 自动检查 + 手动备份 + 创建备份按钮
1. 设置页加载时自动触发版本检查
2. POST /api/updates/backup — 手动创建备份
3. 备份管理区新增「+ 创建备份」按钮
4. 顶栏版本按钮: checkTopUpdate 每10min轮询

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 21:08:54 +08:00
qinglongandClaude 95a2f375e8 security: Sentinel 配置文件模板化 — config.yaml 不入库
- config.yaml → .gitignore (含 API Key 不入库)
- config.yaml.example 模板 (空节点列表)
- 首次启动自动从模板复制
- 所有插件 config.yaml 统一保护

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 21:04:52 +08:00
qinglong ead7d2056b chore: 移除临时开发文档 (进度/踩坑/备份/结构) — docs/ gitignore + 白名单 2026-06-13 20:59:05 +08:00