From 45ac4af8978c4d9570031e70ecd4161e0914e6ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 21:11:20 +0000 Subject: [PATCH] Version Packages --- .changeset/flows-run-deterministic-exit.md | 5 ----- .changeset/layered-runtime-deps-resolution.md | 5 ----- .changeset/resolve-playwright-subpath-import.md | 5 ----- .changeset/ts-js-module-resolution-fallback.md | 5 ----- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 6 files changed, 13 insertions(+), 21 deletions(-) delete mode 100644 .changeset/flows-run-deterministic-exit.md delete mode 100644 .changeset/layered-runtime-deps-resolution.md delete mode 100644 .changeset/resolve-playwright-subpath-import.md delete mode 100644 .changeset/ts-js-module-resolution-fallback.md diff --git a/.changeset/flows-run-deterministic-exit.md b/.changeset/flows-run-deterministic-exit.md deleted file mode 100644 index 6daae7fe6..000000000 --- a/.changeset/flows-run-deterministic-exit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@qawolf/cli": patch ---- - -Exit `flows run` deterministically once the run completes. The flow runtime can launch browser processes (e.g. a channel-launched Google Chrome) whose CDP sockets and timers keep Node's event loop alive after teardown, so the CLI previously printed its results and then hung indefinitely. The process now flushes stdout/stderr and exits with the run's exit code (1 on flow failure, 0 on pass) as soon as the command resolves, with a backstop in case a stream stalls. diff --git a/.changeset/layered-runtime-deps-resolution.md b/.changeset/layered-runtime-deps-resolution.md deleted file mode 100644 index 556cc5db4..000000000 --- a/.changeset/layered-runtime-deps-resolution.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@qawolf/cli": minor ---- - -Resolve flow runtime dependencies through a layered, project-isolated `node_modules` so flows run correctly in monorepos, single-package projects, and empty directories across both the Node and compiled-binary channels. The CLI-owned executor is always pinned and never pollutes or is shadowed by the surrounding project, while the flow's own declared dependencies still resolve. Adds `qawolf install clear` to wipe the managed runtime cache. diff --git a/.changeset/resolve-playwright-subpath-import.md b/.changeset/resolve-playwright-subpath-import.md deleted file mode 100644 index 02bb79553..000000000 --- a/.changeset/resolve-playwright-subpath-import.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@qawolf/cli": patch ---- - -Resolve the `#playwright` subpath import when running flows in the isolated managed runtime. QA Wolf flow bundles import Playwright through a Node.js `imports` alias (`#playwright`), but the pulled bundle's `package.json` omits the `imports` field, so the staged `exec/package.json` could not resolve it and flows failed with `ERR_PACKAGE_IMPORT_NOT_DEFINED`. The CLI now merges the `#playwright` alias into the staged `exec/package.json`, pointing it at the pinned Playwright resolved through the inner-hop `node_modules` symlink — fixing both the Node import path and the compiled-binary bundle path. diff --git a/.changeset/ts-js-module-resolution-fallback.md b/.changeset/ts-js-module-resolution-fallback.md deleted file mode 100644 index 2f50cc60f..000000000 --- a/.changeset/ts-js-module-resolution-fallback.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@qawolf/cli": patch ---- - -Resolve flow imports whose specifier uses a `.ts` extension but ships as `.js` (and vice versa). Platform-generated bundles often import sibling utilities as `.ts` while the file on disk is `.js`; native Node ESM resolves extensions literally and throws `ERR_MODULE_NOT_FOUND`. A synchronous `module.registerHooks` resolve hook now transparently retries the sibling source extension (`.ts`↔`.js`, `.mts`↔`.mjs`, `.cts`↔`.cjs`) only on resolution failure — literal matches always win and nothing is rewritten on disk. Raises the Node engine floor to `>=22.15.0`, the release that introduced synchronous hooks. diff --git a/CHANGELOG.md b/CHANGELOG.md index 81a5c5a7e..9ef0e9d52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # @qawolf/cli +## 1.1.0 + +### Minor Changes + +- 38f4903: Resolve flow runtime dependencies through a layered, project-isolated `node_modules` so flows run correctly in monorepos, single-package projects, and empty directories across both the Node and compiled-binary channels. The CLI-owned executor is always pinned and never pollutes or is shadowed by the surrounding project, while the flow's own declared dependencies still resolve. Adds `qawolf install clear` to wipe the managed runtime cache. + +### Patch Changes + +- 2d98dc9: Exit `flows run` deterministically once the run completes. The flow runtime can launch browser processes (e.g. a channel-launched Google Chrome) whose CDP sockets and timers keep Node's event loop alive after teardown, so the CLI previously printed its results and then hung indefinitely. The process now flushes stdout/stderr and exits with the run's exit code (1 on flow failure, 0 on pass) as soon as the command resolves, with a backstop in case a stream stalls. +- 5a81d70: Resolve the `#playwright` subpath import when running flows in the isolated managed runtime. QA Wolf flow bundles import Playwright through a Node.js `imports` alias (`#playwright`), but the pulled bundle's `package.json` omits the `imports` field, so the staged `exec/package.json` could not resolve it and flows failed with `ERR_PACKAGE_IMPORT_NOT_DEFINED`. The CLI now merges the `#playwright` alias into the staged `exec/package.json`, pointing it at the pinned Playwright resolved through the inner-hop `node_modules` symlink — fixing both the Node import path and the compiled-binary bundle path. +- 621f5d4: Resolve flow imports whose specifier uses a `.ts` extension but ships as `.js` (and vice versa). Platform-generated bundles often import sibling utilities as `.ts` while the file on disk is `.js`; native Node ESM resolves extensions literally and throws `ERR_MODULE_NOT_FOUND`. A synchronous `module.registerHooks` resolve hook now transparently retries the sibling source extension (`.ts`↔`.js`, `.mts`↔`.mjs`, `.cts`↔`.cjs`) only on resolution failure — literal matches always win and nothing is rewritten on disk. Raises the Node engine floor to `>=22.15.0`, the release that introduced synchronous hooks. + ## 1.0.1 ### Patch Changes diff --git a/package.json b/package.json index 9f12c918b..c1737f374 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@qawolf/cli", - "version": "1.0.1", + "version": "1.1.0", "description": "Run and manage QA Wolf flows from the terminal, CI, or an AI agent", "keywords": [ "automation",