diff --git a/TEST-REPORT.md b/TEST-REPORT.md index a1b63a5..265d6bf 100644 --- a/TEST-REPORT.md +++ b/TEST-REPORT.md @@ -127,7 +127,26 @@ From the guest **host namespace**, `192.168.0.162:8443` is OPEN. So the agent is | Label edit + revert (via UI) | SKIPPED | blocked — controller→agent path down (headline finding); UI storage mgmt non-functional | | Eject → re-enroll cycle (via UI) | SKIPPED | blocked — same; not driven directly at agent-tier (would mutate live-drive state via the broken path; unattended caution per §0.7) | | Destructive loopback (scan→format→mount→migrate→decommission) | SKIPPED | the init wizard drives the agent via the broken path; doing it purely agent-side needs the per-guest local-API token + TLS-pin reconstruction — high-effort/low-confidence unattended. Deferred to supervised. No scratch loopback was created (nothing to clean up). | -## Phase 6 — Monitoring/alerts/hub — _pending_ +## Phase 6 — Monitoring / alerts / notifications / settings / hub — **PASS** + +State: 9201 healthy, controller up, tunnel up. + +| Check | Result | Evidence | +|---|---|---| +| Monitoring — host/server metrics | PASS | `/monitoring`: CPU 12.4%, load 0.35/0.76/1.35, mem 7.6/15.4 GB (host's 16 GB → **/proc/LXC kernel-shared view**, not the agent API), CPU temp 43 °C, uptime 5d21h, "Frissítve 16:03:12". (The Phase-0 momentary "gazdagép metrikái nem elérhetők" did not persist.) | +| Monitoring — container/app metrics | PASS | "Memória eloszlás" per-container breakdown (felhom-controller 1.1 GB, paperless 594 MB, immich-server 414 MB, komga 387 MB, gitea 85 MB, …26 containers); "Alkalmazás erőforrások" per-app CPU/MEM charts; time-range charts 1h/6h/24h/7d/30d | +| Monitoring — storage capacity | PASS | all 5 stores with capacities + felhom-usb SMART temp 35 °C (cached from a prior agent poll) | +| Alerts — state-based (komga) | PASS | controller logs: komga `Health probes: 0 ok, 1 unhealthy` before fix → `Health probes: N ok` after (Phase 1); UI badge red→green; route-warning cleared | +| Notification path (exercised ONCE) | PASS | set email + 2 events + cooldown=2h → `POST /settings/notifications` 200 → hub log `Notification preferences updated for demo-felhom`. Test: `SendTest()` → hub log **`Event from demo-felhom: test (info)` → `Test email sent to nagyfenyvesi.viktor@gmail.com for demo-felhom`** = controller→hub→Resend→email end-to-end. Only one email sent (§0.5). | +| Cooldown / dup-suppression | PARTIAL | cooldown_hours=2 persisted + synced to hub (mechanism present); not stress-tested (would require generating duplicate alerts — avoided per §0.5) | +| Settings persistence | PASS | notification prefs set → persisted to `settings.json` (email/cooldown/events) → reverted (email cleared, events None) — both directions verified | +| Settings — password change | N/A | password protection is **operator-only** and **not configured** ("A jelszavas védelem nincs beállítva. Kérd az üzemeltetőt"); no customer-UI password change to test. Dashboard currently serves with no auth wall. | +| Hub — report received | PASS | hub logs: `Received report from demo-felhom (11983 bytes)` every 15 min; `host-report from demo-felhom-01 (3 guests, 5 storage targets, 1 backups, 1 restore-tests, 9 pbs-snapshots)`; UI "Hub kapcsolat: Kapcsolódva, utolsó jelentés 8 perce" | +| Hub — DR recipe carries PBS coord | PASS | hub DB `dr_recipe` (demo-felhom): host-half `pbs={"repo_id":"felhom-pbs","namespace":"root","latest_snapshot_id":"9201"}`; app-half customer demo-felhom / 15 apps. No secrets in either half. | +| Hub — update panel | PASS | settings "Verzió és frissítés": current 0.73.0, latest "0.73.0 — naprakész", last check 2026-06-22T10:54:46Z | +| Hub GUI tiles (analytics/healthchecks) | SKIPPED(no operator creds) | verified hub-side state via logs + DB instead of the auth-gated operator GUI | + +**Note (reconciles Phase 5):** the agent local-API path stays **persistently** down (6/6 `EADDRNOTAVAIL` on `/api/disks`). Monitoring host metrics work anyway because they are `/proc`-derived (LXC shares the host kernel); the agent gap only blocks features needing a *live* agent call (raw-disk view, storage mgmt, whole-guest backup trigger). ## Phase 7 — Resilience (optional) — _pending_ ---