v0.15.0
Highlights
26 issues closed across 7 PRs — the largest release since v0.14.0.
Safety & Correctness
- P0 fixes: Goal-gate infinite fallback loop prevented via
FallbackTakencheckpoint guard. Parallel branch context loss on fan-in fixed withDiffFrom(). - Validation bypass removed:
DippinValidatedfield deleted — all structural checks always run. - Adapter hardening: Nil guards, sentinel errors (
ErrNilWorkflowetc.), deterministic map iteration.
New Features
- Per-node response keys:
response.<nodeID>written alongsidelast_response— downstream nodes can reference specific upstream outputs. - Parallel concurrency limits:
max_concurrencyandbranch_timeoutattrs on parallel nodes. - Human gate timeout:
timeoutattr withtimeout_action(default/fail) anddefault_choicefallback. - Edge adjacency indexes: O(1)
OutgoingEdges/IncomingEdgesvia adjacency maps.
Improvements
- Condition parser:
==operator, quoted values, case-insensitiveSTATUS:matching. - Retry jitter: ±25% random jitter on backoff to prevent thundering herd.
- Fidelity truncation: Word-boundary-aware with
unicode.IsSpace. - Consensus pipeline:
consensus_task.dipparallelized for independent multi-model evaluation. - DOT deprecated:
ParseDOTannotated with// Deprecated:,pipeline/doc.goadded.
Full Changelog
See CHANGELOG.md for the complete list of 26 issues addressed.