gates: the today-override announces itself; malformed no longer swallowed
gates / gates (push) Successful in 15s
gates / gates (push) Successful in 15s
Part 6 of the hub-blindness task, separable and done rather than dropped. Both due_checks_gate.py and instructions_gate.py read FELHOM_GATE_TODAY so their suites can control "today", and neither said so. A shell that still has it exported -- exactly what a session doing gate-test work leaves behind -- made both gates evaluate against a fabricated date and pass in SILENCE. That is this project's own named failure class: an instrument that can quietly return the wrong answer is not a measurement. The seam is legitimate and stays; the silence was the defect. Both now print a loud line naming the variable, its value, and that the real date is being ignored, before any verdict. And instructions_gate.py no longer swallows a MALFORMED override: it used to fall through to the real date without a word while due_checks_gate.py already exited 2 on the same input -- one variable, two gates, disagreeing about what a mistake means. Both exit 2 now. Tests extended in both suites (42 and 73 assertions, green). Red-proof: the announcement was deleted from due_checks_gate.py and its two assertions were seen failing, then reverted. Also adds REPORT-hub-blindness.md (topic-suffixed; the shared REPORT.md is left alone per the parallel-session rule).
This commit is contained in:
@@ -1,3 +1,21 @@
|
||||
## due_checks_gate.py v1.0.1 + instructions_gate.py — the today-override announces itself (2026-08-18)
|
||||
|
||||
**Both gates read `FELHOM_GATE_TODAY` so their suites can control "today"; neither said so.** A shell
|
||||
that still has it exported — exactly what a session doing gate-test work leaves behind — made both
|
||||
gates evaluate against a fabricated date and pass, **silently**. That is this project's own named
|
||||
failure class: an instrument that can quietly return the wrong answer is not a measurement. The seam
|
||||
is legitimate and stays; the silence was the defect.
|
||||
|
||||
- Both gates now print a loud line naming the variable, its value, and that the real date is being
|
||||
ignored, before any verdict.
|
||||
- **`instructions_gate.py` no longer swallows a MALFORMED override.** It used to fall through to the
|
||||
real date without a word, while `due_checks_gate.py` already exited 2 on the same input — two gates
|
||||
reading one variable and disagreeing about what a mistake means. Both now exit 2.
|
||||
|
||||
Tests extended in both suites (valid → announced; malformed → exit 2). One red-proof: the
|
||||
announcement was deleted from `due_checks_gate.py` and its two assertions were seen failing, then
|
||||
reverted.
|
||||
|
||||
## due_checks_gate.py v1.0.0 — a dated check becomes a thing that bites (2026-08-18, R-341)
|
||||
|
||||
**New gate, registered as #10 in `repo_gates.py` (`--fast`).** R-341 booked two dated measurements —
|
||||
|
||||
Reference in New Issue
Block a user