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 |
|
qinglong
|
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 |
|
qinglong
|
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 |
|
qinglong
|
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 |
|
qinglong
|
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 |
|
qinglong
|
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 |
|
qinglong
|
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 |
|
AskaEth
|
1301aeb9b7
|
fix: 启动脚本绑定 venv Python + 缺依赖自动安装
- start.bat: 改用 .venv\Scripts\python.exe,缺依赖时自动 pip install
- start.sh: 优先 .venv/bin/python3,fallback 到系统 python3/python
- 两个脚本均不再依赖 uv,使用标准 python -m venv + pip
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-13 21:02:01 +08:00 |
|
qinglong
|
ead7d2056b
|
chore: 移除临时开发文档 (进度/踩坑/备份/结构) — docs/ gitignore + 白名单
|
2026-06-13 20:59:05 +08:00 |
|