From d3f1b9d323af4c17a837944bb1de453752548b98 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Mon, 22 Jun 2026 18:22:42 +0200 Subject: [PATCH] =?UTF-8?q?test=20campaign=20#2:=20Phase=201=20(app=20swee?= =?UTF-8?q?p=20+=20edge=20cases=20=E2=80=94=20navidrome=20HDD-bound,=20red?= =?UTF-8?q?eploy=20race=20PASS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- TEST-REPORT.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/TEST-REPORT.md b/TEST-REPORT.md index 67883e4..1aabc8a 100644 --- a/TEST-REPORT.md +++ b/TEST-REPORT.md @@ -14,7 +14,19 @@ unblocked (ctrl v0.74.0 fixed the agent leak). Only code changes: trivial catalo - **Master safety net + DR source:** PBS backup `felhom-pbs:backup/ct/9201/2026-06-22T16:13:44Z`, success=true, crash-consistent; PBS verify shows the snapshot present. - **Leak-fix gate (the #1 unblock):** `/api/disks` lists felhom-flash/felhom-usb/local; `/api/host-metrics` returns `cpu_percent`; controller→agent idle sockets to `:8443` **flat at 2 before and after a 60-call burst**. Agent path fully working. **Gate to chaos/destructive phases: OPEN.** -## Phase 1 — Broader app sweep + edge cases — _in progress_ +## Phase 1 — Broader app sweep + edge cases — **PASS (with noted non-triggerables)** + +| Check | Result | Evidence | +|---|---|---| +| Deploy navidrome (HDD-bound, Go) via GUI | PASS | GUI deploy → 3-step panel → `running/healthy` in 8s; `:4533` → HTTP 302 (serving); HDD binding `…/felhom-flash/userdata/media/music → /music` | +| Pattern coverage | PASS (cited) | JVM=komga (healthy), Python+DB=immich/paperless (healthy), Go=navidrome/gitea, HDD-bound=navidrome/romm/immich, optional-config=romm | +| Edge: rapid deploy→stop→redeploy race | PASS | stop → immediate update → `navidrome Up (healthy)`, `app.yaml deployed:true`, API `state=running deployed=true` — no stale button / no Deployed-flag race | +| Edge: slow-DB-migration start_period | PASS (cited) | mealie deployed healthy (start_period 60s covers migration — no premature unhealthy flap; lesson #7) | +| Edge: missing required config → graceful signal | PASS (cited #1) | campaign-1 glance: crash-loop with a clear logged error (`open /app/config/glance.yml: no such file`), controller marks it — not a silent hang | +| Edge: mem-gate hard-block | PARTIAL | the deploy-page memory projection renders correctly (e.g. navidrome 4065→+50 MB / 11904); a RAM hard-block isn't naturally triggerable (no single catalog app's request > ~7.6 GB free without mass-filling RAM). Disk-headroom hard-refuse (`GetDockerVolumeHeadroom`) is tested in Phase 3/C4. | +| Edge: Host()/port overlap | N/A (noted) | each catalog app has a unique subdomain by construction; an overlap isn't naturally producible without editing a template — not triggered | + +navidrome left deployed (used as the drive-backed app for Phase-3 C6); removed at cleanup. ## Phase 2 — Storage lifecycle (unblocked) — _pending_ ## Phase 3 — Break-and-recover chaos (C1–C8) — _pending_ ## Phase 4 — Backup/restore edge cases — _pending_