Releases: dagucloud/dagu
Release list
v2.18.1
Fixed
- fix(ui): label graph nodes with step name (#2946) @yohamta0
- fix(ui): keep spec editor in place while preview updates (#2947) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| bug: step with id and name shows as id in graph (#2944), feat: Stop updating graph in real-time/moving spec edit area when editing workflow spec (#2945) | @pommetjehorlepiep (report) |
Full Changelog: v2.18.0...v2.18.1
v2.18.0
Added
- feat: add mailbox actions (#2867) @yohamta0
- feat: reply to emails, publish message_id, and accept OAuth scopes (#2871) @yohamta0
- feat(scheduler): support cron descriptors like @daily (#2876) @LouisDeconinck
- feat(ui): autocomplete for DAG name and run ID filters (#2877) @LouisDeconinck
- feat: expose step precondition bypass in retry API and UI (#2880) @LouisDeconinck
- feat: add container env_file support (#2881) @LouisDeconinck
- feat: make desktop state readable by programs (#2896) @yohamta0
Changed
- ci: shard Go and conformance tests to cut CI time (#2862) @yohamta0
- ci: publish a signed packslip with each release (#2891) @jdx
Fixed
- Add computer steps for desktop automation (#2865) @yohamta0
- fix: record browser replays only when the step succeeds (#2868) @yohamta0
- fix: type mail attachments and reject unreadable ones (#2869) @yohamta0
- fix(runtime): correct sibling condition message on evaluation error (#2870) @LouisDeconinck
- refactor: deduplicate non-escaping JSON marshal helper (#2872) @LouisDeconinck
- fix(persis): deflake base.yaml watch test on Windows (#2874) @LouisDeconinck
- fix(runtime): propagate condition abort and timeout (#2878) @LouisDeconinck
- fix(coordinator): set WorkspaceBundleDir on runtime dispatcher (#2879) @yoyooyooo
- test(spec): pin SFTP DAG-level SSH inheritance contract (#2886) @LouisDeconinck
- fix(ssh): resolve params in DAG-level ssh fields (#2887) @LouisDeconinck
- fix: child run params take precedence over inherited parent env (#2888) @LouisDeconinck
- fix: surface DAG build errors on run records (#2890) @LouisDeconinck
- fix: make computer steps safe on a shared desktop (#2892) @yohamta0
- fix(notification): fill run.error from failed steps (#2894) @yohamta0
- fix(coordinator): preserve queue identity for distributed starts (#2895) @yoyooyooo
- fix: keep multi-line jq filters as the filter (#2897) @yohamta0
- runtime: warn about missing shell and commands in dry runs (#2899) @LouisDeconinck
- fix(api): recover approvals and preserve direct resumes (#2901) @LouisDeconinck
- fix(runtime): surface repeat_policy evaluation errors (#2902) @LouisDeconinck
- fix(docker): support bracketed IPv6 hosts in port mappings (#2911) @LouisDeconinck
- fix: stop dropping YAML documents after empty documents (#2914) @LouisDeconinck
- fix: embed time zone database for Windows (#2916) @yohamta0
- fix: recover browser acts that lose the page session (#2924) @yohamta0
- fix(agent): reject duplicate execution of an already-recorded dag-run attempt (#2931) @LouisDeconinck
- fix: keep final output line in step logs when secrets are declared (#2933) @yohamta0
- fix: load dotenv for scheduler-triggered runs (#2937) @yohamta0
- fix: clear worker ownership when re-queuing a retry (#2940) @yohamta0
- fix(router): allow a step to be the target of several routes (#2942) @yohamta0
- fix(coordinator): distinguish busy workers from selector mismatches (#2943) @yoyooyooo
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| bug: dotenv not loaded for scheduler-triggered runs (regression since 2.10.x) (#2934) | @Dadavan (report) |
| fix(runtime): correct sibling condition message on evaluation error (#2870), refactor: deduplicate non-escaping JSON marshal helper (#2872), fix(persis): deflake base.yaml watch test on Windows (#2874), feat(scheduler): support cron descriptors like @daily (#2876), feat(ui): autocomplete for DAG name and run ID filters (#2877), fix(runtime): propagate condition abort and timeout (#2878), feat: expose step precondition bypass in retry API and UI (#2880), feat: add container env_file support (#2881), test(spec): pin SFTP DAG-level SSH inheritance contract (#2886), fix(ssh): resolve params in DAG-level ssh fields (#2887), fix: child run params take precedence over inherited parent env (#2888), fix: surface DAG build errors on run records (#2890), runtime: warn about missing shell and commands in dry runs (#2899), fix(api): recover approvals and preserve direct resumes (#2901), fix(runtime): surface repeat_policy evaluation errors (#2902), fix(docker): support bracketed IPv6 hosts in port mappings (#2911), fix: stop dropping YAML documents after empty documents (#2914), fix(agent): reject duplicate execution of an already-recorded dag-run attempt (#2931) | @LouisDeconinck |
| Autocomplete for DAG Name and Run ID filters on the DAG Runs (#1951) | @bagemt (report) |
| Parse errors in base.yaml actions not surfaced in DAG UI (#2314) | @four-bytes-robby (report) |
| feat: support for schedule: @hourly/@daily/@monthly (#2145) | @frafra (report) |
| ci: publish a signed packslip with each release (#2891) | @jdx |
| bug(human-task): second push-back in the same attempt fails the whole run with "distributed run lease expired" (distributed worker) (#2938) | @sch-felipe (report) |
| fix(coordinator): set WorkspaceBundleDir on runtime dispatcher (#2879), fix(coordinator): preserve queue identity for distributed starts (#2895), fix(coordinator): distinguish busy workers from selector mismatches (#2943) | @yoyooyooo |
New Contributors
- @jdx made their first contribution in #2891
- @yoyooyooo made their first contribution in #2895
Full Changelog: v2.17.2...v2.18.0
v2.17.2
Added
- feat(human-task): support push-back and rewind (#2840) @yohamta0
- feat: browser automation actions (browser.extract / browser.run) (#2843) @yohamta0
- feat: run browser steps in the dev image (#2844) @yohamta0
- feat(cli): add secret resolve command (#2846) @yohamta0
- feat: expose the deadline of a waiting browser ask (#2852) @yohamta0
- feat: report requests blocked by browser.allowed_domains (#2853) @yohamta0
- feat: clear a browser step's replay cache (#2854) @yohamta0
- feat: run selected steps with dagu start --only (#2855) @yohamta0
- feat: set skipped steps' outputs with dagu start --output (#2859) @yohamta0
Fixed
- fix(ssh): inherit DAG connection settings for SFTP transfers (#2835) @fancive
- fix(api): stream individual log downloads (#2837) @yohamta0
- fix(humantask): resume independent branches while tasks wait (#2838) @yohamta0
- fix: replace stdout/stderr artifact on each attempt (#2847) @yohamta0
- fix: stabilize Stagehand browser tests on Windows (#2856) @yohamta0
- fix: store DAG definition index under data_dir (#2858) @yohamta0
- fix: mask secrets in stored step outputs (#2861) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| DAG definition index path is hardcoded to dags_dir — no way to relocate it when dags_dir is read-only (#2857) | @CatGoesMeow (report) |
| fix(ssh): inherit DAG connection settings for SFTP transfers (#2835) | @fancive |
| bug: human task on one branch blocks independent branches from resuming (#2834) | @nedsociety (report) |
| feat(human-task): support push-back and rewind (#2802) | @waewoo (report) |
Full Changelog: v2.17.1...v2.17.2
v2.17.0
Added
- feat(ui): save run views for the Executions page (#2774) @yohamta0
- feat(api,ui): download step logs as ZIP (#2781) @LouisDeconinck
- feat(executor): support args for jq executor (#2782) @LouisDeconinck
- feat: add opt-in pass_env for sub-DAG runs (#2783) @LouisDeconinck
- feat: move default suspend flags directory under data_dir (#2784) @LouisDeconinck
- feat: add retry --bypass-preconditions flag (#2785) @LouisDeconinck
- feat: add step-level stdin field for piping a file to a command (#2786) @LouisDeconinck
- feat: publish parallel sub-DAG outputs on the step outputs channel (#2787) @LouisDeconinck
- feat(ui): add Artifacts page listing runs with files (#2788) @yohamta0
- feat: warn on implicit harness working directories (#2790) @yohamta0
- feat(ui): save artifact views for the Artifacts page (#2793) @yohamta0
- feat(ui): allow reordering sidebar bookmarks (#2807) @yohamta0
- feat: add native decision evaluation action (#2811) @yohamta0
- feat: numeric comparison in preconditions and router routes (#2816) @yohamta0
- feat(harness): add Kilo Code as a built-in provider (#2823) @waewoo
- feat(human-task): attach run artifacts to tasks (#2824) @waewoo
Changed
- Partition DAG-run artifacts by date and index them (#2776) @yohamta0
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.46.0 in the go-security group across 1 directory (#2804) @dependabot
- Improve artifact keyboard navigation (#2808) @yohamta0
- chore: regenerate llms.txt for parallel step outputs (#2828) @yohamta0
Fixed
- fix: omit inherited SMTP from run snapshots (#2773) @yohamta0
- Pace every run with the DAG's queue, and stop dropping queued retries (#2775) @yohamta0
- fix(runtime): treat non-positive step limits as unlimited (#2777) @yohamta0
- fix(sse): keep multiplexed session open on oversized message (#2780) @LouisDeconinck
- fix(ui): enable history navigation in grouped and timeline views (#2794) @jojipanackal
- fix(runtime): wait for durable status before continuing past a node (#2809) @RawssemMoussaoui-rtx
- fix(mailer): generate RFC-compliant MIME messages (#2825) @lzyruc
- fix(runtime): re-quote resolved "${ref}" values for PowerShell (#2827) @yohamta0
- fix: reject unusable continue_on.output patterns and report out-of-range numbers (#2829) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| fix(sse): keep multiplexed session open on oversized message (#2780), feat(api,ui): download step logs as ZIP (#2781), feat(executor): support args for jq executor (#2782), feat: add opt-in pass_env for sub-DAG runs (#2783), feat: move default suspend flags directory under data_dir (#2784), feat: add retry --bypass-preconditions flag (#2785), feat: add step-level stdin field for piping a file to a command (#2786), feat: publish parallel sub-DAG outputs on the step outputs channel (#2787) | @LouisDeconinck |
| fix(runtime): wait for durable status before continuing past a node (#2809) | @RawssemMoussaoui-rtx |
| feat: Add one-click download/export of merged logs for all steps in a DAG run from the Web UI (#2779) | @afkkl83 (report) |
| chore(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.46.0 in the go-security group across 1 directory (#2804) | @dependabot |
| bug: mail.send produces non-RFC-compliant MIME (missing Date/Message-Id/MIME-Version), triggers spam filters (#2803) | @gorootde (report) |
| feat: Allow bypassing preconditions for retry (#1014) | @jeremydelattre59 (report) |
| fix(ui): enable history navigation in grouped and timeline views (#2794) | @jojipanackal |
| bug: Arrow-key history navigation fails in Grouped and Timeline views (#2797) | @jojipanackal (report) |
| fix(mailer): generate RFC-compliant MIME messages (#2825) | @lzyruc |
| Support for arguments with jq executor (#547) | @mdanilakis (report) |
| feat(harness): add Kilo Code as a built-in provider (#2823), feat(human-task): attach run artifacts to tasks (#2824) | @waewoo |
| bug: SSE stream closes when a DAG details payload exceeds write_buffer_size (#2765), feat(harness): add Kilo Code as a built-in provider (#2799), feat(human-task): allow attaching run artifacts to Human Tasks (#2798) | @waewoo (report) |
New Contributors
- @jojipanackal made their first contribution in #2794
- @RawssemMoussaoui-rtx made their first contribution in #2809
- @waewoo made their first contribution in #2824
- @lzyruc made their first contribution in #2825
Full Changelog: v2.16.6...v2.17.0
v2.16.6
Fixed
- fix(mcp): serve the dagu://dags collection resource (#2763) @LouisDeconinck
- fix(mcp): serve the dagu://runs and dagu://reference collection resources (#2764) @LouisDeconinck
- Improve notification rules and channel management (#2768) @yohamta0
- fix(mcp): make the DAG collection pagination contract truthful (#2769) @yohamta0
- fix(scheduler): reload inherited base defaults (#2770) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| fix(mcp): serve the dagu://dags collection resource (#2763), fix(mcp): serve the dagu://runs and dagu://reference collection resources (#2764) | @LouisDeconinck |
| Reading DAGs (with MCP) returns completion message instead of DAG list (#2604) | @sahalisro-blip (report) |
Full Changelog: v2.16.5...v2.16.6
v2.16.5
Added
- feat(ui): show live step output after starting runs (#2752) @LouisDeconinck
- feat(cli): add JSON output to dagu ps (#2757) @yohamta0
- feat(api): expose the local process of a running dag-run (#2758) @yohamta0
- feat(scheduler): add a global scheduler pause switch (#2762) @yohamta0
Changed
- docs: simplify first-time contributor onboarding (#2753) @LouisDeconinck
- Surface waiting checkpoints over MCP (#2755) @yohamta0
- Pull the MinIO test image from quay.io (#2756) @yohamta0
Fixed
- fix(gitsync): avoid stale stat cache on rapid edits (#2751) @LouisDeconinck
- fix(schema): correct working_dir and dotenv resolution docs (#2759) @yohamta0
- fix(dagrun): prune empty DAG directory when removing a root work dir (#2760) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| fix(gitsync): avoid stale stat cache on rapid edits (#2751), feat(ui): show live step output after starting runs (#2752), docs: simplify first-time contributor onboarding (#2753) | @LouisDeconinck |
| docs: make first-time contributing less overwhelming (#2569) | @kriyanshii (report) |
| Feature Request: "Run and follow output" option to auto-open live output when running a DAG (#2682) | @vit76 (report) |
Full Changelog: v2.16.4...v2.16.5
Full Changelog: v2.16.4...v2.16.5
v2.16.4
Added
- feat(windows): add Inno Setup installer (#2743) @LouisDeconinck
- feat(ui): add MCP setup prompt to API key creation dialog (#2746) @yohamta0
- feat(windows): publish the Inno Setup installer with each release (#2748) @yohamta0
Fixed
- Recover catchup after scheduler pauses (#2742) @yohamta0
- fix(ui): remove status-based row tint from the step table (#2747) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| feat(windows): add Inno Setup installer (#2743) | @LouisDeconinck |
New Contributors
- @LouisDeconinck made their first contribution in #2743
Full Changelog: v2.16.3...v2.16.4
v2.16.3
Added
- feat(chart): add priorityClassName support (#2737) @JohnMastodon
Changed
- Support schedule descriptors with conformance tests (#2642) @arky
- Add spec and black-box conformance test coverage (#2665, #2666, #2667, #2668, #2680, #2690, #2691, #2701, #2702, #2703, #2704, #2705, #2706, #2707, #2708, #2709, #2710, #2711, #2712, #2713, #2714, #2715, #2716, #2717, #2718, #2719, #2720, #2721) @arky
- Show schedule aliases in workflow examples (#2722) @yohamta0
- Resolve strict step-output references for every publishing mechanism (#2741) @yohamta0
Fixed
- chore(deps): bump the go-security group across 1 directory with 2 updates (#2697) @dependabot
- tools/aqua: serialize standard registry cache refreshes (#2738) @fancive
- Fix Windows CI flake in aqua registry cache write path handling (#2740) @copilot-swe-agent
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| feat(chart): add priorityClassName support (#2737) | @JohnMastodon |
| feat: add priorityClassName support to the helm chart (#2736) | @JohnMastodon (report) |
| Support schedule descriptors with conformance tests (#2642), Add spec and black-box conformance test coverage (#2665, #2666, #2667, #2668, #2680, #2690, #2691, #2701, #2702, #2703, #2704, #2705, #2706, #2707, #2708, #2709, #2710, #2711, #2712, #2713, #2714, #2715, #2716, #2717, #2718, #2719, #2720, #2721) | @arky |
| Bug: GitHub aqua-registry rate limiting slows/stalls concurrent black-box tests (#2727) | @arky (report) |
| Fix Windows CI flake in aqua registry cache write path handling (#2740) | @copilot-swe-agent |
| bug: Custom action output_schema outputs are not interpolated into subsequent steps (#2739) | @d3lb3 (report) |
| chore(deps): bump the go-security group across 1 directory with 2 updates (#2697) | @dependabot |
| tools/aqua: serialize standard registry cache refreshes (#2738) | @fancive |
New Contributors
- @JohnMastodon made their first contribution in #2737
- @fancive made their first contribution in #2738
Full Changelog: v2.16.2...v2.16.3
helm-dagu-2.0.4
Helm chart release for Dagu.
This GitHub release publishes the packaged dagu Helm chart for the Helm repository at https://dagucloud.github.io/dagu. It is not a Dagu application binary release.
Install the chart with:
helm repo add dagu https://dagucloud.github.io/dagu
helm repo update
helm upgrade --install dagu dagu/dagu \
--namespace dagu \
--create-namespace \
--waitThe default standalone mode uses ReadWriteOnce access with the cluster's default StorageClass. Distributed installations can opt into separate workers and ReadWriteMany storage.
Application releases use separate vX.Y.Z tags.
v2.16.2
Added
Changed
- test: add spec and conformance coverage for wait actions (#2679) @arky
- docs: require short Go test function names in project conventions (#2681) @arky
- chore(deps): bump google.golang.org/protobuf from 1.36.12-0.20260120151049-f2248ac996af to 1.36.12 (#2684) @dependabot
- chore(deps): bump github.com/containerd/platforms from 1.0.0-rc.4 to 1.0.0-rc.5 (#2685) @dependabot
- Refine language selector styling (#2687) @yohamta0
Fixed
- chore(deps): bump the go-patch group with 10 updates (#2683) @dependabot
- Fix MCP profile-scoped schedule setup (#2688) @yohamta0
- fix: refresh DAG list after scheduler changes (#2689) @yohamta0
- fix: make history cleanup idempotent (#2694) @yohamta0
- fix(ui): restore semantic color utilities (#2695) @yohamta0
- fix: decode snake_case SSH config (#2696) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| test: add spec and conformance coverage for wait actions (#2679), docs: require short Go test function names in project conventions (#2681) | @arky |
Full Changelog: v2.16.1...v2.16.2