The automatic connect e-mail is proven with a real mailbox: the host record was deleted at 12:22:59Z and the mail reached the customer at 12:23:00Z, one second later, with selfbind_link_sent (host delete) on the timeline. The requirement was two minutes. The hub refuses to delete an ONLINE host with no override, so the record had to fall stale first — that wait is part of the proof. Interventions: 0. Every P1 fix this drill set out to prove held on a fresh box. The verdict is still no, for a new reason: a one-drive box with no off-site tier keeps none of the household's own files in any backup, the page says otherwise, and the restore that should save them makes it worse (R-537, R-538). Teardown, three layers, stated. Customer tester-1 kept; RESET never used; nothing on the off-site server written or removed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
5.3 KiB
REPORT — DRILL: prove the P1 fixes on a fresh box (2026-09-16)
Claims in the prompt that turned out wrong — first, as asked
- "The WG hook now adopts a stuck endpoint token." It does not, on a real box. The hook refused
exactly as R-511 describes, the operator pressed the explicit Re-issue, hub v0.114.0's adopt path ran,
and the ENDPOINT refused it:
missing Datastore.Modify on /datastore/felhom-offsite→ 502, nothing written. The fix is sound and inert until the ep0 grant is given (R-534, P1). - "The claim is one-shot — measure it, do not assume." Correct to doubt it: it is NOT one-shot. After a successful claim the same URL becomes the password-reset surface with a "request a new code" button. And the lock-out is not at five wrong codes, it is at two — the third try already says "Túl sok próbálkozás — próbáld újra 15 perc múlva."
- "The fresh box lands on golden 0.243.0." This one was TRUE, and it is now measured rather than
assumed: the golden archive left on the box has sha256
e2d1843c…c10a, byte-identical to this drill's own bake, and the guest runs controller 0.243.0 with no self-update. - "Restore one DB-backed app from the off-site tier onto 9202." Not walkable at all on this box — there is no off-site tier to restore from (consequence of item 1), proven by a read-only listing of the customer's namespace, empty before and after.
- My own wrong reading, recorded: I first reported "no lock-out" for the claim code. That was false and I corrected it in the same evidence file — the lock-out is real and the alarm for it fired and was true.
What I exercised
A fresh box from the published ISO 1.27.1, walked as a volunteer: download by checksum, install, first console, connect e-mail and self-bind, claim, tunnel from outside, data drive, file manager, four apps, ten minutes of real use, the backup page and „Mentés most", version labels. Then five faults, then the morning-after checks and a three-layer teardown.
What broke — product, and mine
Product. Five new rows: R-534 (P1, the off-site tier cannot be provisioned — the endpoint token lacks a grant), R-535 (P2, the console keeps showing the pairing banner after bind and claim), R-536 (P2, „app installed" is sent when the install is merely accepted), R-537 (P1, the app-backup page claims it holds the app's data and it does not), R-538 (P1, a restore reports success and leaves the app listing files it cannot open, after making the app's own wastebasket unreachable).
Mine, recorded because they cost real time. A blunt sed rewrote Redis's memory cap while I was
restoring caps after the memory test — the second time this exact mistake has happened, repaired
per-service. A hand-run docker compose up -d inside the guest recreated Paperless without the
controller-injected environment and crash-looped it; repaired through the controller's own API. I measured
my own CSRF error twice before measuring the claim page. And I guessed the file manager's address twice
before reading it off the dashboard.
Rows
Opened 5 (R-534 … R-538), updated 3 (R-511, R-528, R-531), closed 2 earlier in the day (R-529, R-533, plus R-510 from the walk). Counted, not asserted: the register held 236 open rows before this session's first commit today and holds 238 now. Three of the five new rows are P1: R-534, R-537, R-538.
The automatic connect e-mail (R-509) — PASSED
The host record tester-1-652049 was deleted at 12:22:59Z (the hub refuses to delete an ONLINE host,
with no override by design, so the record had to fall stale first — it did at 12:22:28Z, 25m46s after the
box's last report). In the same second the hub logged „self-bind link auto-minted for tester-1 on host
delete", and the mailbox received „[Felhom] Kösd össze a Felhom dobozodat" at 12:23:00Z — one second
later. The customer timeline carries selfbind_link_sent — Self-bind link e-mailed (host delete). The
requirement was two minutes.
Verdict
Ready for a volunteer: no. Every P1 fix this drill set out to prove held on a fresh box — the supervisor restarts a dead controller, the file manager has its own password, the backup page tells the truth per tier and skips an absent tier without stopping apps, the tunnel opens from outside, and the connect e-mail now sends itself. Interventions: 0. What stops a volunteer is new: their own files are in no backup on a one-drive box, the page says otherwise, and the restore that should save them makes things worse.
Teardown
Three layers, stated. Evidence off the box first (R-320): agent journal, controller log and box state,
token-leak control 0. Machine: VM 334 purged with its disks; qm list empty; demo-hp's own containers
9201 and 9202 untouched. Host: nothing to remove — the drill box WAS the nested VM. Hub: the host
record deleted, the customer tester-1 kept with its e-mail, domain and tunnel; RESET was never used.
Nothing on the off-site server was written, removed or pruned — its listing is empty before and after.
Checks
python3 scripts/repo_gates.py --fast — all 14 gates OK. scripts/unproven.py --summary — unchanged at
35 of 55 not walked. CI for the session's pushes: job 642, conclusion success, matched by
head_sha.