Files
troupe-standup/wizard-work/volt/CHECK-q115
T
volt 8ce963a58a volt: Q115/Q131 -- folder-read failure carries its listing; the harness grades again
Q115: the monitor's failure branch printed 'folder unreadable: <folder>' and
skipped the folder, so every path in it left the listing and the next diff read
as deletions (417 on 2026-10-28, 413 before). Format v1.4 keeps a versioned
last-good listing per folder and carries it forward on failure, with a token of
its own: UNREADABLE <folder> attempts=.. last=.. carried=.. from=.., and
NO-BASELINE <folder> when there is nothing to carry.

Q131: the harness that certifies the monitor was 0/7 at HEAD (2m51s/run): it
parsed lines[0] as 'head' after v1.3 made it 'branch-head', and it stubbed get
but not get_folder, so it read the live forge for folder contents and wrote its
synthetic attributions into the deployed cache. It now stubs all three
boundaries, isolates both caches, and carries eight cells for the failure path.

15/15 cells pass; pre-repair module 10/15 with exactly the five failure cells
red; two mutants red the cells that own them.
2026-10-30 20:59:22 +00:00

40 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Q115 / Q131 gate: the pipe change-monitor's folder-read failure path.
#
# The artifact under repair is NOT in this repository -- the pipe's monitor lives
# at /root/.hermes/scripts/troupe_pipe_monitor.py because the cron job runs it by
# host path -- so this gate has to read a host path. That is stated, not hidden:
# it is the same host-pin class Q106 filed, and here it is unavoidable unless the
# monitor is moved into the tree, which is the pipe's decision, not this item's.
#
# What it grades, all through the deployed module (imported, never re-implemented):
# - the seven authorship cases the harness was written for in Q15
# - s1b/s1c: a folder that fails to read carries its last good listing and the
# tick's delta is empty (the Q115 fault: a read error rendered as deletions)
# - s1d: non-vacuity -- without the carry that same tick loses those lines
# - s1e: a genuine deletion on the next good read is still reported
# - s2/s3: no baseline and a corrupt cache print NO-BASELINE rather than rows
# - s4: the run leaves no host cache behind
set -u
HARNESS=/root/.hermes/scripts/troupe_pipe_monitor_harness.py
if [ ! -f "$HARNESS" ]; then
echo "FAIL: harness missing at $HARNESS" >&2
exit 2
fi
out="$(python3 "$HARNESS" 2>&1)"
rc=$?
printf '%s\n' "$out" | grep -E '^\[FAIL\]|cases pass' || true
if [ "$rc" -ne 0 ]; then
echo "FAIL: harness rc=$rc (a cell above is red)" >&2
exit 1
fi
if ! printf '%s\n' "$out" | grep -q '^15/15 cases pass'; then
echo "FAIL: expected 15/15 cases, got: $(printf '%s\n' "$out" | tail -1)" >&2
exit 1
fi
echo "q115: folder-read failure carries its listing, tokens name the folder -- OK"
exit 0