ci/woodpecker/pr/ci Pipeline was successful
Four changes, one coordinate shift: 1. #984: the ten suites sourced _wake-common.sh with `. file && wake_assert_init` under no set -e — a failed source left every helper undefined, every AND-polarity canary silently green, and the suite exiting 0 having run ZERO wake assertions. The source is now guarded alone in an explicit block that echoes a wake-authored diagnostic to real stderr and exits 97; init runs on its own line. Negative test: a copied suite without _wake-common.sh exits 97 with the diagnostic. 2. #985: the sweep absorb branch keyed on helper-token presence alone, so a converted line that ALSO ran a raw grep verdict (has_match ... && grep -q SECRET ... && fail) was absorbed as benign. The absorb decision now re-scans the line remainder for grep in command position (RX_GREP_CMD, quote-unaware by design — errs toward loud), and is factored into residual_sites(), the ONE path both sweep legs share: leg 2 previously used raw classify() and never exercised the absorb branch at all. Plants G (helper+raw-grep, must stay residual) and H (grep only in pattern argument, must absorb as note) prove both directions; SWEEP-PLANTS is now 8/8. 3. validate-973.sh arms loop: the sentinel check was the one AND-polarity grep in the file — a grep error (rc>=2) read as "no sentinel" and passed toward green. Converted to the three-valued idiom with its own loud error arm. 4. Dead polarity() deleted from check-973.py (unreferenced since the frozen derivation was ported). The #984 guard is +4 lines uniformly above every site in all ten suites, so HEADER_SHIFT moves 3 -> 7 and the nine disposition rows shift +4; the frozen artifact is untouched. Verified: expected==static (261 rows), full validate-973.sh terminal-green (10 suites, 21 arms at shifted coordinates, dispositions none-stale, sweep clean 8/8). Written-by: pepper (sb-it-1-dt) Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NsKce8iZuSuRnu3gVMCBKB
38 lines
3.3 KiB
Plaintext
38 lines
3.3 KiB
Plaintext
# unexecuted-sites-dispositions.txt — #973 validation, amendment ONE leg 3.
|
|
#
|
|
# The ledger is an execution trace, not an inventory: a green instrumented run
|
|
# cannot execute a site that only lives on a suite's red path. Every converted
|
|
# site that did NOT appear in the green-run trace is enumerated here with an
|
|
# individual disposition; validate-973.sh fails if any unexecuted site lacks a
|
|
# row here, and ALSO fails if a row here names a site that DID execute (stale
|
|
# disposition). Key = first two whitespace-separated fields; text after "—" is
|
|
# the adjudication.
|
|
#
|
|
# All nine sites below are the same structural shape, adjudicated one by one
|
|
# from source text: the suite's FAILED-branch summary line,
|
|
# echo "wake <name> harness: FAILED ($(count_lines . "$FAILFILE") assertion(s))" >&2
|
|
# guarded by `if [ -s "$FAILFILE" ]` — structurally unreachable while every
|
|
# assertion passes, which is precisely the state a green validation run is
|
|
# required to be in. (The tenth suite, test-wake-preimage.sh, uses its own
|
|
# X/Y summary format with no grep in the red branch, so it has no row here.)
|
|
#
|
|
# The disposition is NOT "it would work": the exact template is EXECUTED red
|
|
# in microtest C11 (deterministically failed mini-suite, same
|
|
# count_lines-in-substitution summary shape → right count, exit 1, ledger row
|
|
# at the summary coordinate), and the E-in-substitution abort path is proven
|
|
# by microtest C5 plus the forced-error arm at test-wake-store-ack.sh:736.
|
|
# Each site's conversion text is independently verified by the static
|
|
# inventory (check-973.py static == expected, all 261 rows).
|
|
#
|
|
# Verified guard per site (line numbers at branch tip, +3 header shift):
|
|
|
|
count_lines test-wake-beacon.sh:354 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 353; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-detector.sh:706 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 705; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-digest-hmac.sh:438 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 437; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-digest-quarantine.sh:588 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 587; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-fn-oracle.sh:136 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 135; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-install.sh:438 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 437; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-reconcile.sh:393 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 392; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-store-ack.sh:745 — red-path summary; guard `[ -s "$FAILFILE" ]` at line 744; template execution measured by microtest C11; text verified by static inventory
|
|
count_lines test-wake-store-enqueue-race.sh:212 — red-path summary (with "#927 TOCTOU reproduced (RED)" tail); guard `[ -s "$FAILFILE" ]` at line 211; template execution measured by microtest C11; text verified by static inventory
|