4 months ago
b221093live-test surprise #2: a gate whose feeding rules ALL fail never ran (rule→gate edges default when:pass, so nothing conducted the gate), never fired block, and the run derived verdict pass. the default gate only blocked because sibling passing rules opened it — single-rule or all-fail graphs passed silently. - executor: a gate runs once ≥1 source node has settled, aggregating source outcomes; edge when-conduction no longer gates gate execution (still governs rule→action and gate→action edges) - tests: single-fail→block, all-fail→block, exhaustive property (derived shape, any ≥1 failing rule never verdicts pass); editor-roundtrip fixture re-passes - validate.ts unchanged (same graphs well-formed); contracts doc synced - DECISIONS: step-6 DAG-semantics entry amended with the live evidence checks: biome clean · 11/11 typecheck · boundaries ok · 129 tests, 0 fail
Parent3ccfc9a