v0.13.0
Run-scoped shell task cancellation
ShellTask accepts an optional AbortSignal so a single programmatic invocation can be cancelled.
const controller = new AbortController();
const result = await new ShellTask({}, {
command: 'npm run build',
signal: controller.signal,
}).run();
controller.abort();- POSIX: signal-bearing invocations run in a dedicated process group. Flowkit sends group
SIGTERM, waits 250ms for cooperative cleanup, then escalates to groupSIGKILL. - Windows:
taskkill /T /Fon the shell PID, with a three-second bounded deadline before force termination and handle release. - A pre-aborted signal returns a failed result without spawning anything.
- Termination is best-effort. Descendants that escape the managed group or tree are not guaranteed to die.
Because signal-bearing invocations sit in their own process group on POSIX, terminal Ctrl+C no longer reaches them. Cancel through the AbortSignal.
Behavior change — read before upgrading
data.output no longer duplicates a trailing partial line. Previously, output not ending in a newline was appended to the capture buffer twice, so a command emitting hello with no trailing newline returned hellohello. It now returns hello.
This affects any command whose stdout lacks a trailing newline, which includes most printf, --porcelain-style output, and anything read for a single value. If you have code compensating for the duplication, remove it.
resolveReferences now passes objects whose prototype is not Object.prototype through by identity rather than shallow-rebuilding them, so runtime values such as AbortSignal, Date, and class instances survive option interpolation. ${...} references nested inside a class instance are no longer resolved.
Note on this release
The GitHub Actions publish workflow did not run for this version. A major Actions outage on 2026-08-06 dropped the push events for the merge and release commits, so this tag and release were created manually and the npm package was published outside the usual OIDC trusted-publishing flow. This release therefore lacks the provenance attestation present on 0.12.0 and earlier.
Verified before merge on Windows 11 / Node 22 (245 passed) and Linux x86_64 / Node 22 (239 passed, 7 Windows-only skipped).
What's Changed
- feat: add run-scoped shell task cancellation by @sdbingham in #5
Full Changelog: v0.12.0...v0.13.0