Symptom

No regression test covered the non-destructive source-edge delete semantics (D8) defined in the Phase 3 openspec. The delete path and executeSources filter behavior were correct but unverified: deleting a node whose identity appeared in another node’s sources list could theoretically cascade to subscribers, and a transient peer outage could in principle trigger destructive cleanup.

Root cause

Phase 2 unified dispatch (executeSources) and Phase 3 affirmed the dangling-source design decision (D8: “absence is non-destructive; subscriber self-heals on reconnect”), but neither phase shipped assertion coverage. The structural parent→child cascade was pre-existing and correct; source-wiring edges were intentionally left intact on delete. There was no test to confirm the filter in executeSources excluded DELETING-state subscribers, nor that delete() respected the parent-field boundary and did not touch nodes reachable only via sources.

Fix

Prevention