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 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.