Added
- feat(workbook): profile every column of a table in inspect (#3029) @yohamta0
- feat(xlsx): report hidden sheets and rows, read visible rows only (#3030) @yohamta0
- feat(xlsx): open a protected workbook from the CLI and the workbook target (#3058) @kriyanshii
- feat: add js.run sandboxed JavaScript action (#3061) @yohamta0
- feat: dagu browser session to work a site and export a browser.run step (#3071) @yohamta0
- feat(ui): improve DAG detail page for large workflows (#3083) @yohamta0
- feat: pin workflows to the top of the Workflows page (#3087) @yohamta0
- feat(computer): choose how much AI decides per step and per act (#3088) @yohamta0
- feat(computer): read a window's elements through UI Automation (#3096) @yohamta0
- feat(computer): exact expect and when checks on the window's elements (#3100) @yohamta0
- feat(computer): record the element each action lands on and replay on it (#3102) @yohamta0
- feat(computer): match a replayed window by its application, not its title (#3112) @yohamta0
- feat(computer): replay through an element's own pattern under input: direct (#3114) @yohamta0
- feat(computer): run model actions on the window the model saw, and click elements through UI Automation (#3115) @yohamta0
- feat(computer): bind an extract's fields to elements and read them without a model (#3117) @yohamta0
- feat(computer): bind an extract's table and boolean fields, read tables by header (#3118) @yohamta0
- feat(computer): pin an act's steps and an extract's fields to run across devices (#3120) @yohamta0
Changed
- test(dag): report last error in base watch retries (#2929) @LouisDeconinck
- Harden schema URL fetch and CORS origin checks (#2930) @LouisDeconinck
- Show license status and paid feature benefits (#3013) @yohamta0
- Drill into foreach items and their body step logs (#3063) @yohamta0
- docs: state the js.run language level (#3067) @yohamta0
- docs: steer agents to js.run for data transforms (#3077) @yohamta0
- docs(xlsx): drop shell history claim for DAGU_XLSX_PASSWORD (#3078) @yohamta0
- Wait for the page to settle after a browser action (#3079) @yohamta0
- Connect self-hosted servers to Dagu Console (#3084) @yohamta0
- Report DAG-run events to Dagu Console (#3093) @yohamta0
- Verify a done report, notice loops, ask for a report at the cap, and let one task be recorded again (#3095) @yohamta0
- Batch predictable actions in generic mode and wait 5s for a person (#3098) @yohamta0
- Report to Dagu Console only when an admin chooses (#3101) @yohamta0
- Never operate the step's own application, and mind the focus after a person's input (#3109) @yohamta0
- Click elements by id, raise the recorded window on replay, and skip the person-wait in remote sessions (#3110) @yohamta0
- Report finished and in-progress runs to Dagu Console (protocol 2) (#3121) @yohamta0
Fixed
- fix(frontend): stream remote-node log downloads (#2875) @LouisDeconinck
- fix: normalize file extensions before MIME type lookup (#2909) @LouisDeconinck
- fix(docker): handle JSON whitespace, index.docker.io, and IPv6 in registry auth (#2910) @LouisDeconinck
- fix: use shared large-line scanner for text search, logs, and LLM streams (#2912) @LouisDeconinck
- fix(fileutil): check Windows device names before the first dot (#2913) @LouisDeconinck
- fix(spec): bound downloaded JSON schema size (#2918) @LouisDeconinck
- fix(cli): validate context URLs and detect both path separators (#2919) @LouisDeconinck
- fix(api): reject invalid resource-history duration (#2920) @LouisDeconinck
- fix(cli): cap remote error response body size (#2921) @LouisDeconinck
- fix(fileutil): expand only own-home tilde and surface resolution errors (#2923) @LouisDeconinck
- fix: recognize .yaml/.yml case-insensitively across helpers (#2925) @LouisDeconinck
- fix: truncate user-visible text on rune boundaries (#2926) @LouisDeconinck
- fix(stringutil): capitalize camel-case helpers on rune boundaries (#2928) @LouisDeconinck
- fix(xlsx): defer an update_rows set that holds a reference (#3015) @ReguiguiMohamed
- fix(logs): keep UTF-8 log lines under a non-UTF-8 charset (#3018) @yohamta0
- fix(runtime): decode a non-UTF-8 stderr tail with the console code page (#3019) @yohamta0
- fix(runtime): write PowerShell scripts with a UTF-8 BOM (#3022) @yohamta0
- fix(xlsx): report a workbook Excel holds as locked when the atomic save's rename is refused (#3031) @yohamta0
- fix: give each foreach item its own body log directory (#3032) @mvanhorn
- fix(worker): stop gracefully on SIGINT and SIGTERM (#3035) @theluckystrike
- fix(value): resolve foreach item fields that start with an underscore (#3037) @yohamta0
- Infer step dependencies from output references (#3052) @yohamta0
- fix: remove foreach body logs when a DAG run is deleted (#3053) @yohamta0
- perf: cut idle CPU from coordinator polling and standby lease retry (#3055) @yohamta0
- fix(template): parse inline templates at validation time (#3057) @yohamta0
- fix(xlsx): format whole-number columns without decimals (#3059) @kriyanshii
- fix(api): default omitted step log streams to stdout (#3076) @yoyooyooo
- fix(cmd): recognize mixed-case YAML extensions (#3080) @Ehsan-hash
- fix: retry empty chat completion answers (#3082) @Ehsan-hash
- xlsx: create missing parent directories for workbook writes (#3085) @Ehsan-hash
- fix: preserve jq errors before decoding failed step outputs (#3089) @pvarshh
- Report server health to Dagu Console (#3090) @yohamta0
- Keep waiting for a person out of a computer operation's time limit (#3092) @yohamta0
- fix(workbook): preserve concurrent row updates (#3097) @Ehsan-hash
- fix(ui): stop dereferenceSchema recursing on a self-referencing $ref (#3103) @theluckystrike
- fix(xlsx): report the name of an unresolved rows reference (#3104) @theluckystrike
- fix(test): use the platform-aware completion timeout in TestRejectedStatus (#3105) @theluckystrike
- fix: save local run outputs before publishing terminal status (#3106) @Ehsan-hash
- Let administrators choose what a server reports (#3107) @yohamta0
- fix(launcher): pass params to subprocesses on stdin (#3113) @yohamta0
- Show license and Dagu Console status clearly (#3116) @yohamta0
Contributors
Thanks to our contributors for this release:
| Contribution | Contributor |
|---|---|
| fix(cmd): recognize mixed-case YAML extensions (#3080), fix: retry empty chat completion answers (#3082), xlsx: create missing parent directories for workbook writes (#3085), fix(workbook): preserve concurrent row updates (#3097), fix: save local run outputs before publishing terminal status (#3106) | @Ehsan-hash |
| fix(frontend): stream remote-node log downloads (#2875), fix: normalize file extensions before MIME type lookup (#2909), fix(docker): handle JSON whitespace, index.docker.io, and IPv6 in registry auth (#2910), fix: use shared large-line scanner for text search, logs, and LLM streams (#2912), fix(fileutil): check Windows device names before the first dot (#2913), fix(spec): bound downloaded JSON schema size (#2918), fix(cli): validate context URLs and detect both path separators (#2919), fix(api): reject invalid resource-history duration (#2920), fix(cli): cap remote error response body size (#2921), fix(fileutil): expand only own-home tilde and surface resolution errors (#2923), fix: recognize .yaml/.yml case-insensitively across helpers (#2925), fix: truncate user-visible text on rune boundaries (#2926), fix(stringutil): capitalize camel-case helpers on rune boundaries (#2928), test(dag): report last error in base watch retries (#2929), Harden schema URL fetch and CORS origin checks (#2930) | @LouisDeconinck |
| fix(xlsx): defer an update_rows set that holds a reference (#3015) | @ReguiguiMohamed |
| feat: Add Visible License / Premium Tier Indicator in Web UI (#3012) | @arky (report) |
| feat(xlsx): open a protected workbook from the CLI and the workbook target (#3058), fix(xlsx): format whole-number columns without decimals (#3059) | @kriyanshii |
| fix: give each foreach item its own body log directory (#3032) | @mvanhorn |
| Coordinator idle Poll churn: hard-coded 1s max wait causes ~1 wake/s per worker (#3034) | @ngoc-minh-do (report) |
| fix: preserve jq errors before decoding failed step outputs (#3089) | @pvarshh |
| fix(worker): stop gracefully on SIGINT and SIGTERM (#3035), fix(ui): stop dereferenceSchema recursing on a self-referencing $ref (#3103), fix(xlsx): report the name of an unresolved rows reference (#3104), fix(test): use the platform-aware completion timeout in TestRejectedStatus (#3105) | @theluckystrike |
| fix(api): default omitted step log streams to stdout (#3076) | @yoyooyooo |
| Step-log API panics when the optional stream query is omitted (#3073) | @yoyooyooo (report) |
New Contributors
- @theluckystrike made their first contribution in #3035
- @Ehsan-hash made their first contribution in #3080
- @pvarshh made their first contribution in #3089
Full Changelog: v2.18.2...v2.19.0