fix(wake): three-valued grep verdicts — has_match/count_lines across all ten suites (closes #973) (#983)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful

This commit was merged in pull request #983.
This commit is contained in:
Mos
2026-07-31 08:39:04 +00:00
parent 089615f63b
commit 4fb44f6345
18 changed files with 4855 additions and 262 deletions
@@ -465,8 +465,26 @@
# never a hand-built flat dead-letter row, which would make the
# audit's correct non-conviction look exactly like the defect
# under hunt (the #951 review's false-defect near-miss).
# 0.7.2 #973 three-valued grep verdicts across ALL TEN wake test suites.
# grep's exit contract is three-valued (0 match / 1 no-match /
# >=2 ERROR); every suite assertion read non-zero as "absent",
# so a grep that COULD NOT LOOK wore the colour of a verdict —
# OR-polarity sites failed falsely RED, AND-polarity sites
# (including all 19 credential canaries) failed falsely GREEN
# under load. _wake-common.sh gains has_match/count_lines
# (rc 0/1 pass through; anything else LOUDLY ABORTS the whole
# suite naming file:line + raw rc — an error is never a
# verdict), wake_assert_init (saved-fd abort loudness that
# survives call-site 2>/dev/null + a runtime pin of the
# BASH_LINENO coordinate convention against CI bash drift),
# and 261 call sites converted mechanically from a frozen
# denominator artifact. Production tools source but never call
# the helpers; suite verdict semantics on rc 0/1 are UNCHANGED.
# Evidence chain in validate-973/ (microtest C1-C11, expected/
# static/trace set arithmetic, 21 forced-error arms, residual
# sweep with per-form plants).
component=wake
version=0.7.1
version=0.7.2
# Watch-list schema this component consumes, and the INCLUSIVE range of
# schema_version values it supports. A wake-watch-list.json whose schema_version