v6.1.0
Additive feature release — no breaking changes (^6.0.0 consumers upgrade safely).
Added
- Parallel fan-out
failFast: opt-inPromise.allsemantics on a fan-out
node so a required parallel branch that throws rejects the whole run, instead
of the defaultallSettledbest-effort silently swallowing it. Honored on root
selectors,addSelectorFunction,addListOfFunction, and subflow branches. - Branch-sourced
loopToonDeciderList: a loop can originate from a decider
branch (e.g.tool-calls → context) rather than from the decider node. - Structure-only
convergeAt(SubflowMountOptions): redirect a branch's
convergence edge to a different stage as a 2-parent merge (no engine change). onRunFailedterminal run boundary: a failed run emits a symmetric CLOSED
boundary (error-as-boundary, not error-as-stage) so observers see a clean
terminal state.CombinedRecorderdetection fixed for run-only recorders.test:coveragescript + v8 coverage reporting + README coverage badge.
Fixed
- Pause/resume: a branch loop whose target is a SUBFLOW resolved the loop-ref
stub as the continuation; resume now resolves it to the real target node.