test(nomercy): 4.3 intent-gate PASS (ejected drive not auto-rebound)

ReassertGuestBinds skips ejected da9e7089 (+ leftover ce9d1d81), re-binds enrolled
flash; usb stays 0 binds. Brief post-restart transient (rslave+F4) cleared in one
tick. Restored usb.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PsnU2ASocYrvzqE82YDYW
This commit is contained in:
2026-06-23 20:12:53 +02:00
parent de4ff8b39b
commit cd6715d592
@@ -320,6 +320,19 @@ Pre-host-reboot capture: `sdb1`=`da9e7089`(usb), `sdc1`=`81a26531`(flash); `onbo
*Fix direction:* make the normalize-to-one path converge to a single bind (or stop the duplicate
rbind at its source).
### 4.3 — intent gate (ejected drive must NOT auto-rebind) — ✅ PASS (agent-restart variant)
- **Method:** to avoid a second full host reboot, the same `ReassertGuestBinds` intent gate (which runs on
agent startup, identical to the host-reboot path) was exercised by an **agent restart**. Ejected felhom-usb
(no app on it — navidrome migrated to flash in 1.9), `systemctl restart felhom-agent`.
- Agent log: `reconcile: skipping non-enrolled drive (intent-gated) … da9e7089 intent=ejected`
(repeated each tick) AND `… ce9d1d81 intent=ejected` (the baseline leftover); enrolled felhom-flash
re-bound. Steady state: **usb 0 binds (NOT re-bound)**, flash bound. The ejected drive did **not**
auto-rebind; the enrolled one did. Wrong outcome (ejected auto-rebinds) ruled out.
- *Transient note:* ~3 s after the agent restart, `findmnt` briefly showed usb still bound — a propagation
lag of the eject's detach through the `/mnt:rslave` view + the F4 double-bind — which cleared to 0 within
one tick. Not a gate failure (the gate decision is logged correctly throughout).
- Restored usb via re-register → intent→enrolled, bound at stable (now `sdc1` post-swap), both drives back.
## Phase 5 — restore to clean baseline — ⏳ PENDING
---