What dagucloud/dagu shipped
Written by FoxPlug from the repository's own releases; not affiliated with Dagu. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/dagucloud/dagu; Dagu did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Queued runs now continue when the scheduler stops, instead of being killed and left with steps stuck at running. Pull request #3666
- Each schedule slot now gets one deterministic run ID, so a replay or a second scheduler cannot start a duplicate run for the same slot. Pull request #3664
- A standby scheduler now detects a stale lock by watching heartbeats instead of comparing timestamps with its own clock, avoiding false takeovers from clock skew or NFS caching. Pull request #3663
- A new gauge reports active and standby scheduler counts, so operators can see a standby is present before the active instance fails. Pull request #3669
- Version 2.26.0 adds a DAG-level
restart_policy, broader reference suggestions in the editor, and signed Windows binaries with a Scoop manifest. Release - The browser watch tests now wait for the browser's first answer, fixing a flaky failure on main. Pull request #3654
- The
dagu_executetool now accepts an optional profile to select profile-scoped variables and secrets for one run. Pull request #3643 - A Scoop manifest is published for Windows installs on each stable release. Pull request #3646
- A DAG-level
restart_policywith no, always and unless-stopped keeps one run of a DAG alive through the scheduler. Pull request #3156 - Stdout and stderr redirect paths now create missing parent directories instead of failing with no such file or directory. Pull request #3610
Why it matters
This week the scheduler failover work made standby instances visible, stopped queued runs from being lost when a scheduler stops, and removed duplicate runs from replays of the same schedule slot. Release 2.26.0 brought a DAG-level restart_policy, more reference suggestions in the editor, and Windows install options. Users of Windows and of the MCP execute tool also get new options for installs and per-run profile selection.
Changelog entry
- Keep queued runs going when the scheduler stops Pull request #3666
- Replay schedule slots missed during a scheduler takeover with scheduler.failover_recovery_window Pull request #3665
- Give each schedule slot one deterministic run ID shared by live runs and catch-up Pull request #3664
- Detect a stale scheduler lock by watching heartbeats in dirlock Pull request #3663
- Add
dagu_scheduler_instances{status} gauge for active and standby schedulers Pull request #3669 - Exit with a non-zero status when the scheduler lock is lost Pull request #3662
- Release v2.26.0 with DAG
restart_policy, editor reference suggestions and signed Windows binaries Release - Create parent directories for stdout and stderr redirect paths Pull request #3610
- Add optional profile selection to
dagu_executePull request #3643 - Publish a Scoop manifest for Windows installs Pull request #3646
- Add the DAG
restart_policywith no, always and unless-stopped Pull request #3156 - Show how many times a repeated step ran in the CLI Pull request #3620
This week: queued runs survive a scheduler stop, schedule slots get a deterministic run ID, standby count is reported, and v2.26.0 ships with DAG restart_policy, editor reference suggestions and a Windows installer. Also: Scoop manifest, profile selection in dagu_execute.
This week in Dagu: stopping a scheduler no longer kills queued runs, and each schedule slot gets one deterministic run ID so replays and second schedulers cannot start a duplicate run. A standby scheduler now detects a stale lock by watching heartbeats, and a new gauge reports active and standby counts. Release v2.26.0 adds a DAG-level restart_policy, broader reference suggestions in the editor, signed Windows binaries and a Scoop manifest; the dagu_execute tool now accepts an optional profile for a single run.
Week of October 26, 2026
What shipped
- Released v2.25.0, which syncs calendars with Git. Release
- Added a Calendars page for browsing and editing calendars in the UI. Pull request #3451
- Schedules can now follow business calendars instead of relying on date preconditions. Pull request #3435
- DAG details, the spec endpoint and validation now preview the next runs of a DAG's schedules. Pull request #3431
- Added a History tab showing how each step behaves across runs. Pull request #3469
- A plain click on a workflow or run row now opens a read-only peek instead of the full page. Pull request #3453
- DAG list status and last run sorting now happens on the server and persists across reloads. Pull request #3119
- Server secrets can be read from files through _file keys and DAGU_*_FILE variables. Pull request #3214
- DAG tools can use an aqua registry YAML file on the worker via a local registry type and absolute path. Pull request #3268
- Backslash in path fields is now treated as path text, so references after it expand correctly on Windows. Pull request #3464
Why it matters
This week adds business calendar support end to end: schedules can follow business days, calendars are editable from a page, printable through the API and synced with Git in the release. The workflow page also gains step history, run peeks, schedule previews and server-side sorting, while several fixes improve Windows paths, secret files and idle polling.
Changelog entry
- Release v2.25.0: sync calendars with Git. Release
- Schedules can follow business calendars. Pull request #3435
- Add a Calendars page to browse and edit calendars. Pull request #3451
- Preview the next runs of a DAG's schedules. Pull request #3431
- Add a History tab showing step history across runs. Pull request #3469
- Open a read-only peek of workflows and runs from list rows. Pull request #3453
- Sort the DAG list by status and last run on the server. Pull request #3119
- Remove idle polling and repeated DAG reads behind live updates. Pull request #3457
- Read server secrets from _file keys and DAGU_*_FILE variables. Pull request #3214
- Support a local aqua registry YAML file for DAG tools. Pull request #3268
- Treat backslash as path text in path fields on Windows. Pull request #3464
- Reload symlinked DAGs when their targets change. Pull request #3460
Dagu v2.25.0 is out: calendars now sync with Git. This week also added a Calendars page, schedules that follow business days, next-run previews, a per-step History tab, list peeks and server-side DAG sorting, plus secret _file keys and local tool registries.
Dagu v2.25.0 is out, and Git Sync now handles calendars. This week also brought business calendar support for schedules, a Calendars page, next-run previews for a DAG's schedules, a History tab showing how each step behaves across runs, and read-only peeks from list rows. DAG list sorting by status and last run now happens on the server and survives reloads, server secrets can be read from files, DAG tools can use a local aqua registry, and Windows path handling and idle polling got fixes.
Week of October 19, 2026
What shipped
- Harness.run can now connect to ACP agents over local stdio, WebSocket and Streamable HTTP, with existing CLI providers unchanged when protocol is omitted. Pull request #3256
- Wait.until now accepts HH:MM clock times with offset, timezone and
if_pastor window controls, so release gates no longer need a compute step. Pull request #3248 - V2.22.0 ships harness.run over ACP, a local command notification channel, time-of-day gates for wait.until, failure reasons in Dagu Console and MCP access to self-hosted servers, built with Go 1.27.3 to distrust compromised eMudhra CAs. Release
- Dagu config --values prints every setting with its value and whether it came from default, file or env, masks secrets, and supports json and other output formats. Pull request #3252
- Check and uncheck pin a checkbox's state so rerunning a step, including a retry from the failed step, no longer leaves the box in the wrong state. Pull request #3316
- Desktop steps can select elements by whether they take input, so a grayed-out or disabled button can be detected without asking a model. Pull request #3319
- A computer replay returns to the step's own application after a person uses the desktop partway through the run. Pull request #3315
- Replays wait for the screen to be steady before reading it, avoiding crashes in Electron applications while a window is still being torn down. Pull request #3312
- Dagu upgrade now shows restart and install-specific update steps instead of leaving a replaced binary running in the server without saying to restart. Pull request #3289
- Dagu server and dagu start-all log one startup warning naming every workspace setting in use, ahead of v3.0 removing workspaces. Pull request #3282
Why it matters
This week's releases keep improving what workflows can wait for and connect to: ACP agents over several transports and native time-of-day gates remove workarounds people had to build. Desktop computer steps became much more reliable around dialogs, disabled elements, checkboxes, steady screens and a person using the machine mid-run. Diagnostics got easier too, with dagu config --values showing where each setting came from and upgrade telling you to restart.
Changelog entry
- V2.22.0: connect harness.run to ACP agents over stdio, WebSocket and HTTP, add a local command notification channel and time-of-day gates for wait.until. Release
- Harness.run supports ACP agents over local stdio, ws and wss, and http and https, with protocol omitted keeping the existing CLI behavior. Pull request #3256
- Wait.until accepts HH:MM and HH:MM:SS with offset, timezone and
if_pastor window controls. Pull request #3248 - Dagu config --values prints KEY, VALUE and SOURCE for every setting, masks secrets, and supports json output. Pull request #3252
- Dagu upgrade shows restart and install-specific update steps and keeps the update banner accurate. Pull request #3289
- Dagu server and dagu start-all warn at startup about workspace settings that v3.0 removes, and admins see a notice while any is in use. Pull request #3282
- Check and uncheck pin a checkbox's state so a retried or rerun step does not toggle it wrongly. Pull request #3316
- Computer.run steps can select desktop elements by whether they take input, detecting disabled controls. Pull request #3319
- Computer replays return to the step's application after a person uses the desktop mid-run. Pull request #3315
- Computer replays read the screen only once it is steady, avoiding crashes during window teardown. Pull request #3312
- Steps redirecting stdout or stderr to devices such as /dev/null no longer fail with a sync error when the command exits 0. Pull request #3264
- A run's latest status is read from the end of its file instead of decoding every line, speeding up status reads on long runs. Pull request #3280
V2.22 is out: harness.run connects to ACP agents over stdio, WebSocket and HTTP, wait.until takes clock times with timezone and offset, and Dagu Console shows why runs failed. Plus this week: an upgrade flow that tells you to restart, and dagu config --values.
Dagu v2.22.0 is out: harness.run now connects to ACP agents over stdio, WebSocket and Streamable HTTP, wait.until accepts HH:MM clock times with offset and timezone for release gates, local command notifications, failure reasons in Dagu Console and MCP access to self-hosted servers. Since then, this week added dagu config --values, which prints every setting with its value and source, and an upgrade flow that shows restart and install-specific steps instead of leaving the old binary running. On the desktop side, computer steps now stop at dialogs, select elements by whether they take input, pin checkboxes with check and uncheck, and return to the step's application after a person uses the machine.
Week of October 12, 2026
What shipped
- Version 2.21.0 released with a ClickHouse step, browser steps that choose when the model is called, headless runs that behave like headed Chrome, per-run worker selection, scheduler visibility of edits on other hosts, and more. Release
- Added the clickhouse.query action to run SQL against ClickHouse over its HTTP interface with no new Go dependency, supporting inline or file SQL, parameters, and sequential statements. Pull request #3160
- Browser steps now accept with.ai and per-operation ai settings to control how much the model decides for act and upload operations, with
every_run,on_miss, and related choices. Pull request #3186 - Headless browser runs now present Chrome's user agent and screen dimensions so pages lay out and respond as they do under headed Chrome. Pull request #3188
- The start and enqueue API endpoints and the dagu start and enqueue commands accept a per-run workerSelector or worker labels so one run can be routed to a worker set without editing the DAG. Pull request #3197
- The scheduler now learns about DAGs created, edited, renamed or deleted on another host through a shared NFS or similar volume. Pull request #3170
- DAGU_ prefixed credential settings are no longer forwarded from Dagu's own environment into the processes a workflow runs. Pull request #3222
- The Activity view now draws each run as a bar from its start to its end instead of a fixed-width mark at its start time. Pull request #3219
- Dagu xlsx inspect and dagu xlsx read now accept standard input with a 64 MiB limit, so callers holding uploaded workbook bytes no longer need a temporary file. Pull request #3184
- Added dagu dry --format json, which prints one JSON object with step checks on stdout while text stays the default and warnings stay on stderr. Pull request #3190
Why it matters
This week brought a new release with a ClickHouse step, more control over how browser steps call the model, and headless runs that behave like headed Chrome. It also added per-run worker routing, made schedulers see DAG edits made on other hosts, and kept credentials out of step environments, all of which affect how workflows are written and run.
Changelog entry
- Release v2.21.0 with a ClickHouse step, browser model-decision settings, headed-like headless Chrome, per-run worker selection, and cross-host scheduler visibility. Release
- Add clickhouse.query to run SQL over the ClickHouse HTTP interface with inline or file SQL, parameters, and sequential statements. Pull request #3160
- Add with.ai and per-operation ai to browser steps to control model decisions for act and upload operations. Pull request #3186
- Make headless browsers present Chrome's user agent and screen size. Pull request #3188
- Add per-run workerSelector to the start and enqueue API endpoints and worker labels to the CLI. Pull request #3197
- Let the scheduler see DAG changes made on another host over a shared volume. Pull request #3170
- Keep DAGU_ credential settings out of workflow step environments. Pull request #3222
- Draw Activity runs as bars from start to end time. Pull request #3219
- Accept standard input for dagu xlsx inspect and read with a 64 MiB limit. Pull request #3184
- Add dagu dry --format json for machine-readable step checks. Pull request #3190
- Release helm-dagu-2.0.5 chart for the Dagu Helm repository. Release
- Allow creating Wiki pages from the all view, placing root pages in the default workspace. Pull request #3194
Dagu v2.21.0 is out: a ClickHouse step, browser steps that choose when the model is called, headless runs that behave like headed Chrome, per-run worker routing, and schedulers that see edits made on other hosts.
Dagu v2.21.0 is released. It adds a clickhouse.query action that runs SQL over ClickHouse's HTTP interface, and browser steps can now choose how much the model decides for act and upload operations. Headless Chromium runs now look and behave like headed Chrome. Distributed runs can pick workers per run and wait for workers that scale from zero, and schedulers on a shared volume now see DAG edits made on other hosts. This week also added per-run workerSelector on the start and enqueue endpoints and the dagu start and enqueue commands, stopped forwarding DAGU_ credential settings into step environments, and made Activity draw runs as duration bars.
Week of October 5, 2026
What shipped
- A recording now keeps the element each action landed on beside its pixels, so a replay acts on that element wherever it is now, without a model. Pull request #3102
- V2.19.0 ships workbook column profiling in inspect, hidden sheet and row reporting, opening protected workbooks from the CLI and the workbook target, and a sandboxed js.run. Release
- Model-driven desktop actions now run against the window the model saw and click elements through UI Automation. Pull request #3115
- Teams with many workflows can pin the ones they check daily to the top of the Workflows page, shared across the server. Pull request #3087
- A local run's terminal status stays unpublished until its outputs and finalization work are complete, so a polling client never sees succeeded with empty outputs. Pull request #3106
- Concurrent xlsx.update_rows calls no longer report success while losing changes to the same workbook. Pull request #3097
- The launcher passes params to subprocesses on stdin, so params larger than the platform command-line limit start instead of failing. Pull request #3113
- The DAG detail page now fits its graph box on first render, shows the whole graph, and reaches the YAML without scrolling past every step. Pull request #3083
- A jq evaluation error now fails the step instead of being printed and discarded, and a failed step's syntax, compilation or evaluation error is no longer replaced by a JSON EOF error. Pull request #3089
- Mixed-case YAML extensions such as FLOW.YAML are recognized in DAG discovery and when started from the CLI. Pull request #3080
Why it matters
This week the desktop side of the project moved from pixels to real elements: recordings and replays now carry the element each action landed on, so a moved window or another display replays with no model. Alongside that, v2.19.0 landed workbook profiling and hidden sheet and row reporting, and several long-standing paper cuts around run status, xlsx updates and launcher params were fixed.
Changelog entry
- V2.19.0: profile every table column in inspect, report hidden sheets and rows, open protected workbooks from the CLI and the workbook target, and add a sandboxed js.run. Release
- Record the element each computer action lands on and replay on that element wherever it is now. Pull request #3102
- Run model-driven computer actions on the window the model saw and click elements through UI Automation. Pull request #3115
- Match a replayed window by its application instead of its title. Pull request #3112
- Replay an action through the element's own UI Automation pattern under input: direct. Pull request #3114
- Pin workflows to the top of the Workflows page, shared across the server. Pull request #3087
- Save local run outputs before publishing terminal status. Pull request #3106
- Preserve concurrent xlsx.update_rows updates. Pull request #3097
- Pass params to subprocesses on stdin so large params can start. Pull request #3113
- Preserve jq errors before decoding failed step outputs. Pull request #3089
- Improve the DAG detail page for large workflows: fit the graph box, show the whole graph, and reach the YAML sooner. Pull request #3083
- Recognize mixed-case YAML extensions in DAG discovery and on CLI start. Pull request #3080
This week: recordings keep the element each action lands on, so replays work on a moved window with no model. Plus v2.19.0 with workbook column profiling, hidden sheet and row reporting, protected workbooks over CLI, and concurrent xlsx updates no longer lost.
This week's work moved desktop automation from pixels to elements. A recording now keeps the element each action landed on beside its pixels, and a replay acts on that element wherever it is now, so a moved window, another display or a screen showing other data replays without a model. Model-driven actions also run against the window the model saw and click through UI Automation. Alongside that, v2.19.0 shipped workbook column profiling in inspect, hidden sheet and row reporting, opening protected workbooks from the CLI and the workbook target, and a sandboxed js.run. Fixes this week include local runs no longer publishing succeeded before their outputs are saved, concurrent xlsx.update_rows preserving all updates, and the launcher passing params on stdin so large params no longer fail to
Week of September 28, 2026
What shipped
- V2.18.2 released with log page-size selector, --params-stdin for reading parameters, and optional signal propagation to DAG processes. Release
- License status now displays in the sidebar footer with plan name and expiry information on hover. Pull request #3013
- Added dagu prune-artifacts command to reclaim disk space by removing artifact directories for deleted or expired runs. Pull request #2900
- Built-in xlsx actions read and write.xlsx workbooks headless across macOS, Windows, and Linux with no spreadsheet application required. Pull request #2979
- Webhook profile tokens now let multiple callers share a DAG while restricting each to their own runtime profile. Pull request #2964
- Gmail OAuth accounts now use the Gmail API instead of IMAP/SMTP for broader compatibility. Pull request #2984
- Unix supervisors can now forward SIGINT and SIGTERM to running DAG processes for graceful shutdown. Pull request #2885
- Chat.completion steps can now constrain their output to a schema using the step-level
output_schemafield. Pull request #2995 - Log viewer now supports custom page sizes from 1 to 10,000 lines and direct page jumps. Pull request #2882
- Conformance test suite for spec 077 xlsx actions now covers 75 previously untested statements. Pull request #2989
Why it matters
This week shipped spreadsheet support across platforms, artifact cleanup to save disk space, and webhook tokens for multi-tenant deployments. Signal propagation enables graceful shutdown of long-running DAGs, while the conformance test expansion ensures xlsx behavior stays correct as the feature matures.
Changelog entry
- V2.18.2 released Release
- Log page-size selector and direct page jumps (1–10,000 lines) Pull request #2882
- --params-stdin flag for dagu start and dagu enqueue Pull request #2884
- Optional signal propagation to running DAG processes Pull request #2885
- Dagu prune-artifacts command to reclaim orphaned artifact directories Pull request #2900
- Built-in xlsx actions and dagu xlsx commands Pull request #2979
- Webhook profile tokens for multi-tenant deployments Pull request #2964
- Gmail API support for OAuth-signed Google accounts Pull request #2984
- Schema-constrained output for chat.completion steps Pull request #2995
- License status display in sidebar footer Pull request #3013
- Atomic writes for state and generated files Pull request #2906
- Comprehensive conformance test coverage for xlsx spec Pull request #2989
V2.18.2: log pagination, prune-artifacts, xlsx on all platforms, webhook profile tokens, Gmail API support, graceful DAG shutdown, and 75 new conformance tests.
V2.18.2 ships spreadsheet support for all platforms, artifact cleanup, multi-tenant webhook tokens, graceful DAG shutdown, and comprehensive xlsx conformance tests. Cleanup reclaims disk space, Gmail API expands compatibility, and log pagination handles large run histories. Signal propagation lets supervisors shut down long-running processes cleanly.
Week of September 21, 2026
What shipped
- Container steps now support
env_fileto load environment variables from files, with ${VAR} path references evaluated and relative paths searched in the working directory first. Pull request #2881 - Desktop automation steps computer.run and computer.extract let DAGs drive mouse and keyboard on macOS and Windows worker desktops for RPA-style flows against legacy apps. Pull request #2865
- Dagu start --only runs selected steps of a DAG as a normal recorded run, with all other steps marked skipped, and accepts --outputs-from to reuse upstream outputs from a prior run. Pull request #2855
- Mailbox actions mail.search, mail.organize, and mail.send let DAGs read, organize, and reply to emails for email-driven automation workflows. Pull request #2867
- Browser automation actions browser.extract and browser.run drive Chrome in natural language, extract structured data, check page state, and pause for human interaction like MFA. Pull request #2843
- Parallel sub-DAG steps now publish a JSON array of each child run's outputs on the step outputs channel, so ${
fan_out.outputs} works for downstream steps without side-effect files. Pull request #2787 - Condition checks now propagate workflow abort and timeout behavior instead of collapsing every failure into a single condition-not-met status. Pull request #2878
- Dagu start --output lets callers set skipped steps' outputs directly, so fresh values like API tokens can be fed to selected steps without a prior recorded run. Pull request #2859
- Cron descriptors like @daily, @weekly, @monthly, and @yearly now work everywhere a cron expression is accepted, canonicalized to 5-field cron. Pull request #2876
- The DAG Runs page DAG Name and Run ID filters now offer autocomplete suggestions via a reusable AutocompleteInput component. Pull request #2877
Why it matters
This week shipped desktop automation, mailbox reading, browser control, and parallel job fan-out with outputs—major features for RPA workflows, email automation, and data-driven DAGs. Bug fixes stabilize Windows execution, condition handling, and multi-attempt artifacts. The release also adds developer experience improvements like the --only flag for step-level testing.
Changelog entry
- Feat: add container
env_filesupport Pull request #2881 - Fix(runtime): propagate condition abort and timeout Pull request #2878
- Fix: make computer steps safe on a shared desktop Pull request #2892
- Feat(ui): autocomplete for DAG name and run ID filters Pull request #2877
- Feat(scheduler): support cron descriptors like @daily Pull request #2876
- Add computer steps for desktop automation Pull request #2865
- Feat: reply to emails, publish
message_id, and accept OAuth scopes Pull request #2871 - Fix: type mail attachments and reject unreadable ones Pull request #2869
- Feat: add mailbox actions Pull request #2867
- Feat: set skipped steps' outputs with dagu start --output Pull request #2859
- Feat: run selected steps with dagu start --only Pull request #2855
- Feat: browser automation actions (browser.extract / browser.run) Pull request #2843
- Feat: publish parallel sub-DAG outputs on the step outputs channel Pull request #2787
V2.17.2+ ships desktop automation (computer.run/extract), email actions (mail.search/organize), browser control (browser.run/extract), and parallel fan-out with outputs. Run selected steps with --only. Stabilized Windows.
Dagu's latest releases introduce major capabilities for enterprise automation: desktop RPA against legacy apps, email-driven workflows with full mailbox control, browser automation in natural language, and parallel job fan-out with structured outputs. Developers can now test individual steps with --only and feed fresh values without prior runs. Windows execution stabilized across the board.
Week of September 14, 2026
What shipped
- Human task steps can now reference safe artifacts from their current DAG run through an optional with.artifacts configuration. Pull request #2824
- Preconditions and router routes support numeric comparisons with a num: prefix for threshold checks like num:>=0.8. Pull request #2816
- Steps gain a stdin: field to pipe file contents directly to command input, replacing manual cat-and-pipe patterns. Pull request #2786
- A new Artifacts page lets users browse artifact files grouped by DAG run with filtering and cross-DAG enumeration. Pull request #2788
- Step logs can be downloaded as a ZIP file containing separate stdout and stderr files for each step. Pull request #2781
- The Executions page now supports saved run views that filter by name, status, run ID, label, and date with sidebar bookmarking. Pull request #2774
- Sidebar bookmarks can be reordered by dragging or Alt+Up/Down keyboard navigation, with order saved per remote node. Pull request #2807
- Every run now paces through the DAG's queue including scheduled and catch-up runs, enforcing
max_concurrencyacross all sources. Pull request #2775 - Sub-DAG steps gain an optional
pass_envfield to hand parent environment values to child runs. Pull request #2783 - The dagu retry --step --bypass-preconditions flag lets steps retry after their preconditions stop matching. Pull request #2785
Why it matters
This week delivers artifact management improvements with a new Artifacts page and ZIP downloads, adds numeric condition comparisons for more flexible workflows, and fixes queue enforcement so scheduled runs respect concurrency limits. The changes reduce boilerplate (stdin piping, pass_env), improve the UI with saved views and reorderable bookmarks, and make run history clearer with better artifact indexing.
Changelog entry
- Human task steps can reference safe artifacts from their current root DAG run via optional with.artifacts paths Pull request #2824
- Preconditions and router routes support numeric comparisons with num: prefix (e.g., num:>=0.8) Pull request #2816
- Step-level stdin: field pipes file contents to command input, replacing manual cat-and-pipe patterns Pull request #2786
- Runtime waits for durable status persistence before continuing past a node, fixing race conditions with concurrent dependents Pull request #2809
- Sub-DAG steps (call, action: dag.run, dag.parallel) gain optional
pass_envfield for additive environment inheritance Pull request #2783 - History navigation (↑/↓) now works in Executions Grouped and Overview Timeline views Pull request #2794
- Step logs can be downloaded as ZIP with separate stdout and stderr files per step Pull request #2781
- Dagu retry --step --bypass-preconditions allows retrying after precondition window closes Pull request #2785
- Jq executor supports named arguments via with.args for using workflow values as $name variables Pull request #2782
- Artifact keyboard navigation improved: j/k and arrow keys navigate visible tree including collapsed runs Pull request #2808
- Sidebar bookmarks support drag reordering and Alt+Up/Down keyboard navigation, order saved per remote node Pull request #2807
- Artifacts page supports saved views (bookmarks) with filters and per-workspace default Pull request #2793
- New Artifacts page lists runs with files, enabling cross-DAG artifact enumeration and browsing Pull request #2788
- DAG-run artifacts now partitioned by date and indexed for cross-DAG enumeration Pull request #2776
- Non-positive
max_active_stepsvalues treated as unlimited instead of preventing graph step startup Pull request #2777 - Executions page supports saved run views filtering by name, status, run ID, label, and date Pull request #2774
- All runs now pace through DAG queue (scheduled, catch-up, retry, explicit), enforcing
max_concurrencyconsistently Pull request #2775 - Inherited SMTP omitted from run snapshots; global/workspace SMTP reloaded when executing saved runs Pull request #2773
- Scheduler applies inherited base.yaml defaults (schedules, catchup, overlap, queues) to metadata and execution loads Pull request #2770
V2.16.6 and later: numeric conditions, stdin piping, Artifacts page, ZIP log downloads, saved run views, queue pacing, and pass_env for sub-DAGs.
This week's updates to Dagu add numeric conditions for thresholds (num:>=0.8), stdin piping to replace cat boilerplate, a new Artifacts page for cross-DAG file browsing, and ZIP downloads for step logs. The UI gains saved run views with sidebar bookmarking, reorderable shortcuts, and improved artifact navigation. Runtime fixes include queue pacing for all run sources and pass_env support in sub-DAG calls.