@@ -418,6 +418,31 @@ Before the transition release, run one rollback through the actual production
418418service on Linux and macOS. Use hetz first and Silber second. Record every
419419observed state and any manual cleanup. Do not use Bluey for this exercise.
420420
421+ Test the recovery route from the actor who will use it before each deliberate
422+ outage. A reachable host and an open SSH port do not prove that the actor can
423+ log in. Fabric is the only working route to hetz for every agent and for
424+ Silber.cos. If Fabric fails there and cannot recover itself, Nathan must recover
425+ hetz personally. Silber.cos has local shell access on Silber and can repair that
426+ machine by hand.
427+
428+ Both production rollback exercises passed on 2026-09-05 at exact main
429+ ` ebfd0ec ` . On hetz, the broken pair installed at 03:33:02Z. The systemd reader
430+ restored exact main at 03:34:00Z, and Fabric answered externally at 03:34:14Z.
431+ The observer depended on Fabric because no agent or Silber.cos could complete
432+ an SSH login. The exercise then restored fleet build ` 0.2.1+48208e4 ` .
433+
434+ On Silber, the broken pair installed at 03:46:14Z. The launchd reader restored
435+ exact main on disk at 03:47:18Z. The control socket answered at 03:47:27Z. The
436+ transient job and plist disappeared, and the reader removed the new companion.
437+ Local shell observation stayed available. The exercise then restored fleet
438+ build ` 0.2.1+48208e4 ` . Doctor passed on both hosts after the exercises.
439+
440+ The deployed ` 48208e4 ` reader also received the exact paired archive in an
441+ isolated home. It accepted the checksum, then refused the archive because it
442+ expected exactly one ` fabric ` member. It changed no executable or staging file.
443+ This clean refusal enforces the Release A order for that deployed reader. It is
444+ not a property of the Release A pair-aware reader.
445+
421446Add each future real-machine test to this named list when the test is added.
422447The measurement-only ignored tests are not release gates unless this list names
423448them.
@@ -432,7 +457,10 @@ The process-boundary release needs all of these results:
432457- The bridge keeps at least 90 percent of embedded content throughput during the
433458 fixed 10-minute comparison. A larger loss stops activation and reopens the
434459 transport decision with Nathan.
435- - The release archive and updater verify a matched binary pair.
460+ - The Release A archive contains exactly ` fabric ` . The deployed ` 48208e4 `
461+ reader refuses a paired archive without changing the machine.
462+ - Step 7 restores an archive with exactly ` fabric ` and ` fabric-sync ` . The
463+ updater verifies that matched pair.
436464
437465This plan changes where sync executes. It does not claim that the connection
438466cache caused Nathan's earlier pauses, and it does not optimize sync memory.
0 commit comments