Commit a8ffca5
committed
Never let the guard fail silently
The guard shipped broken on every Linux host. It used "$TMPDIR" in a case
pattern; TMPDIR is routinely unset there; set -u makes that fatal mid-script; and
the hook then emitted nothing at all — the one outcome its own header promises
cannot happen. macOS sets TMPDIR, so it passed here and failed on Linux, Alpine
and Windows.
Two fixes, and the second is the one that matters. ${TMPDIR:-/nonexistent} fixes
this instance. An EXIT trap that emits `ask` unless a decision was already
printed fixes the class: no future edit can reintroduce silence, whatever else it
gets wrong. Verified by injecting a fatal error before any decision — the guard
now asks instead of returning nothing.
Check 23 gained the case that would have caught it: the same three decisions run
again with TMPDIR, HOME, USER and LANG stripped. Reintroducing the exact defect
turns it red naming the empty output.
I also pushed the previous commit while the install matrix was red — I printed
the result and chained the commit after it instead of gating on it. The matrix
was green on re-run and CI caught the real problem, but the discipline failed
before CI did, which is the part worth recording.
verify.sh 25/25, gate-falsifiability.sh 26/26, install-matrix 17/17, all gated
before commit this time.1 parent 5d2ea77 commit a8ffca5
2 files changed
Lines changed: 31 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
841 | 841 | | |
842 | 842 | | |
843 | 843 | | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
844 | 856 | | |
845 | 857 | | |
846 | 858 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
29 | 45 | | |
| 46 | + | |
30 | 47 | | |
31 | 48 | | |
32 | 49 | | |
33 | | - | |
| 50 | + | |
34 | 51 | | |
35 | 52 | | |
36 | 53 | | |
| |||
119 | 136 | | |
120 | 137 | | |
121 | 138 | | |
122 | | - | |
| 139 | + | |
123 | 140 | | |
124 | 141 | | |
125 | 142 | | |
| |||
0 commit comments