v0.169.x: REPORT — appended (disk-health card + degradation notification, live-validated on 9201)

This commit is contained in:
2026-07-24 21:41:02 +02:00
parent dbf631312e
commit 0a582ea07b
+39
View File
@@ -1,3 +1,42 @@
# REPORT — v0.169.0/.1: Disk-health card + degradation notification ("Lemezek állapota")
Part of the disk-health train (agent v0.94.0 + controller v0.169.0/.1 + hub v0.73.1). Appended above
the previous report (kept below).
**Baselines:** controller `e164fef` (v0.168.0) → `c97975c` (v0.169.0) → `dbf6313` (v0.169.1). Clean at start.
**What shipped:**
- `agentapi`: `SmartSummary` extended to the full counter set; `DiskInfo.Smart *SmartSummary`; pure
`DiskVerdictFor` (shared by card + check) + `Label` + `DegradedAttributes`. Verdicts: FAILING→Hiba;
PASSED+any(reallocated/pending/offline/critical/media >0 or percentage_used ≥90)→Figyelmeztetés;
PASSED clean→Rendben; nil/UNKNOWN→Nincs adat (never alarms).
- `web`: dashboard "Lemezek állapota" card (physical disks only — pbs/lvm/nfs/cifs excluded in v0.169.1)
via a 60s /disks TTL cache; unreachable agent → "Nincs adat", page never blocks. 6h `disk-health-check`
emits `disk_health_degraded` on a degradation only (in-memory baseline; first run silent; recovery/
UNKNOWN never notify; multi-attr → one event). `notify.NotifyDiskHealthDegraded` (warn/critical).
**No global banner** (deliberate).
**Tests + red-proofs (all recorded):** verdict table (red-proof: ≥90→>90 → boundary FAIL); notifier
emit (type/severity/subject); check first-run-silent (red-proof: disable the guard → first run notifies
FAIL); degradation-once; recovery-silent; UNKNOWN-excluded; FAILING→critical; nil-smart card graceful;
TTL cache. Full controller suite: 27 packages pass, 0 fail; build + vet clean; template/emoji/mojibake
gates OK.
**Deploy + live validation (guest 9201):** built + deployed 0.169.0 → Up (healthy); dashboard rendered
the card. **§13(2):** first render showed 4 rows (pbs/lvm carried a default UNKNOWN SMART) → shipped
**v0.169.1** to exclude logical/network types; re-verified the card now shows exactly **2 physical rows**
(`local`, USB), both "Nincs adat" — the correct real verdict on the virtualized demo hardware.
**§13(3) notification path** (proven with the hub, see hub REPORT): a `disk_health_degraded` POST — the
exact wire call `notify.PushEvent` makes — was **400-rejected by hub v0.73.0** and **200-accepted +
emailed by hub v0.73.1**. Method: direct endpoint POST via curl (no fixture code committed → nothing to
revert; the demo's real disks stay "Nincs adat" so normal operation is quiet).
**Awaiting operator:** browser visual check of the card layout (rendered HTML strings confirmed). A real
FAILING/Figyelmeztetés verdict can't occur on the virtualized demo hardware (no real SMART) — the verdict
logic + transitions are covered by unit tests + the live event-pipeline proof.
---
# REPORT — v0.168.0: Customer-configurable backup window ("Mentési időablak")
**Date:** 2026-07-24 · **Deployed & verified live on guest 9201; box left configured at 02:30.**