Commitc20fe5feRecorded25 Aug 2026Repositoryfolio

test: re-anchor sabotage T5 -- (else is no longer unique after the fixes

Message

The containment fix and the depth-unbounded sweep each added an (else line to manifest.sgl, so T5's blunt 's/(else$/.../' now matches two sites and the count guard setup-fails it. Re-anchored on the proof loop's own first cond test (unique), which achieves the same 'proof always passes -> recovery proceeds over the corrupt temp' defect. Dry- verified: lands once, formats clean.

Changed
 test/sabotage-f3b.sh | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
Diff
test/sabotage-f3b.shmodified
@@ -183,13 +183,15 @@ restore_all || exit 3
183
echo "SAB-F3B LEG T5: recovery TOLERATES the unprovable (the first-pass proof"
184
echo " always passes) -- gate arm 5's driver must observe recovery proceeding"
185
echo " over a corrupt temp instead of refusing to a human"
−186
sed -i 's/(else$/(#f ;; SAB-T5/' src/folio/doc/manifest.sgl
−187
if ! grep -q "SAB-T5" src/folio/doc/manifest.sgl; then
+186
# Anchor on the proof loop's own first cond test (unique in the file): making
+187
# it always true means every entry is 'proven' finishable, so recovery
+188
# proceeds over the corrupt temp. A bare `(else` anchor is NOT unique -- the
+189
# containment fix and the sweep added more of them.
+190
sed -i 's/((equal? cur (mentry-post-rev e)) #t)/((begin (quote sab-t5) #t) #t)/' src/folio/doc/manifest.sgl
+191
if ! grep -q "sab-t5" src/folio/doc/manifest.sgl; then
192
setup_failed_leg T5 "plant did not land (anchor moved)"
193
else
−190
# The blunt anchor above may hit several (else lines; use git to re-verify
−191
# only ONE landed where intended, else refuse the leg.
−192
count=$(grep -c "SAB-T5" src/folio/doc/manifest.sgl)
+194
count=$(grep -c "sab-t5" src/folio/doc/manifest.sgl)
195
if [ "$count" -ne 1 ]; then
196
setup_failed_leg T5 "anchor matched $count sites; the plant is not the plant"
197
restore_all || exit 3