Repository navigation
Releases: PonyDevAI/dsh-system-hud
Releases · PonyDevAI/dsh-system-hud
Release list
v0.2.2
v0.2.1
修复 / 澄清
- CPU 行「容器 容器 4 核」重复:
containerCores文案改为{n} 核,与「容器」前缀组合为「容器 4 核 · 宿主 128 核」。 - 磁盘在 Linux 上始终显示「宿主分区」徽标,并在容量条下方给出
宿主分区 · 设备 → 挂载点(如overlay → /);设置页补充说明:容器空间配额无法在容器内读取,容量来自 overlay 底层宿主分区。 - 云手机更新后需重启 dsh 宿主,host 半区新增的
disk.scope/mount/source与温度/内存口径字段才会生效。
v0.2.0
云手机口径确认与标注完善
根据云手机诊断数据(cgroup v1,cpu.cfs_quota=400000/100000、memory.limit_in_bytes=8590983168、宿主 128 核 / 502 GiB)确认并改进:
- 核数:容器显示 4 核(cgroup 配额),同时标注「宿主 128 核」作为对照;宿主原始核数新增
host.hostCores。 - 内存:容器口径显示 ~1.01 GiB / 8.0 GiB、缓存 83 MB(容器
memory.stat),宿主总量 502 GiB 作为对照;0.1.7 修复后不再出现0B/63.3G(后者来自宿主Cached)。 - 温度:云手机只有虚拟 ACPI zone(
acpitz,51.3/54.6°C),标注改为「宿主 ACPI」,不再误称「宿主 SoC」。 - 磁盘:根文件系统是 overlay(
upperdir在宿主 containerd 快照目录),df /显示的是底层宿主分区容量(416G),确实不是容器配额;0.1.8 起标「宿主分区」。 - 网络:容器 netns(
eth0+tun0),不是整机全部网卡;运行时长是宿主内核 uptime。 - 新增云手机 cgroup v1 回归测试(真实数值),冒烟 41/41。
v0.1.8
说明 / 改进(云手机磁盘口径)
- 澄清磁盘口径:Linux 容器里只跑了
df -k /,拿到的是容器根挂载所在的宿主分区(云手机上就是/data分区),既不是整机所有磁盘,也不是容器配额。 - 快照新增
disk.mount/disk.source/disk.scope="mount";Linux 上面板显示「宿主分区」徽标,hover 可看设备 → 挂载点。 diagnostics增加dfRoot原始输出,便于确认云手机的挂载与容量。- 契约与冒烟测试同步(40 → 41 条)。
v0.1.7
修复(云手机 / Linux 容器)
- CPU 在 Linux 容器里永远显示
—:sampleFast的 cgroup 累计用量_cgUsage/_cgAt没有回传,下一轮拿不到基线;已修复并补测试。 - 内存口径错误(
0B / 8.0G、缓存 63.3G):容器内混用了「宿主 MemTotal/MemAvailable」与「cgroup 上限」。改为容器口径memory.current/memory.max/memory.stat.file,宿主总量单独保留(hostTotalBytes),无 cgroup 时回退宿主口径。 - 慢设备/云手机上 fast 层偶发被拖慢导致误报「已过期」:stale 阈值改为
max(4×周期, 8s)。 - 新增
POST /system-hud/diagnostics:返回/proc/self/cgroup、cgroup v1/v2 原始值、meminfo、thermal zones、网卡名,便于在云手机上确认真实数据源(只读、无凭据)。 - 契约新增字段:
cpu.scope/cgroupCores、memory.scope/cgroupVersion/hostTotalBytes/limitBytes、temperature.scope/zones、host.scope/uptimeScope; - UI:容器口径的内存/CPU 标注「容器」,温度标注「宿主 SoC」,内存图例显示「宿主 X」(与容器上限对照)。
0.1.4–0.1.6(隐私门禁、每核动态网格、cgroup 核数/上限)由并行会话发布;本版在其之上补齐 CPU 差分回传、容器内存口径与诊断通道。
v0.1.6
修复(容器/云手机环境读到宿主机规格)
在 4 核 / 8G 的容器里,面板会显示「128 核 · 内存 137G / 502G」——因为 os.cpus() 与 /proc/meminfo 看到的是宿主机,没有读 cgroup 配额。
- 核数:新增
readCgroupCores()(v2cpu.max/ v1cpu.cfs_quota_us+cfs_period_us/cpuset.cpus.effective),与os.cpus()取 min - 内存:新增
readCgroupMemBytes()(v2memory.max/ v1memory.limit_in_bytes,max视为不限),total 取 min(宿主机, cgroup),used = total - available - CPU 使用率:容器限核时改用
cpu.stat的usage_usec增量 ÷(耗时 × 配额核数),不再用宿主机 128 核口径;此场景隐藏"每核占用"网格(宿主机核与容器配额无映射关系) - 新增纯函数
parseCpuMax/countCpuList及 6 条冒烟断言(39/39 通过)
v0.1.5
修复(多核机器上右侧面板布局重叠)
- 每核占用网格固定高度导致溢出:
.huds-coregrid原来grid-template-columns:repeat(10,1fr)+height:30px,128 核时需要 13 行,内容溢出并压住后面的「磁盘 / 温度」卡片(在 128 核 Linux 机器上复现) - 改为按核数动态列数(≤24 核 10 列 / ≤48 核 14 列 / >48 核 20 列),容器
height:auto+max-height:66px+overflow:hidden,行高统一grid-auto-rows:6px,柱高按行高换算 - 128 核离线合成渲染验证:柱状在 20 列内排完,后续卡片不再被覆盖
v0.1.4
隐私
- 文档与离线 harness 的示例机型统一改为
Example Mac/Apple M2 Pro/macOS 15.0:移除真实机型与真实会话标题;scripts/smoke.mjsfixture 同步脱敏(品牌串、网卡地址)。 - 删除含真实运行数据的截图:
docs/screenshots/03-live-hero.png…07-live-settings-nav.png与docs/mockups/**效果图;只保留由scripts/render-test.mjs用假数据重新生成的01-regions.png/02-settings.png,并新增docs/screenshots/MANIFEST.md登记来源。 - 新增门禁
scripts/check-privacy.mjs(本机绝对路径 / 私有主机名 / 凭据)与scripts/check-shots.mjs(截图必须由离线 harness 生成并在 MANIFEST 登记),接入npm run check、CI 与 release。
修复
.github/workflows/release.yml:node scripts/verify-plugin.mjs原先因缩进被 YAML 折叠进上一步name,从未执行;现移入run:块,发布时恢复插件标识一致性校验。
打包
files由"docs"改为"docs/*.md":只发布文档,不再把截图 / 效果图打进 npm 包。
v0.1.3
修复
- 右侧面板内存/磁盘的「值 / 总量」缺少空格(
22.1G/ 32.0G→22.1G / 32.0G)。
v0.1.2
改进(右侧「系统」面板重设计)
- 面板改成响应式:右栏默认(420px)单列,≥600px 双列(左 CPU/磁盘/温度,右 内存/网络/更多),进程表通栏;不再被拉宽成单列稀疏布局。
- CPU:主值收进 64px 环形(不再重复大数字),右侧接 60s 趋势 + 峰值;每核改成 10 列小网格,带 0–100% 基准与最高/最低。
- 内存:分段条(已用/缓存)+ 图例(可用/交换)。
- 磁盘:剩余百分比徽标 + 读写速率;网络:上行/下行各一行 + 独立 sparkline + 累计流量。
- 温度不可用改为显式虚线说明条(不再整块消失);首帧/过期仍按策略显示
—。 - Top 进程:表头 + 按 CPU/按内存排序 + 行内占比条。
- 底部新增 功耗/运行时长/核数 chips。
- 修复:stale 判定按 section 采样周期(fast/slow/top),内存/磁盘不再误报「已过期」。
- 默认隐藏指标从
["load","processes"]改为["load"](Top 进程默认可见)。 - 设计规范见
docs/PANEL-DESIGN.md,效果图docs/mockups/panel-redesign/。