test record: an image move must carry its proof (09 decision 13, part 4)
gates / gates (push) Successful in 1s
gates / gates (push) Successful in 1s
update_ladder: in .felhom.yml, one JSON entry per line (spiked live on controller v0.266.0 and v0.267.0 first). Two gates: check-test-record.py (static, CI too) and check-test-record-move.py (history + registry for moved refs only). 16 decoys, 3 red-proofs. The ONLY writer is upgrade-test.py --write-ladder (bench AND box proven, digests resolved). Harness v3: box fixtures on the bench, files_may_change. Backfill: the 21 moves of 2026-09-22, 21 proven from their records. No image: line moved. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -58,10 +58,14 @@ class CatalogGatesFastTest(unittest.TestCase):
|
||||
spec = importlib.util.spec_from_file_location("catalog_gates_under_test", ENTRY)
|
||||
mod = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(mod)
|
||||
self.assertEqual(len(mod.GATES), 5)
|
||||
self.assertEqual([g[0] for g in mod.GATES if g[3]], ["image-pins", "engine-major", "catalog-since"])
|
||||
# two gates need git history; they are the ones the CI half cannot run (R-452's shallow gap)
|
||||
self.assertEqual([g[0] for g in mod.GATES if g[4]], ["engine-major", "catalog-since"])
|
||||
# STALE UNTIL 2026-09-23: this read 5 gates and 3 fast ones while the table had grown to 7
|
||||
# (copy-i18n, probe-matches-compose) — the test was red and nobody ran it. Now 9 with the test
|
||||
# record's two halves; the slow pair stays out of --fast.
|
||||
self.assertEqual(len(mod.GATES), 9)
|
||||
self.assertEqual([g[0] for g in mod.GATES if not g[3]], ["image-resolvable", "volume-persistence"])
|
||||
self.assertIn("test-record", [g[0] for g in mod.GATES if g[3] and not g[4]]) # runs in CI too
|
||||
# the gates that need git history are the ones the CI half cannot run (R-452's shallow gap)
|
||||
self.assertEqual([g[0] for g in mod.GATES if g[4]], ["engine-major", "catalog-since", "test-record-move"])
|
||||
|
||||
def test_engine_major_ran_under_fast(self):
|
||||
"""The 2026-09-13 gate is fast (git reads only) and must be IN --fast, or the hook that
|
||||
|
||||
Reference in New Issue
Block a user