Release history
dagu releases
A local-first workflow engine built the way it should be: declarative, file-based, self-contained, air-gapped ready. One binary that scales from laptop to distributed cluster. Your Workflow Operator handles creating and debugging workflows.
All releases
52 shown
- Added opencode provider
Full changelog
Added
- fix: add opencode provider and fix reasoning content echo in tool call turns (#2134) @yottahmd
Fixed
- fix: avoid recursive lock cleanup on old windows (#2130) @yottahmd
- fix: resolve runtime env references in DAG env (#2131) @yottahmd
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.6.7...v2.6.8
Fixed file uploads above 100MB silently dropping.
Full changelog
Hotfix release
Fixed
- fix: tolerate extra agent tool fields (#2128) @yottahmd
- fix: support old powershell in generated scripts (#2129) @yottahmd
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.6.6...v2.6.7
- Show parallel sub‑DAG runs in timeline
- Agent session search tool
- Log step type
Full changelog
Added
- feat: show parallel sub-dag runs in timeline (#2093) @yottahmd
- feat: add agent session search tool (#2097) @yottahmd
- feat: add log step type (#2101) @yottahmd
- feat: improve agent content navigation (#2102) @yottahmd
- feat: add worker prometheus metrics (#2104) @yottahmd
- feat: validate step output contracts (#2105) @yottahmd
- feat(docs): expose description frontmatter metadata (#2106) @yottahmd
- feat: add dagu agent command (#2107) @yottahmd
- feat: add workspace base config (#2108) @yottahmd
- feat: carry push-back context into AI steps (#2109) @yottahmd
- feat: add agent runbook management tool (#2112) @yottahmd
- Add agent DAG management tools and run watches (#2113) @yottahmd
- feat: add agent web search backends (#2119) @yottahmd
- feat: improve agent session list pagination (#2126) @yottahmd
Changed
- chore(deps): bump ajv from 6.12.6 to 6.15.0 in /ui in the ui-security group across 1 directory (#2088) @dependabot
- docs: add GitHub issue templates and PR template (#2124) @zichen0116
Fixed
- fix: preserve dag-run artifact paths in index (#2087) @yottahmd
- fix: load base config during validation (#2089) @yottahmd
- fix: support multiline schema parameter input (#2094) @yottahmd
- fix: support underscored docs and md URLs (#2095) @yottahmd
- fix: preserve workspace label when creating DAGs (#2096) @yottahmd
- fix: clean up step validation errors (#2098) @yottahmd
- fix: keep agent modal inside viewport (#2099) @yottahmd
- fix: preserve working_dir on retry restore (#2111) @yottahmd
- fix: prevent duplicate runbook tab activation (#2115) @yottahmd
- fix: tolerate unsupported unix socket transport (#2117) @yottahmd
- fix: harden agent patch tool (#2118) @yottahmd
- fix: improve built-in agent chat tooling (#2120) @yottahmd
- fix: harden mermaid graph rendering (#2123) @yottahmd
- fix: clean command process groups on parent death (#2125) @yottahmd
- fix: keep history JSON output valid for empty results (#2127) @yottahmd
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
| --- | --- |
| chore(deps): bump ajv from 6.12.6 to 6.15.0 in /ui in the ui-security group across 1 directory (#2088) | @dependabot |
| feat: make timeline show sub graph execution (when using parallel) (#2048) | @privat-eco (report) |
| Bug: When I retry a step , the " working_dir" was lost and the command script can not found (#2110), Bug: In the Runbooks , It will open two tabs when you click a file name menu (#2114) | @aigeling (report) |
| 401 Client Error (#2116) | @zz111111 (report) |
| Graphs not rendered (#2121) | @frafra (report) |
| docs: add GitHub issue templates and PR template (#2124) | @zichen0116 |
| dagu history should output its error messages to STDERR instead of STDOUT, especially when using --format json (#2092) | @struffel (report) |
New Contributors
- @zichen0116 made their first contribution in https://github.com/dagucloud/dagu/pull/2124
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.6.5...v2.6.6
Fixed the UI to hide the local‑only remote node selector.
Changelog
Changelog
- 03a9a56d541f1c4ebb781e4266627321baac6c4b fix: hide local-only remote node selector
Minor fixes and improvements.
Full changelog
Changelog
- 9a23b72b5542595b97b5fde06fb8b2546dec8665 fix: publish npm packages under dagucloud org
Minor fixes and improvements.
Full changelog
Changelog
- 2bead6944b4bd2deda459ed4b1ab8e3409001517 fix(config): whitelist XDG_STATE_HOME (#2056) (#2077)
- Hardened workflow files against shell injection and over-privileged tokens
- Webhook HMAC authentication
- Approval workflow rewind and push-back history
- Structured step outputs
Full changelog
Added
- feat: add approval rewind and push-back history (#2038) @yottahmd
- feat: add schema-backed DAG param forms (#2039) @yottahmd
- feat: add webhook HMAC authentication (#2045) @yottahmd
- feat: forward selected webhook headers to DAG runs (#2050) @yottahmd
- feat: expand DAG examples for template, harness, and custom step types (#2051) @yottahmd
- feat: replace object output with structured step outputs (#2052) @yottahmd
Changed
- refactor: simplify loader and execution boundaries (#2034) @yottahmd
- refactor: isolate manifest decoding and standardize local transport (#2035) @yottahmd
- Update sponsorship link in README.md (#2044) @lukasMega
Fixed
- fix: corroborate stale distributed run repair with worker heartbeats (#2041) @yottahmd
- fix: preserve edited schedules across suspension rewrites (#2043) @yottahmd
- sec: harden workflow files against shell injection and over-privileged tokens (#2046) @krlmlr
- fix: harden DAG param validation and artifact inference (#2049) @yottahmd
- fix: suppress success digest bot notifications (#2054) @yottahmd
- fix: refresh structured output examples (#2055) @yottahmd
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
| --- | --- |
| Feature Request: Add UI Parameter Controls (Radio Buttons & Dropdowns) for Workflow Input (#2033) | @vit76 (report) |
| Unable to stop/cancel running jobs after worker terminated by k8s (#2040) | @pommetjehorlepiep (report) |
| modify spec's schedule time but not execute (#2042) | @zz111111 (report) |
| Update sponsorship link in README.md (#2044) | @lukasMega |
| Native HMAC-SHA256 verification on webhook deliveries (#2036), sec: harden workflow files against shell injection and over-privileged tokens (#2046), Forward selected webhook request headers to triggered DAG runs (#2037) | @krlmlr, @krlmlr (report) |
New Contributors
- @lukasMega made their first contribution in https://github.com/dagucloud/dagu/pull/2044
- @krlmlr made their first contribution in https://github.com/dagucloud/dagu/pull/2046
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.6.1...v2.6.2
Minor fixes and improvements.
Full changelog
Fixed
- fix: reduce start-all CPU usage and event-driven SSE (#2031) @yottahmd
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.6.0...v2.6.1
- Kubernetes secret provider support
- Bulk DAG-run deletion in web UI
- Edit-and-retry DAG runs
Full changelog
Added
- feat: add kubernetes secret provider (#2006) @yottahmd
- feat: add bulk DAG-run deletion in web UI (#2009) @yottahmd
- feat: add edit-and-retry DAG runs (#2010) @yottahmd
- feat: add embedded Dagu API (#2011) @yottahmd
- feat: add workflow design workspace (#2012) @yottahmd
- feat: make DAG labels canonical (#2013) @yottahmd
- feat: make workspace selection global (#2015) @yottahmd
- feat: show cockpit run artifacts (#2017) @yottahmd
- Allow disabling DAG retry policy (#2018) @yottahmd
- feat: add workspace access and global filtering (#2019) @yottahmd
- feat: support template functions in custom step types (#2020) @yottahmd
- feat: add step with config alias (#2021) @yottahmd
Changed
- ci: run tests on windows-latest (#1997) @yottahmd
- ci: split ubuntu and windows tests by suite (#2002) @yottahmd
- test: reduce fixed waits in slow suites (#2003) @yottahmd
- ci: stop uploading Playwright reports (#2004) @yottahmd
- test: stabilize distributed sub-DAG cancellation test (#2007) @yottahmd
- docs: fix double-negative in comment in internal/runtime/condition.go (#2026) @kuishou68
- refactor(ui): standardize component library usage (#2030) @yottahmd
Fixed
- fix: allow runtime custom step inputs (#2005) @yottahmd
- fix: align embedded engine run labels (#2014) @yottahmd
- fix: validate sftp executor schema (#2022) @yottahmd
- fix: handle Windows file persistence races (#2027) @yottahmd
- fix: restore DAG status live updates (#2028) @yottahmd
- Fix worker selector for sub-DAG calls (#2029) @yottahmd
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
| --- | --- |
| Allow disabling all kinds of retries for a DAG (#2016) | @struffel (report) |
| [BUG] - DAG Definitions - type sftp unrecognized (#1976) | @thimuslux (report) |
| docs: fix double-negative in comment in internal/runtime/condition.go (#2026) | @kuishou68 |
| docs: fix double-negative in comment in internal/runtime/condition.go (#2025) | @kuishou68 (report) |
| immediate execution does not respect workerSelector (#1638) | @scilo7 (report) |
New Contributors
- @kuishou68 made their first contribution in https://github.com/dagucloud/dagu/pull/2026
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.5.0...v2.6.0
- Windows profile environment variables now whitelisted for config compatibility
- Windows fallback added for bash tool
- Feature gating now aligns with current license state
- Experimental GitHub Actions (gha) executor removed
- dep: HIGH severity CVEs in go-jose and otel fixed
- DAG run artifacts support
- Harness executor for coding agent CLI orchestration
- Build-time custom step types
Full changelog
Added
- feat: add definition page link to DAG run details header (#1977) @yottahmd
- feat: add harness executor for coding agent CLI orchestration (#1978) @yottahmd
- feat: add DAG definition improvement flow from the spec editor (#1980) @yottahmd
- feat(spec): add build-time custom step types (#1987) @yottahmd
- feat(ui): add custom step editor autocomplete (#1989) @yottahmd
- feat(bots): add Discord bot integration (#1990) @yottahmd
- feat(ui): add inherited custom step editor hints (#1994) @yottahmd
- feat: add DAG run artifacts support (#1998) @yottahmd
Changed
- chore: remove experimental gha (GitHub Actions) executor (#1983) @yottahmd
- chore(deps): bump go-jose and otel to fix Trivy HIGH CVEs (#1984) @yottahmd
- chore: pin GitHub Actions to commit SHAs and update to latest versions (#1985) @yottahmd
- test(e2e): add distributed stack Playwright harness (#1996) @yottahmd
Fixed
- fix: generate coordinator proto in hybrid mode (#1970) @yottahmd
- fix: improve git sync publish and filtering (#1971) @yottahmd
- fix: make agent chat working state optimistic in web UI (#1972) @yottahmd
- fix: replace time.Sleep with deterministic synchronization in tests (#1973) @yottahmd
- fix: re-fetch auth providers after setup step 1 authentication (#1974) @yottahmd
- fix: return DAG with errors instead of 404 for invalid YAML files (#1975) @yottahmd
- fix: honor inherited DAG type during validation (#1981) @yottahmd
- fix: expire stale pending dispatch reservations (#1982) @yottahmd
- fix: distribute agent snapshots to shared-nothing workers (#1986) @yottahmd
- fix: remove third-party skill installation from embedded AI agent (#1988) @yottahmd
- fix: correct queue counts for distributed runs (#1992) @yottahmd
- fix: route local dag-run stop correctly (#1993) @yottahmd
- fix(config): whitelist common Windows profile env vars (#1991) (#1995) @yottahmd
- fix(agent): add Windows fallback for bash tool (#1999) @yottahmd
- fix(auth): align gated features with current license state (#2000) @yottahmd
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
| --- | --- |
| Type inheritance for base config still fails validation in v2.4.3 (#1979) | @bagemt (report) |
| Bug: some scheduled tasks are queued but not run (#1837) | @jonasban (report) |
| Suggestion for Windows: Add more Windows' default environment variables to the whitelist (#1991) | @ruxo (report) |
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.4.3...v2.5.0
Dashboard no longer lists queued DAG runs, fixing a display bug that showed stale workflow executions.
- CLI remote nodes removed and replaced with contexts
- Hardened event-driven bot notifications
- Centralized event store for event-driven orchestration
- Kubernetes step executor with DAG defaults
- Inline JSON Schema validation for DAG parameters
Full changelog
Added
- feat: add centralized event store (#1885) @yottahmd
- feat: add kubernetes step executor and DAG defaults (#1886) @yottahmd
- feat: add inline JSON Schema validation for DAG params (closes #1182) (#1887) @mbprabhoo
- feat: support OpenAI Codex auth and reasoning effort in agent settings (#1921) @yottahmd
- feat: add configurable env passthrough for step execution (#1925) @yottahmd
- feat: add configurable automatic update checks (#1941) @yottahmd
- Add event feed UI and harden event-driven bot notifications (#1946) @yottahmd
- feat(coordinator): support IPv6 address format and improve address pa… (#1947) @artikell
- feat: replace CLI remote nodes with contexts (#1949) @yottahmd
- feat: add cursor pagination for dag runs (#1952) @yottahmd
- feat: show next scheduled dag run in details (#1953) @yottahmd
- spec: inherit DAG type from base config before build (#1964) @yottahmd
- feat: improve queue browsing and dequeue reliability (#1967) @yottahmd
- feat: paginate cockpit and dashboard dag runs (#1969) @yottahmd
Fixed
- fix: preserve inline schema params metadata and legacy map handling (#1923) @yottahmd
- fix: preserve kubernetes discovery env for worker command steps (#1924) @yottahmd
- fix: allow keyless local agent setup (#1936) @yottahmd
- fix: redesign global search with cursor feeds (#1945) @yottahmd
- fix: warn on misleading cron step values (#1948) @tmchow
- fix: stop dashboard and cockpit dag run refetch loop (#1954) @yottahmd
- fix: restore immediate bot activity indicators (#1956) @yottahmd
- fix: expand runtime vars in output paths (#1957) @yottahmd
- fix: preserve restored step config on approval resume (#1959) @yottahmd
- Fix reschedule for inline DAG run snapshots (#1965) @yottahmd
- fix: route reschedule through enqueue (#1966) @yottahmd
- fix: replace app live polling with event-driven SSE updates (#1968) @yottahmd
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
| --- | --- |
| feat: add inline JSON Schema validation for DAG params (closes #1182) (#1887) | @mbprabhoo |
| Local Agent Provider Unnecessarily Requires API Key (#1882) | @arky (report) |
| feat(coordinator): support IPv6 address format and improve address pa… (#1947) | @artikell |
| fix: warn on misleading cron step values (#1948) | @tmchow |
| schedule is not executed according to the schedule (#639) | @JuchangGit (report) |
| Display when is the next scheduled dag run (#1950), Add support for inheritance of type field from base config (#1961) | @bagemt (report) |
| DAGU_RUN_STEP_NAME empty in step's stdout attribute (#1955) | @dev-epices (report) |
| registry_auths and step env lost after approval step resume (#1958) | @pengu-fr (report) |
Full Changelog: https://github.com/dagucloud/dagu/compare/v2.4.1...v2.4.2
A Helm chart for a distributed data service was published, allowing deployment through a public repository and requiring correct storage class settings for persistence.
- JSON Schema validation
- One-off start schedules
- Built-in REST API docs
- Step-scoped output access
- Template executor
- Slim-sprig functions support
## Changelog * ee9adb443db4da8d57c0f85b81cf931c76ddf837 fix: log existing Dagu home path as info
Fixed DAG retry logic during coordinator failures and ensured precondition shell commands receive proper runtime environment variables.
Fixed timezone handling preservation, session loop initialization, and stricter parameter validation for DAG execution.
- Format string config for HTTP
- File input via jq
- Variable references in repeat_policy
- DAG file traversal via encoded slashes
- Coordinator/Worker health endpoints
Updated Helm chart release for Dagu Kubernetes deployment.
- Slack Bot integration
- Telegram Bot integration
- DAG-Level Retry Policy
- SSE Endpoint Authentication: Basic auth now required
- dagu ai install command
- Built-in AI agent references
Fixed SubDAG step view link and added missing approval field to DAG JSON schema to ensure consistency and completeness.
Minor update to use step ID as display name when a custom name is not specified, improving default labeling in DAG graphs.
- hitl executor removed in favor of approval field on steps
- Generic approval field on any step type
- DAG_RUN_WORK_DIR and DAG_DOCS_DIR environment variables
- Tags parameter for start and enqueue APIs
Fixed orphaned tool calls that could remain in LLM conversation history, preventing agent state inconsistency.
Changed default landing page from Dashboard to Cockpit for improved workflow management.
- Cockpit workspace kanban view
- File-based DAG store index
- Document tab management
- Aborted run count
- Schema and examples command
Fixed SSE timeout and stale data issues causing false conflict warnings, hardened agent modal stability, and resolved agent step hangs after LLM responses.
Fixed SSE connection handling to restore save button availability and prevent authentication and stale data issues when switching remote nodes.
- OS environment variable expansion changed for non-shell executors
- Auth mode default changed to builtin
- Chain DAG depends field removed
Fixed JSON schema asset distribution for proper schema availability.
- SSH shell configuration
- Chat step type with multi-provider LLM support
- Per-DAG Prometheus metrics