specify failure propagation semantics (C-04)
Key design decisions:
- Failure follows dependency edges, not structural scope
- Parallel branches are independent: failure in one branch
doesn't cancel sibling branches
- blockedByFailure computed signal detects failed/aborted predecessors
- Conditionals serve as error boundaries (caught failures redirect
to else branch, uncaught failures cascade)
- aborted nodes don't satisfy preconditions; skipped nodes do
- abortAll() for systemic failures (provider outage, auth failure)
Changes:
- reactive-execution.md: new Failure Propagation section with
sequential/parallel/join/conditional examples, blockedByFailure
effect, partial success model
- host-configs.md: add blockedByFailure to WorkflowNode, update
status propagation effects, replace cascadeAbort with abortAll
- schema.md: document precondition semantics for NodeStatus
- build-distribution.md + README.md: add blockedByFailure to
node-status.ts comments
- review checklist: mark C-04 resolved