Commit Graph

243 Commits

Author SHA1 Message Date
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
qinglong ff693465f6 docs: README + API_Auth + Security_Plan + Plugin_Guide 更新至 v0.7.0
- README: 新功能列表、start.sh、架构图
- API_Auth_Flow: 新增 API Key 认证章节
- Security_Hardening_Plan: 标记全部完成
- Plugin_Dev_Guide: 新增插件导入安装章节

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 20:56:50 +08:00
qinglong 3e106001ed feat: 无头启动脚本 start.sh / start.bat (依赖检测 + 配置模板复制) 2026-06-13 20:55:28 +08:00
qinglong 279ddfbdc9 fix: SystemMonitor.refresh() 移除不存在的 _refresh_stats 调用 2026-06-13 20:54:35 +08:00
qinglong eba035db64 chore: 移除自动生成的配置文件 (多用户协作冲突) 2026-06-13 20:53:26 +08:00
qinglong 3724021d81 style: Sentinel MEM 详情右对齐到标签旁 (12.8/14.8 GB) 2026-06-13 20:50:13 +08:00
qinglong faf695e361 style: 状态emoji(🔄) → 纯文本符号(✓✗↻) 2026-06-13 20:49:17 +08:00
qinglong 30bc4cc945 chore: 删除合并残留 main.py.clean/orig + gitignore *.orig *.clean 2026-06-13 20:47:48 +08:00
qinglong 899bef7781 feat: 设备卡片显示系统名+版本 + 项目根 version.json
- SystemInfoCollector.platform 新增 release 字段 (内核版本)
- Sentinel 卡片每台设备显示: Linux 6.12.23 | aarch64
- 数据刷新时同步更新系统信息行
- 项目根 version.json: 本地版本清单

当前版本检测:
  UpdateService 每6h从 {repo}/raw/branch/{branch}/version.json 拉取
  对比 base_config.yaml 的 framework.version
  远程 > 本地 → 顶栏绿色按钮 + 设置页更新提示

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 20:47:22 +08:00
qinglong c8f2cb7b98 fix: Sentinel 编辑节点时 api_key 留空 → 保留旧值 2026-06-13 20:44:44 +08:00
qinglong cc50ecb813 fix: Windows兼容 + Textual 8.x + MD3 SVG图标替代emoji
1. Windows: reuse_port 仅非win32平台启用
2. Textual 8.2.7: refresh() 加 **kwargs 兼容 repaint 参数
3. WebUI: 设置页/插件页 emoji → SVG (fill:currentColor 日夜间适配)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 20:42:22 +08:00
qinglong 9a9a2975de feat: WebUI 版本检测 — 顶栏按钮 + 设置页备份/回滚/更新管理
顶栏:
- 版本号按钮, 有更新时变绿色并显示新版本号
- 每10分钟自动检查

设置页新增「版本与更新」区域:
- 当前版本 + 更新状态徽章
- 检查更新 / 立即更新 按钮
- 备份列表 + 手动回滚

API:
- GET /api/updates/backups — 备份列表
- POST /api/updates/rollback — 执行回滚

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 20:39:28 +08:00
qinglong c20417ff93 feat: 更新服务 — ZIP下载/备份/回滚/重启
UpdateService:
- 分支感知: 从 base_config 读取 branch, 拼接 archive/{branch}.zip
- 定时检查: 每6h 拉取 version.json 比对版本
- 更新前自动打包备份 (zip, 保留最新5个)
- 保护用户配置: base_config.yaml / plugins/*/config.yaml / data/
- 子进程 pip install 依赖

API:
- GET /api/updates — 更新状态
- POST /api/updates/check — 手动检查
- POST /api/updates/apply — 执行更新

回滚:
- python main.py --rollback  — 恢复到最新备份
- 无备份时提示

重启:
- .restart_flag 信号文件 → 优雅退出 → systemd 拉起

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 20:32:42 +08:00
qinglong 6e0ed23012 fix: 页面 HTML 加载加 ?t= 缓存破坏 + app.js 版本号 0704→0705 2026-06-13 18:49:49 +08:00