Commit ab80360
committed
gate: reject -dirty binaries in BINARY_MATCH (close residual contamination)
Push 39's e808676 + 0a5f096 added BINARY_MATCH on both arches.
The grep is bare-hash: 'grep "$COMMIT_HASH" "$LONG_VERSION"'. That
matches both clean ':<hash>,' AND '-dirty:<hash>' suffix — the
exact contamination class that bit catch python#4 (binary built from a
dirty working tree masquerades as a clean build).
Pre-push-39, 'cp || true' accidentally protected against this by
falling back to a stale-clean python_gate when local build was
dirty. Push 39 removed the fallback. Without -dirty rejection,
the next contaminated build IS the binary the gate tests, while
BINARY_MATCH still passes.
Fix: tighten the check to reject any version string containing
'-dirty'. Mirror on ARM64 path (mirrors 0a5f096 symmetry).
Output now distinguishes BINARY_MISMATCH (wrong hash) from
BINARY_DIRTY (right hash, dirty build).
Adds catches python#5 (push-39 in-flight commit race) and python#6 (this
fix) to docs/wiring_catches.md.
Per supervisor 2026-04-22 01:08:18Z + theologian 01:08:00Z
(defense-in-depth: when a single incident exposes N adjacent
gaps, fixing 1 leaves N-1 unprotected).1 parent 0a5f096 commit ab80360
2 files changed
Lines changed: 24 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
102 | | - | |
103 | | - | |
| 101 | + | |
104 | 102 | | |
105 | 103 | | |
106 | 104 | | |
107 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
108 | 120 | | |
109 | 121 | | |
110 | 122 | | |
| |||
536 | 548 | | |
537 | 549 | | |
538 | 550 | | |
539 | | - | |
540 | | - | |
541 | | - | |
| 551 | + | |
542 | 552 | | |
543 | 553 | | |
544 | 554 | | |
545 | 555 | | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
546 | 562 | | |
547 | 563 | | |
548 | 564 | | |
| |||
0 commit comments