This release focuses on distributed execution. Agent actions can run in parallel, retries can include downstream steps, and workers now receive the files each step depends on. Nested worker sub-DAGs are also routed correctly through the coordinator in shared-nothing deployments.
Operators get server IP allowlisting, multipart HTTP uploads, broader built-in harness provider coverage, and MCP discovery for alternate DAG directories. Reliability fixes cover Docker timeout cleanup, stable DAG-run sockets, controller-era agent data, symlinked DAG names, inferred build descendants, and path-prefixed S3 endpoints. The standard image now includes common runtime tools, and Dagu builds with Go 1.27 and JSON v2.
Added
- Feat/retry step with downstream (#2582) @kriyanshii
- feat: expand built-in harness provider coverage (#2584) @yohamta0
- feat: run agent actions in parallel (#2585) @yohamta0
- feat: add server IP allowlist (#2586) @yohamta0
- feat(mcp): include alt_dags_dir DAGs in dagu_read list (#2590) @yohamta0
- feat(http): support multipart file uploads (#2599) @yohamta0
- feat: transfer step file dependencies to workers (#2601) @yohamta0
Changed
Fixed
- fix(docker): stop containers and execs on step timeout (#2566) @rflpazini
- fix: preserve DAG names for external symlink entries (#2579) @yohamta0
- fix: update Go to 1.26.6 (#2580) @yohamta0
- fix: use stable DAG-run socket identity (#2587) @yohamta0
- fix: keep controller-era agent DAGs and runs readable (#2588) @yohamta0
- fix: route nested worker sub-DAGs through coordinator (#2594) @CBOSSX
- fix(runtime): retry inferred build descendants (#2595) @yohamta0
- build: upgrade to Go 1.27 and JSON v2 (#2597) @yohamta0
- fix: support path-prefixed S3 endpoints (#2598) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| fix: route nested worker sub-DAGs through coordinator (#2594) | @CBOSSX |
| bug: dag.run fails to spawn nested DAGs from workers in shared-nothing mode (#2591), feat: step-level file dependencies that Dagu transfers to the worker (#2581) | @bh-schmidt (report) |
| Feat/retry step with downstream (#2582) | @kriyanshii |
| fix(docker): stop containers and execs on step timeout (#2566) | @rflpazini |
| feat: Support loading DAG definitions from alt_dags_dir in dag_read() (#2589) | @sahalisro-blip (report) |
| regression: DAG name is derived from resolved symlink target basename after #2548 — mangled names break the 40-char limit (follow-up to #2544) (#2578) | @xbpk3t (report) |
New Contributors
Full Changelog: v2.14.0...v2.15.0