burn-down round 2: R-593 papra field copy, R-760 vikunja healthcheck reason, R-594 English allow-list, R-605 refusal exit 3, R-781 onboarding decoy clone, R-806 scheme; stale runner test fixed
gates / gates (push) Successful in 4s

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:
2026-10-05 19:15:02 +02:00
parent 29ac711d26
commit 4828dc754d
16 changed files with 536 additions and 50 deletions
+4 -2
View File
@@ -88,7 +88,9 @@ class TestResolvabilityGate(unittest.TestCase):
with tempfile.TemporaryDirectory() as td:
root = make_catalog(Path(td), {"rotten": [DEAD]})
rc = cir.check(root, resolver=lambda ref: (cir.OK, ""))
self.assertEqual(rc, 2, "a resolver that resolves the canary must abort, not pass")
self.assertEqual(rc, 3,
"a resolver that resolves the canary must abort (3, the harness refused), not pass — "
"and not 2, which reads as 'some pins were throttled' (R-605)")
def test_only_filter_restricts_to_named_apps(self):
with tempfile.TemporaryDirectory() as td:
@@ -103,7 +105,7 @@ class TestResolvabilityGate(unittest.TestCase):
def test_empty_catalog_is_an_error_not_a_pass(self):
with tempfile.TemporaryDirectory() as td:
(Path(td) / "templates").mkdir()
self.assertEqual(cir.check(Path(td), resolver=fake_resolver), 2)
self.assertEqual(cir.check(Path(td), resolver=fake_resolver), 3)
class TestClassifyGuardsAgainstFalseAlarms(unittest.TestCase):