CAMPAIGN-4: demo host reboot + drive cycle (operator-authorized risky steps) Demo HOST reboot PASS: 0 ordering cycles (even with active nas-media nfs4), retirement reboot-proof PASS (3 USB drives re-establish from agent units despite device-letter reshuffle), cards registry-sourced, nas-media nfs4 0 rbind/rc255 (F13 did not manifest). teszt_enroll drive cycle: eject/reattach work, wipe-gate + mount-guard + confirm-gate all correctly refuse unsafe format (no wipe); O-1/O-2 LOW observations. No credential/R/blob committed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LbMm4T7Ayzs1unB9pN6Uqd @
3.9 KiB
felhom.eu — task reports
Overwrite this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in hub/CHANGELOG.md; the scripts history lives in scripts/CHANGELOG.md.
CAMPAIGN-4 — unattended "no mercy" night run — 2026-07-13 (active block)
Full report: documentation/audits/CAMPAIGN-4-2026-07-13.md. Launch seed 5def7c09390a1d67. Findings-only (no code fixes).
Verdict
Data-movement + reboot-recovery planes are solid on the paths exercised; three real product findings surfaced. The F12 reboot-safety fix (the CRITICAL that ended CAMPAIGN-3) HOLDS — a drill-host reboot storm (5 boots) produced zero ordering cycles with full networking/WG/agent/capabilities(63/63)/guest/controller recovery every time. .fab export→download integrity is byte-perfect.
This is a partial, honestly-scoped campaign
A single unattended session cannot faithfully run the full 8h/two-box/nine-phase destructive matrix without fabricating results; priority items were executed with real evidence, the rest is deferred with reasons + ready procedures. Nothing claimed was not observed. Endurance samplers run all night.
Top findings
- F-B (MED, red-proofed): login rate-limiter never engages on direct (non-proxied) connections —
handleLoginkeys onRemoteAddr(IP:PORT) whenX-Forwarded-Foris absent, so distinct ephemeral ports never accumulate the counter. Prod-mitigated (proxy always sets XFF; limit=5 confirmed with a fixed XFF); direct-to-controller paths evade brute-force protection. - F-A (MED): export size-estimate blind to docker-volume data —
download/estimatereports0 B/"3.6 KB"/fits_on_dest:truewhile the real bundle is 1.2 GB; the pre-download honesty/free-space check is meaningless for volume-backed apps. - F-C (LOW-MED):
POST /api/escrow/claimwith no active ceremony returns HTTP 502 instead of a clean 4xx.
Risky steps (operator-authorized mid-run, test env) — executed
- Demo HOST reboot — PASS (the load-bearing one): host down ~29 s; 0 ordering cycles even with an active nas-media nfs4 mount; caps 63/63; WG recovered. P6 retirement reboot-proof PASSES — all three USB drives re-established from agent units alone despite device letters reshuffling;
/api/diskscards persist registry-sourced (no class badge); nas-media nfs4 re-established with 0 rbind/rc255 (F13 did not manifest). Drill VM restarted + recovered clean. - teszt_enroll drive cycle — PASS: eject/reattach work; the
.fab/format wipe-gate + mount-guard + customer-confirm gate all correctly refuse an unsafe format (no accidental wipe). Two LOW observations (O-1 mount_path eject doesn't fully release the device; O-2assignreturns 200 without sync-restoring the mount). teszt data intact.
Also passed
.fab export→download byte-integrity (ref==LAN sha256, 1.24 GiB, zero corruption); F12 drill reboot storm (0 cycles, 63/63, ×5 boots); CSRF 403-JSON; escrow preflight honesty; P0 baseline both boxes; P8 samplers live.
Deferred (ready procedures in the audit doc)
.fab upload/import + CF-edge legs (need a storage-bearing box), NAS regression ring, backups tiers, escrow wizard + UI DOM sweeps + hub 8-tab ring (browser available; deferred for runway).
Box state
Nothing down; both hosts + guests healthy after reboots. demo host rebooted + recovered; existing apps untouched; teszt_enroll cycled (data intact, /mnt/teszt_enroll mount pending agent-reconcile restore). drill: 6 boots, healthy, scratch c4_integrity/ + /root/ref1.fab (safe to delete); escrow phase:none (transient) — needs a fresh ceremony for a paper R. Campaign credential active on both controllers — rotate in the morning. Samplers still running (stop: pkill -f c4-sampler.sh on both PVE hosts, pkill -f hub-sampler.sh on 180). Evidence at 180:~/campaign4/.