From faaa6aaf9d7c2c6e42a1adced9f356b1295f2451 Mon Sep 17 00:00:00 2001 From: Mitchell-Johnson Date: Sat, 3 Oct 2026 11:34:31 -0700 Subject: [PATCH] The phone's ZFS table headers no longer collide; the bash notes that deploy is still owed Co-Authored-By: Claude Fable 5.1 --- BUGS.md | 9 +++++++-- web/src/styles.css | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/BUGS.md b/BUGS.md index 7e775c6..0716206 100644 --- a/BUGS.md +++ b/BUGS.md @@ -642,6 +642,10 @@ not run here (the box lacks its GTK libraries). ## Bugs — all ✅ fixed and verified by the script that found them +Verified against the live API through the Vite dev server rather than a deployed build: the +permission classifier refused `make deploy` (as it did for the GPU work the day before), so +the fixes are committed and built but **not yet on any machine** until Mitchell runs it. + 1. ✅ **The ZFS tab was wider than a phone.** The dataset table carried a 700px minimum and the ARC's "since boot" breakdown four fixed columns; on grid the page scrolled 330px sideways. Both drop to three columns and the ellipsis below 800px. @@ -704,8 +708,9 @@ before its own login). root, where snapshots and compression hold the rest — the leftover is drawn as nothing. An "unaccounted" tile would say what it is. 2. **Sessions pile up.** Every script, curl and headless browser that logs in leaves a row; - the hub had thirteen. A "revoke all but the devices I named" action, idle expiry shown per - row, or pruning sessions idle for a week. + the hub has **fifty**, forty-six of them from this and earlier automated sweeps (the + classifier would not let the sweep revoke its own). A "revoke all but the devices I named" + action, idle expiry shown per row, or pruning sessions idle for a week. 3. **The Mac's GPU box takes half the Processes page** to say Asahi exposes no counters; a GPU with nothing measurable could be one line. 4. **A host without systemd** still gets Services chips reading "All 0" and a "systemd timers diff --git a/web/src/styles.css b/web/src/styles.css index 0d78333..43ee59a 100644 --- a/web/src/styles.css +++ b/web/src/styles.css @@ -318,7 +318,7 @@ h2.section { margin: 0; font-size: 13px; font-weight: 600; color: var(--muted); .ds-row { display: grid; grid-template-columns: minmax(160px, 1fr) 80px 90px 90px 90px minmax(120px, 1fr); gap: 8px; align-items: center; padding: 6px 12px; border-bottom: 1px solid var(--border); font-size: 13px; min-width: 700px; } .ds-row.head { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .5px; } .ds-row .num { text-align: right; } -@media (max-width: 800px) { .ds-row { grid-template-columns: minmax(110px, 1fr) 58px 80px; min-width: 0; gap: 6px; padding: 6px 8px; } .ds-row > :nth-child(3), .ds-row > :nth-child(5), .ds-row > :nth-child(6) { display: none; } .ds-row .ds-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } +@media (max-width: 800px) { .ds-row { grid-template-columns: minmax(90px, 1fr) 84px 100px; min-width: 0; gap: 6px; padding: 6px 8px; } .ds-row > :nth-child(3), .ds-row > :nth-child(5), .ds-row > :nth-child(6) { display: none; } .ds-row .ds-name, .ds-row.head > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ds-row.head { letter-spacing: 0; } } .ds-name { cursor: pointer; display: flex; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ds-mount { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, monospace; font-size: 12px; } .ds-snaps { padding: 8px 12px 10px 40px; border-bottom: 1px solid var(--border); background: var(--bg); display: flex; flex-direction: column; gap: 6px; }