From 2c929421d46e44aeaea5f7c14bea4202a6a09f52 Mon Sep 17 00:00:00 2001 From: Relayflow Date: Sun, 4 Oct 2026 07:02:36 +0000 Subject: [PATCH 1/4] fix(sdk): declare typescript and undici as runtime dependencies Session-Id: 570354ad-8fe1-4ec2-b442-d7bea7551ff7 --- packages/sdk/package-lock.json | 4 ++-- packages/sdk/package.json | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/sdk/package-lock.json b/packages/sdk/package-lock.json index cbdf3606..af504a01 100644 --- a/packages/sdk/package-lock.json +++ b/packages/sdk/package-lock.json @@ -20,6 +20,8 @@ "ajv-draft-04": "^1.0.0", "js-yaml": "^5.4.1", "re2js": "^2.8.6", + "typescript": "^5.6.0", + "undici": "^7.29.1", "yaml": "^2.5.1" }, "bin": { @@ -28,7 +30,6 @@ "devDependencies": { "@agent-relay/cli-surface": "^12.2.4", "@types/node": "^22.7.0", - "typescript": "^5.6.0", "vitest": "^2.1.0" }, "peerDependencies": { @@ -3172,7 +3173,6 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 24d7a13e..21811ec5 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -57,12 +57,13 @@ "ajv-draft-04": "^1.0.0", "js-yaml": "^5.4.1", "re2js": "^2.8.6", + "typescript": "^5.6.0", + "undici": "^7.29.1", "yaml": "^2.5.1" }, "devDependencies": { "@agent-relay/cli-surface": "^12.2.4", "@types/node": "^22.7.0", - "typescript": "^5.6.0", "vitest": "^2.1.0" }, "repository": { From b0f146d2ed9443c6a3ab4b1bf4a6dfb9298e5f2a Mon Sep 17 00:00:00 2001 From: Relayflow Date: Sun, 4 Oct 2026 07:14:49 +0000 Subject: [PATCH 2/4] test(sdk): gate undeclared runtime imports and the packed CLI Session-Id: 570354ad-8fe1-4ec2-b442-d7bea7551ff7 --- evidence/cli-runtime-dependencies/README.md | 24 + .../cli-runtime-dependencies/imports-fail.txt | 39 + .../cli-runtime-dependencies/imports-pass.txt | 14 + .../cli-runtime-dependencies/lock-check.txt | 5 + .../cli-runtime-dependencies/lock-dry-run.txt | 9 + .../lock-generate.txt | 18 + .../mutation-lock.txt | 19 + .../mutation-restore.txt | 4 + .../cli-runtime-dependencies/mutation-run.txt | 235 + evidence/cli-runtime-dependencies/mutation.py | 38 + .../cli-runtime-dependencies/package-fail.txt | 117 + .../cli-runtime-dependencies/package-pass.txt | 32 + evidence/cli-runtime-dependencies/publish.txt | 18 + .../cli-runtime-dependencies/sdk-build.txt | 7 + evidence/cli-runtime-dependencies/suite.txt | 4667 +++++++++++++++++ .../surface-build.txt | 7 + .../typecheck-tests.txt | 7 + .../cli-runtime-dependencies/typecheck.txt | 7 + packages/sdk/tests/cli-package-gate.test.ts | 13 + .../sdk/tests/runtime-dependencies.test.ts | 55 + packages/sdk/tsconfig.tests.json | 2 + scripts/cli-package-gate.mjs | 98 + summary.md | 42 + 23 files changed, 5477 insertions(+) create mode 100644 evidence/cli-runtime-dependencies/README.md create mode 100644 evidence/cli-runtime-dependencies/imports-fail.txt create mode 100644 evidence/cli-runtime-dependencies/imports-pass.txt create mode 100644 evidence/cli-runtime-dependencies/lock-check.txt create mode 100644 evidence/cli-runtime-dependencies/lock-dry-run.txt create mode 100644 evidence/cli-runtime-dependencies/lock-generate.txt create mode 100644 evidence/cli-runtime-dependencies/mutation-lock.txt create mode 100644 evidence/cli-runtime-dependencies/mutation-restore.txt create mode 100644 evidence/cli-runtime-dependencies/mutation-run.txt create mode 100644 evidence/cli-runtime-dependencies/mutation.py create mode 100644 evidence/cli-runtime-dependencies/package-fail.txt create mode 100644 evidence/cli-runtime-dependencies/package-pass.txt create mode 100644 evidence/cli-runtime-dependencies/publish.txt create mode 100644 evidence/cli-runtime-dependencies/sdk-build.txt create mode 100644 evidence/cli-runtime-dependencies/suite.txt create mode 100644 evidence/cli-runtime-dependencies/surface-build.txt create mode 100644 evidence/cli-runtime-dependencies/typecheck-tests.txt create mode 100644 evidence/cli-runtime-dependencies/typecheck.txt create mode 100644 packages/sdk/tests/cli-package-gate.test.ts create mode 100644 packages/sdk/tests/runtime-dependencies.test.ts create mode 100644 scripts/cli-package-gate.mjs create mode 100644 summary.md diff --git a/evidence/cli-runtime-dependencies/README.md b/evidence/cli-runtime-dependencies/README.md new file mode 100644 index 00000000..da77f27c --- /dev/null +++ b/evidence/cli-runtime-dependencies/README.md @@ -0,0 +1,24 @@ +Run commands from the repository root unless a transcript explicitly changes directory. Every linked text file contains the command, its captured output, and exit status. Tests ran with Node v25.6.0 / npm 11.8.0. + +The mutation driver saves and restores manifest/lock bytes in a finally block. It leaves undici declared throughout. Reproduce after building both packages: + +```sh +python3 evidence/cli-runtime-dependencies/mutation.py +``` + +- [imports-fail.txt](imports-fail.txt) +- [imports-pass.txt](imports-pass.txt) +- [lock-check.txt](lock-check.txt) +- [lock-dry-run.txt](lock-dry-run.txt) +- [lock-generate.txt](lock-generate.txt) +- [mutation-lock.txt](mutation-lock.txt) +- [mutation-restore.txt](mutation-restore.txt) +- [mutation-run.txt](mutation-run.txt) +- [package-fail.txt](package-fail.txt) +- [package-pass.txt](package-pass.txt) +- [publish.txt](publish.txt) +- [sdk-build.txt](sdk-build.txt) +- [suite.txt](suite.txt) +- [surface-build.txt](surface-build.txt) +- [typecheck-tests.txt](typecheck-tests.txt) +- [typecheck.txt](typecheck.txt) diff --git a/evidence/cli-runtime-dependencies/imports-fail.txt b/evidence/cli-runtime-dependencies/imports-fail.txt new file mode 100644 index 00000000..c1b9fe78 --- /dev/null +++ b/evidence/cli-runtime-dependencies/imports-fail.txt @@ -0,0 +1,39 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk +$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts + + RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk + + ❯ tests/runtime-dependencies.test.ts (1 test | 1 failed) 213ms + × declares every literal runtime import in the built SDK 212ms + → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/runtime-dependencies.test.ts > declares every literal runtime import in the built SDK +AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] + +- Expected ++ Received + +- Array [] ++ Array [ ++ "typescript", ++ ] + + ❯ tests/runtime-dependencies.test.ts:54:66 + 52| scan(join(sdk, 'dist')); + 53| expect(files, 'Build the SDK before checking runtime dependencies').… + 54| expect([...missing].sort(), 'Undeclared runtime dependencies').toEqu… + | ^ + 55| }); + 56| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + Test Files 1 failed (1) + Tests 1 failed (1) + Start at 07:13:08 + Duration 416ms (transform 37ms, setup 22ms, collect 21ms, tests 213ms, environment 0ms, prepare 42ms) + + +exit=1 diff --git a/evidence/cli-runtime-dependencies/imports-pass.txt b/evidence/cli-runtime-dependencies/imports-pass.txt new file mode 100644 index 00000000..8326700c --- /dev/null +++ b/evidence/cli-runtime-dependencies/imports-pass.txt @@ -0,0 +1,14 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk +$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts + + RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk + + ✓ tests/runtime-dependencies.test.ts (1 test) 192ms + + Test Files 1 passed (1) + Tests 1 passed (1) + Start at 07:13:15 + Duration 391ms (transform 28ms, setup 17ms, collect 13ms, tests 192ms, environment 0ms, prepare 43ms) + + +exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-check.txt b/evidence/cli-runtime-dependencies/lock-check.txt new file mode 100644 index 00000000..c32e9d94 --- /dev/null +++ b/evidence/cli-runtime-dependencies/lock-check.txt @@ -0,0 +1,5 @@ +$ node -e "const assert=require('node:assert/strict'); const l=require('./packages/sdk/package-lock.json'); const entries=Object.keys(l.packages).filter(k=>/undici$/.test(k)); assert.equal(entries.length,1); assert.notEqual(l.packages['node_modules/typescript'].dev,true); console.log(entries); console.log('typescript dev:',l.packages['node_modules/typescript'].dev);" +[ 'node_modules/undici' ] +typescript dev: undefined + +exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-dry-run.txt b/evidence/cli-runtime-dependencies/lock-dry-run.txt new file mode 100644 index 00000000..7b147b01 --- /dev/null +++ b/evidence/cli-runtime-dependencies/lock-dry-run.txt @@ -0,0 +1,9 @@ +$ npm ci --prefix packages/sdk --dry-run --ignore-scripts +change @relayflows/surface 2.0.39 => 2.0.39 + +changed 1 package in 356ms + +65 packages are looking for funding + run `npm fund` for details + +exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-generate.txt b/evidence/cli-runtime-dependencies/lock-generate.txt new file mode 100644 index 00000000..d6c9a45c --- /dev/null +++ b/evidence/cli-runtime-dependencies/lock-generate.txt @@ -0,0 +1,18 @@ +$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts + +up to date, audited 196 packages in 597ms + +65 packages are looking for funding + run `npm fund` for details + +9 vulnerabilities (6 moderate, 2 high, 1 critical) + +To address issues that do not require attention, run: + npm audit fix + +To address all issues (including breaking changes), run: + npm audit fix --force + +Run `npm audit` for details. + +exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-lock.txt b/evidence/cli-runtime-dependencies/mutation-lock.txt new file mode 100644 index 00000000..0f0b5343 --- /dev/null +++ b/evidence/cli-runtime-dependencies/mutation-lock.txt @@ -0,0 +1,19 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts + +up to date, audited 196 packages in 777ms + +65 packages are looking for funding + run `npm fund` for details + +9 vulnerabilities (6 moderate, 2 high, 1 critical) + +To address issues that do not require attention, run: + npm audit fix + +To address all issues (including breaking changes), run: + npm audit fix --force + +Run `npm audit` for details. + +exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-restore.txt b/evidence/cli-runtime-dependencies/mutation-restore.txt new file mode 100644 index 00000000..de58a35b --- /dev/null +++ b/evidence/cli-runtime-dependencies/mutation-restore.txt @@ -0,0 +1,4 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ git diff --exit-code -- packages/sdk/package.json packages/sdk/package-lock.json + +exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-run.txt b/evidence/cli-runtime-dependencies/mutation-run.txt new file mode 100644 index 00000000..61ec85d6 --- /dev/null +++ b/evidence/cli-runtime-dependencies/mutation-run.txt @@ -0,0 +1,235 @@ +$ python3 evidence/cli-runtime-dependencies/mutation.py +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk +$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts + + RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk + + ❯ tests/runtime-dependencies.test.ts (1 test | 1 failed) 213ms + × declares every literal runtime import in the built SDK 212ms + → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/runtime-dependencies.test.ts > declares every literal runtime import in the built SDK +AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] + +- Expected ++ Received + +- Array [] ++ Array [ ++ "typescript", ++ ] + + ❯ tests/runtime-dependencies.test.ts:54:66 + 52| scan(join(sdk, 'dist')); + 53| expect(files, 'Build the SDK before checking runtime dependencies').… + 54| expect([...missing].sort(), 'Undeclared runtime dependencies').toEqu… + | ^ + 55| }); + 56| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + Test Files 1 failed (1) + Tests 1 failed (1) + Start at 07:13:08 + Duration 416ms (transform 37ms, setup 22ms, collect 21ms, tests 213ms, environment 0ms, prepare 42ms) + + +exit=1 + +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts + +up to date, audited 196 packages in 777ms + +65 packages are looking for funding + run `npm fund` for details + +9 vulnerabilities (6 moderate, 2 high, 1 critical) + +To address issues that do not require attention, run: + npm audit fix + +To address all issues (including breaking changes), run: + npm audit fix --force + +Run `npm audit` for details. + +exit=0 + +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ node scripts/cli-package-gate.mjs +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK relayflows@2.0.39: package/bin/flows.js +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-surface-2.0.39.tgz + +added 149 packages in 2s +$ /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +node:internal/modules/package_json_reader:301 + throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); + ^ + +Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js + at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) + at packageResolve (node:internal/modules/esm/resolve:768:81) + at moduleResolve (node:internal/modules/esm/resolve:859:18) + at defaultResolve (node:internal/modules/esm/resolve:991:11) + at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) + at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) + at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) + at #resolve (node:internal/modules/esm/loader:695:17) + at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) + at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { + code: 'ERR_MODULE_NOT_FOUND' +} + +Node.js v25.6.0 +node:internal/errors:998 + const err = new Error(message); + ^ + +Error: Command failed: /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +node:internal/modules/package_json_reader:301 + throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); + ^ + +Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js + at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) + at packageResolve (node:internal/modules/esm/resolve:768:81) + at moduleResolve (node:internal/modules/esm/resolve:859:18) + at defaultResolve (node:internal/modules/esm/resolve:991:11) + at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) + at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) + at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) + at #resolve (node:internal/modules/esm/loader:695:17) + at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) + at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { + code: 'ERR_MODULE_NOT_FOUND' +} + +Node.js v25.6.0 + + at genericNodeError (node:internal/errors:998:15) + at wrappedFn (node:internal/errors:543:14) + at checkExecSyncError (node:child_process:925:11) + at execFileSync (node:child_process:961:15) + at run (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:37:20) + at check (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:54:18) + at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:78:3 + at ModuleJob.run (node:internal/modules/esm/module_job:430:25) + at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:655:26) + at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5) { + status: 1, + signal: null, + output: [ + null, + '', + 'node:internal/modules/package_json_reader:301\n' + + ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + + ' ^\n' + + '\n' + + "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + + ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + + ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + + ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + + ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + + ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + + ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + + ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + + ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + + ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + + ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + + " code: 'ERR_MODULE_NOT_FOUND'\n" + + '}\n' + + '\n' + + 'Node.js v25.6.0\n' + ], + pid: 39548, + stdout: '', + stderr: 'node:internal/modules/package_json_reader:301\n' + + ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + + ' ^\n' + + '\n' + + "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + + ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + + ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + + ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + + ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + + ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + + ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + + ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + + ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + + ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + + ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + + " code: 'ERR_MODULE_NOT_FOUND'\n" + + '}\n' + + '\n' + + 'Node.js v25.6.0\n' +} + +Node.js v25.6.0 + +exit=1 + +Restored manifest and lock byte-for-byte. +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ git diff --exit-code -- packages/sdk/package.json packages/sdk/package-lock.json + +exit=0 + +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk +$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts + + RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk + + ✓ tests/runtime-dependencies.test.ts (1 test) 192ms + + Test Files 1 passed (1) + Tests 1 passed (1) + Start at 07:13:15 + Duration 391ms (transform 28ms, setup 17ms, collect 13ms, tests 192ms, environment 0ms, prepare 43ms) + + +exit=0 + +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ node scripts/cli-package-gate.mjs +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK relayflows@2.0.39: package/bin/flows.js +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 150 packages in 2s +$ /tmp/flows-cli-package-T0RrGp/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ npm install -g --prefix /tmp/flows-cli-package-T0RrGp/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 294 packages in 4s +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 140 packages in 2s +$ /tmp/flows-cli-package-T0RrGp/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CLI_PACKAGE_OK: local and global installs + +exit=0 + + +exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation.py b/evidence/cli-runtime-dependencies/mutation.py new file mode 100644 index 00000000..50360e05 --- /dev/null +++ b/evidence/cli-runtime-dependencies/mutation.py @@ -0,0 +1,38 @@ +"""Run from the repository root after building surface and SDK.""" +import json +from pathlib import Path +import shlex +import subprocess + +root = Path.cwd() +evidence = root / 'evidence/cli-runtime-dependencies' +manifest = root / 'packages/sdk/package.json' +lock = root / 'packages/sdk/package-lock.json' +original = {path: path.read_bytes() for path in (manifest, lock)} + +def run(name, command, cwd=root, expected=0): + result = subprocess.run(command, cwd=cwd, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + transcript = f'$ cd {cwd}\n$ {shlex.join(command)}\n{result.stdout}\nexit={result.returncode}\n' + (evidence / name).write_text(transcript) + print(transcript, flush=True) + assert result.returncode == expected, f'{name}: unexpected exit' + return result.stdout + +try: + data = json.loads(manifest.read_text()) + data['devDependencies']['typescript'] = data['dependencies'].pop('typescript') + manifest.write_text(json.dumps(data, indent=2) + '\n') + output = run('imports-fail.txt', ['./node_modules/.bin/vitest', 'run', 'tests/runtime-dependencies.test.ts'], root / 'packages/sdk', 1) + assert 'typescript' in output and 'undici' not in output + run('mutation-lock.txt', ['npm', 'install', '--prefix', 'packages/sdk', '--package-lock-only', '--ignore-scripts']) + output = run('package-fail.txt', ['node', 'scripts/cli-package-gate.mjs'], expected=1) + assert 'ERR_MODULE_NOT_FOUND' in output and "Cannot find package 'typescript'" in output and 'check-activities.js' in output +finally: + for path, contents in original.items(): + path.write_bytes(contents) + assert all(path.read_bytes() == contents for path, contents in original.items()) + print('Restored manifest and lock byte-for-byte.', flush=True) + +run('mutation-restore.txt', ['git', 'diff', '--exit-code', '--', 'packages/sdk/package.json', 'packages/sdk/package-lock.json']) +run('imports-pass.txt', ['./node_modules/.bin/vitest', 'run', 'tests/runtime-dependencies.test.ts'], root / 'packages/sdk') +run('package-pass.txt', ['node', 'scripts/cli-package-gate.mjs']) diff --git a/evidence/cli-runtime-dependencies/package-fail.txt b/evidence/cli-runtime-dependencies/package-fail.txt new file mode 100644 index 00000000..6c8ebec2 --- /dev/null +++ b/evidence/cli-runtime-dependencies/package-fail.txt @@ -0,0 +1,117 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ node scripts/cli-package-gate.mjs +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-ZIvqJq/tarballs +PACK_OK relayflows@2.0.39: package/bin/flows.js +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-surface-2.0.39.tgz + +added 149 packages in 2s +$ /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +node:internal/modules/package_json_reader:301 + throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); + ^ + +Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js + at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) + at packageResolve (node:internal/modules/esm/resolve:768:81) + at moduleResolve (node:internal/modules/esm/resolve:859:18) + at defaultResolve (node:internal/modules/esm/resolve:991:11) + at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) + at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) + at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) + at #resolve (node:internal/modules/esm/loader:695:17) + at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) + at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { + code: 'ERR_MODULE_NOT_FOUND' +} + +Node.js v25.6.0 +node:internal/errors:998 + const err = new Error(message); + ^ + +Error: Command failed: /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +node:internal/modules/package_json_reader:301 + throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); + ^ + +Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js + at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) + at packageResolve (node:internal/modules/esm/resolve:768:81) + at moduleResolve (node:internal/modules/esm/resolve:859:18) + at defaultResolve (node:internal/modules/esm/resolve:991:11) + at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) + at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) + at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) + at #resolve (node:internal/modules/esm/loader:695:17) + at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) + at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { + code: 'ERR_MODULE_NOT_FOUND' +} + +Node.js v25.6.0 + + at genericNodeError (node:internal/errors:998:15) + at wrappedFn (node:internal/errors:543:14) + at checkExecSyncError (node:child_process:925:11) + at execFileSync (node:child_process:961:15) + at run (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:37:20) + at check (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:54:18) + at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:78:3 + at ModuleJob.run (node:internal/modules/esm/module_job:430:25) + at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:655:26) + at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5) { + status: 1, + signal: null, + output: [ + null, + '', + 'node:internal/modules/package_json_reader:301\n' + + ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + + ' ^\n' + + '\n' + + "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + + ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + + ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + + ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + + ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + + ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + + ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + + ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + + ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + + ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + + ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + + " code: 'ERR_MODULE_NOT_FOUND'\n" + + '}\n' + + '\n' + + 'Node.js v25.6.0\n' + ], + pid: 39548, + stdout: '', + stderr: 'node:internal/modules/package_json_reader:301\n' + + ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + + ' ^\n' + + '\n' + + "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + + ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + + ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + + ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + + ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + + ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + + ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + + ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + + ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + + ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + + ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + + " code: 'ERR_MODULE_NOT_FOUND'\n" + + '}\n' + + '\n' + + 'Node.js v25.6.0\n' +} + +Node.js v25.6.0 + +exit=1 diff --git a/evidence/cli-runtime-dependencies/package-pass.txt b/evidence/cli-runtime-dependencies/package-pass.txt new file mode 100644 index 00000000..9f9db68b --- /dev/null +++ b/evidence/cli-runtime-dependencies/package-pass.txt @@ -0,0 +1,32 @@ +$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository +$ node scripts/cli-package-gate.mjs +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-T0RrGp/tarballs +PACK_OK relayflows@2.0.39: package/bin/flows.js +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 150 packages in 2s +$ /tmp/flows-cli-package-T0RrGp/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ npm install -g --prefix /tmp/flows-cli-package-T0RrGp/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 294 packages in 4s +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz + +added 140 packages in 2s +$ /tmp/flows-cli-package-T0RrGp/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CLI_PACKAGE_OK: local and global installs + +exit=0 diff --git a/evidence/cli-runtime-dependencies/publish.txt b/evidence/cli-runtime-dependencies/publish.txt new file mode 100644 index 00000000..8912f66f --- /dev/null +++ b/evidence/cli-runtime-dependencies/publish.txt @@ -0,0 +1,18 @@ +$ node --test scripts/publish.test.mjs +✔ one SDK anchor rewrites all internal dependency types and preserves external ranges (137.274241ms) +✔ prerelease bumps use the SDK anchor and output the resolved version (151.195828ms) +✔ invalid custom versions fail before any package changes (80.016825ms) +✔ actual npm tarballs reject missing dist and local dependencies, then accept built surface (858.637644ms) +✔ relayflows tarball publishes unscoped and rejects a missing bin (852.39052ms) +✔ runtime tarball refuses an unstaged binary package (566.260219ms) +✔ a runtime tarball packs and asserts shape, running the real smoke only on a matching host (298.950709ms) +ℹ tests 7 +ℹ suites 0 +ℹ pass 7 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 2999.119725 + +exit=0 diff --git a/evidence/cli-runtime-dependencies/sdk-build.txt b/evidence/cli-runtime-dependencies/sdk-build.txt new file mode 100644 index 00000000..db7684cb --- /dev/null +++ b/evidence/cli-runtime-dependencies/sdk-build.txt @@ -0,0 +1,7 @@ +$ npm run build --prefix packages/sdk + +> @relayflows/sdk@2.0.39 build +> tsc && node scripts/make-cli-executable.mjs + + +exit=0 diff --git a/evidence/cli-runtime-dependencies/suite.txt b/evidence/cli-runtime-dependencies/suite.txt new file mode 100644 index 00000000..a44e7d37 --- /dev/null +++ b/evidence/cli-runtime-dependencies/suite.txt @@ -0,0 +1,4667 @@ +$ cd packages/sdk +$ ./node_modules/.bin/vitest run + + RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk + +stdout | tests/live-kernel.test.ts +LIVE_KERNEL relayflowd=/home/daytona/.relayflows-toolchain/target/relayflow-check/debug/relayflowd +LIVE_KERNEL flows=/home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/cli.js + + ✓ tests/preflight.test.ts (70 tests) 202ms + ✓ tests/cli.test.ts (71 tests) 4067ms + ✓ flows check CLI > binds a checked relative wrapper to the flow directory for worker execution 892ms + ✓ flows check CLI > resolves a bare PATH-resolved claude with no declared model, in an isolated PATH 610ms + ✓ flows run/resume CLI over the journal protocol > follows a worker wait past a locally expired lease until the daemon settles it 1081ms + ✓ tests/cloud-read.test.ts (46 tests) 78ms +stdout | tests/live-kernel.test.ts > surface resume after a real daemon kill > resumes a three-step run with each successful completion exactly once +LIVE_KERNEL kill -9 pid=20594 run=01M42VH2M3TJQKNVZFHJ8FCD3B while step=two state=Running + + ❯ tests/live-kernel.test.ts (32 tests | 9 failed) 59239ms + ✓ built flows CLI against live relayflowd > twenty-six-step reuses 25 durable completions after editing the failed final step 3919ms + ✓ built flows CLI against live relayflowd > runs rung (a), parks rung (b), and keeps JSON report-shaped 4046ms + ✓ built flows CLI against live relayflowd > allows a deterministic run to exceed the bounded request timeout 33171ms + ✓ built flows CLI against live relayflowd > follows a live worker dispatch through flows run 709ms + ✓ built flows CLI against live relayflowd > runs an agent CLI end to end through the SDK worker 448ms + ✓ built flows CLI against live relayflowd > f.agent lowers to a real agent step and dispatches through a live worker 608ms + ✓ built flows CLI against live relayflowd > can always get a parked run to a late-attaching worker 5582ms + ✓ built flows CLI against live relayflowd > reports a real manual-recovery NeedsHuman state as parked 558ms + × built flows CLI against live relayflowd > runs hn-monitor analyze-story end-to-end via a stub agent CLI (gate 2 clause 2 demo) 552ms + → expected { …(12) } to match object { output: { …(3) }, …(1) } +(22 matching properties omitted from actual) + × built flows CLI against live relayflowd > hn-monitor analyze-story FAILS verification when the CLI omits required schema fields 553ms + → expected { …(12) } to match object { …(3) } +(21 matching properties omitted from actual) + × built flows CLI against live relayflowd > agent step preserves the CliResult wrapper as output when the CLI emits non-JSON text 572ms + → expected null not to be null + × built flows CLI against live relayflowd > AgentWorker exposes wake_context to the CLI via RELAYFLOW_WAKE_CONTEXT env var (real analyzer prerequisite) 564ms + → Cannot read properties of null (reading 'story_title') + × built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_WAKE_CONTEXT UNSET when the run has no wake_context (undefined-vs-null pin) 514ms + → Cannot read properties of null (reading 'env_present') + ✓ built flows CLI against live relayflowd > AgentWorker passes a declared model to an identified wrapper as RELAYFLOW_MODEL 589ms + ✓ built flows CLI against live relayflowd > AgentWorker refuses a nonconforming journal-submitted wrapper before exposing RELAYFLOW_MODEL 580ms + ✓ built flows CLI against live relayflowd > AgentWorker executes the raw claude adapter with its real model flag 549ms + ✓ built flows CLI against live relayflowd > AgentWorker executes the raw codex adapter with its real model flag 546ms + × built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_MODEL UNSET when the step declares no model 492ms + → Cannot read properties of null (reading 'story_title') + × built flows CLI against live relayflowd > hn-monitor analyze-story reaches done through the real Claude analyzer CLI 35ms + → LIVE_ANALYZER_UNAVAILABLE: "/home/daytona/.relayflow-v2-supervisor/durable/repository/testdata/preflight/analyze-story-claude-cli" does not identify as relayflows-agent-cli-v1 — failing because gate-2 acceptance requires the real analyzer to execute. Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is not gate evidence. + ✓ built flows CLI against live relayflowd > preflights before journaling and names an unreachable socket 819ms + × built flows CLI against live relayflowd > starts exactly one daemon when two runs race for one empty data dir 502ms + → WARNING [unprovable_effects] Step "greet" command "echo" resolves, but its effects cannot be proven before execution. +WARNING [unprovable_effects] Step "shout" command "echo" resolves, but its effects cannot be proven before execution. +WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] No relayflowd binary could be found. Install the runtime package for this host (@relayflows/runtime-linux-x64), or set RELAYFLOWD_BIN to a relayflowd executable. Tried: /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/relayflowd. +: expected 2 to be +0 // Object.is equality + ✓ subprocess_gate output capture against live relayflowd > journals the gate command output and reports both tails 974ms + ✓ surface resume after a real daemon kill > resumes a three-step run with each successful completion exactly once 936ms + × a relayflow can be scheduled: tick source against live relayflowd > a tick spawns a real run whose step reports the SCHEDULED instant 650ms + → expected null to deeply equal { schedule_id: 'heartbeat-1m', …(3) } + ✓ tests/cloud-live.test.ts (55 tests) 2065ms + ✓ argv and wiring > routes both live invocations through runCli, and refuses a missing run id 2005ms + ❯ tests/hosted-extension-isolation.test.ts (22 tests | 14 failed) 297ms + × hosted extension capability isolation > executes the exact capability-only handler for a queued receipt 9ms + → bubblewrap is unavailable + × hosted extension capability isolation > executes the exact capability-only handler for a duplicate receipt 3ms + → bubblewrap is unavailable + × hosted extension capability isolation > launches through the captured process primitive after builtin export synchronization 5ms + → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + × hosted extension capability isolation > ignores inherited launcher overrides and decodes manifests with the captured Buffer intrinsic 3ms + → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + × hosted extension capability isolation > streams verified bytes when the live store is replaced and no writable staging path exists 211ms + → promise rejected "Error: Hosted extension sandbox exited wi… { code: '…' }" instead of resolving + × hosted extension capability isolation > mounts pinned private Surface bytes when the live package changes before launch 5ms + → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + × hosted extension capability isolation > refuses oversized Surface files through the bounded descriptor reader 8ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } + × hosted extension capability isolation > shields verified Surface files before async settlement 4ms + → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + × hosted extension capability isolation > preserves a typed host refusal while disclosing only a fixed marker to the child 2ms + → expected Error: bubblewrap is unavailable { code: '…' } to be Error: private Cloud policy detail { code: '…' } // Object.is equality + × hosted extension capability isolation > denies ambient credentials, host files, writes, network, subprocesses, and undeclared context verbs 7ms + → bubblewrap is unavailable + × hosted extension capability isolation > enforces OS address-space and data bounds on native Buffer allocation 3ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } + × hosted extension capability isolation > blocks extra handler fields and authority-bearing receipt fields at the parent port 2ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + × hosted extension capability isolation > constructs adapter authority with the captured freeze intrinsic 2ms + → bubblewrap is unavailable + × hosted extension capability isolation > writes the Surface manifest and protocol without inherited toJSON behavior 2ms + → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ✓ tests/cloud-sync.test.ts (40 tests) 768ms + ✓ tests/observer-link.test.ts (44 tests) 175ms + ✓ tests/authored-flow.test.ts (38 tests) 823ms + ✓ tests/plugin-extension.test.ts (94 tests) 439ms + ✓ tests/cloud-transcript-codex.test.ts (44 tests) 23ms + ✓ tests/worker-cli.test.ts (25 tests) 29542ms + ✓ registered CLI model defaults > passes the same priced Claude default to the real provider invocation 538ms + ✓ registered CLI model defaults > uses the explicitly supplied agent environment for the provider subprocess 413ms + ✓ registered CLI model defaults > dispatches canonical generic bytes with the preflight-proved adapter identity 425ms + ✓ direct transport lifecycle evidence > classifies only the exact Codex stdin lifecycle signature as retryable 478ms + ✓ direct transport lifecycle evidence > records a signal close separately from an ordinary nonzero exit 940ms + ✓ direct transport lifecycle evidence > records a spawn error code without treating a missing executable as transient 393ms + ✓ direct transport lifecycle evidence > journals classified lifecycle evidence and reports crashed instead of generic worker_error 500ms + ✓ step discovery environment > names the run, step, attempt and an absolute data dir for a direct agent spawn 498ms + ✓ step discovery environment > exports none of the four without a data dir, even when the worker inherited them 430ms + ✓ wrapper discovery environment > sets the four names from the dispatch and still refuses ambient values and other secrets 410ms + ✓ wrapper discovery environment > exports none of the four to a wrapper without a data dir, even when the worker inherited them 458ms + ✓ custom wrapper execution identity > passes an explicit safe environment at identification and execution 439ms + ✓ custom wrapper execution identity > refuses a wrapper symlink retarget before delivering private values 436ms + ✓ custom wrapper execution identity > bounds wrapper execution after acknowledgement 492ms + ✓ custom wrapper execution identity > bounds captured wrapper output 425ms + ✓ custom wrapper execution identity > refuses a duplicate execute protocol frame 438ms + ✓ custom wrapper execution bounds are reader-owned > resolves when a conforming wrapper leaks a stdio pipe to a background helper 1806ms + ✓ custom wrapper execution bounds are reader-owned > resolves when the leaked helper inherits stderr only 1850ms + ✓ custom wrapper execution bounds are reader-owned > resolves when a wrapper leaks a stdio pipe and exits before identifying 3556ms + ✓ custom wrapper execution bounds are reader-owned > journals a completionReason at the default bound when a wrapper leaks a stdio pipe 11600ms + ✓ custom wrapper execution bounds are reader-owned > accepts an execute token and an over-8KiB payload flushed in one write 541ms + ✓ custom wrapper execution bounds are reader-owned > accepts the same over-8KiB payload whether or not it coalesces with the execute token 1565ms + ✓ custom wrapper execution bounds are reader-owned > still bounds an un-terminated handshake buffer and names the bound 492ms + ✓ delivers the journaled memory pack to the real wrapper and excludes its charge from completion usage 418ms + ✓ tests/flow-extension-compose.test.ts (33 tests) 5697ms + ✓ composing flow extensions onto a base flow > composes two extensions in declaration order, and the order is the lockfile order 445ms + ✓ composing flow extensions onto a base flow > flows check reports the composition and keeps the composed triggers deliverable 905ms + ✓ tests/cloud-deploy.test.ts (60 tests) 1386ms +(node:21503) ExperimentalWarning: SQLite is an experimental feature and might change at any time +(Use `node --trace-warnings ...` to show where the warning was created) + ✓ tests/cli-status.test.ts (27 tests) 1277ms + ✓ flows status > resolves the run with no arguments from inside a worker-spawned agent 987ms + ✓ tests/run-state.test.ts (28 tests) 10ms + ✓ tests/cloud-run.test.ts (59 tests) 615ms + ✓ tests/agent-transcript.test.ts (29 tests) 266ms + ✓ tests/relay-cli-surface.test.ts (85 tests) 35ms + ✓ tests/babysitter-native-extension.test.ts (41 tests | 1 skipped) 1362ms + ✓ tests/shipped-source-model-provenance.test.ts (1 test) 109005ms + ✓ shipped-source model provenance > does not treat mutable aliases or incomplete named agents as pinned 109004ms +(node:21731) [FLOWS_ROOT_LEASE_LOST] Warning: authored root run_id=root-run attempt=1: lease_conflict: attempt has no active worker lease. Waiting for the kernel to retry it. +(Use `node --trace-warnings ...` to show where the warning was created) + ✓ tests/authored-root.test.ts (22 tests) 404ms + ✓ tests/authored-completion-detail.test.ts (59 tests) 187ms + ✓ tests/shipped-source-worker-call-forms.test.ts (1 test) 16804ms + ✓ shipped-source worker call forms > fails closed for computed keys, assertions, binds, call, and apply 16803ms + ✓ tests/step-failure-diagnostic.test.ts (26 tests) 108ms + ✓ tests/stop-process-group.test.ts (11 tests) 14834ms + ✓ every stop reaches the process group, not just the direct child > exits the run after an execution-timeout stop 1079ms + ✓ every stop reaches the process group, not just the direct child > exits the run after a protocol terminate stop 451ms + ✓ every stop reaches the process group, not just the direct child > kills a SIGTERM-deaf grandchild after a protocol terminate stop 1575ms + ✓ every stop reaches the process group, not just the direct child > kills a SIGTERM-deaf grandchild after an execution-timeout stop 1921ms + ✓ every stop reaches the process group, not just the direct child > holds the loop open long enough for the escalation to run 1089ms + ✓ every stop reaches the process group, not just the direct child > bounds forced-stop confirmation when a group remains unprovable 1006ms + ✓ a wrapper that exits with no execution deadline still drains > reports the wrapper result and reaps a grandchild holding its pipes 750ms + ✓ a wrapper that exits with no execution deadline still drains > reaps a SIGTERM-deaf grandchild holding its pipes 2012ms + ✓ a wrapper that exits with no execution deadline still drains > settles on its own deadline when an escaped holder withholds close 4629ms + ❯ tests/mcp.test.ts (34 tests | 4 skipped) 15734ms + ✓ MCP preflight and transports > flows check refuses an undeclared server with exit 2 and no daemon 917ms + ✓ MCP preflight and transports > flows check reports a refusing server and leaves no PID 945ms + ✓ MCP preflight and transports > kills a SIGTERM-resistant silent child after a parent-owned handshake deadline 1321ms + ✓ MCP preflight and transports > reaps a SIGTERM-resistant descendant with inherit stdio before cleanup finishes 1063ms + ✓ MCP preflight and transports > reaps a SIGTERM-resistant descendant with ignore stdio before cleanup finishes 2025ms + ✓ MCP preflight and transports > rejects close when forced group death remains unprovable 2073ms + ✓ MCP preflight and transports > cancels force escalation when close follows an exited child 1187ms + ✓ MCP preflight and transports > waits for child close when the transport cannot own a process group 1054ms + ✓ MCP preflight and transports > cancels force escalation for an already-closed child without a process group 1175ms + ✓ MCP preflight and transports > reports malformed connection configuration as config_invalid 903ms + ✓ tests/step-attempt-history.test.ts (23 tests) 17ms + ✓ tests/daemon-lifecycle.test.ts (42 tests) 38ms + ❯ tests/hosted-extension-protocol.test.ts (27 tests | 8 failed) 40105ms + × hosted extension hostile protocol > uses captured JSON intrinsics for the complete parent boundary 7ms + → bubblewrap is unavailable + × hosted extension hostile protocol > rejects an import-time different PR frame with zero adapter calls 5ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + × hosted extension hostile protocol > rejects an import-time different delivery frame with zero adapter calls 4ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + × hosted extension hostile protocol > rejects an import-time different event frame with zero adapter calls 3ms + → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + × hosted extension hostile protocol > rejects two forged calls after the authoritative first outcome settles 10003ms + → hostile child did not invoke the adapter + × hosted extension hostile protocol > waits for a pending adapter to reject after a forged child error 10010ms + → hostile child did not invoke the adapter + × hosted extension hostile protocol > waits for a pending adapter to resolve after a forged child error 10005ms + → hostile child did not invoke the adapter + × hosted extension hostile protocol > returns a typed adapter rejection even when the hostile child hangs 10006ms + → hostile child did not invoke the adapter + ✓ tests/close-pr-flow.test.ts (35 tests) 20801ms + ✓ close-pr journaled repair loop > reads an existing Bugbot finding, repairs in the same worktree, pushes and re-verifies before merging 2209ms + ✓ close-pr journaled repair loop > opens a PR and feeds failed CI logs into the repair agent 2499ms + ✓ close-pr journaled repair loop > pins the current generated model for codex when no override is supplied 4995ms + ✓ close-pr journaled repair loop > pins the current generated model for claude when no override is supplied 3848ms + ✓ close-pr journaled repair loop > parks after exactly three nonconverging repairs, with accumulated blockers 2314ms + ✓ close-pr journaled repair loop > can converge on the third repair 2406ms + ✓ close-pr journaled repair loop > executes the deterministic commit and force-push steps against a local Git remote, including a no-op repair 2329ms + ❯ tests/authored-node-runtime.test.ts (16 tests | 16 skipped) 12ms + ✓ tests/artifact-gates.test.ts (27 tests) 228ms + ✓ tests/hosted-base-snapshot.test.ts (18 tests) 2076ms + ✓ hosted base private snapshot > stops streaming project entries at the shared count limit 1994ms + ✓ tests/cloud-connect.test.ts (24 tests) 3182ms + ✓ hosted verbs connect before they submit > flows run --cloud submits once the prompt connected the integration 2126ms + ✓ tests/journal-client.test.ts (17 tests) 79ms + ✓ tests/verb-field-lint.test.ts (102 tests) 379ms + ✓ tests/bundle.test.ts (26 tests) 9543ms + ✓ immutable bundles > returns exit 2 naming a byte-flipped payload and refuses to reuse corruption 398ms + ✓ immutable bundles > verifies with --verify in any position and answers --json with one object 771ms + ✓ immutable bundles > refuses --out with --verify rather than ignoring the destination 390ms + ✓ immutable bundles > builds and verifies the canonical YAML fixture through the compiled CLI 1297ms + ✓ immutable bundles > emits the ephemeral warning on CLI stderr and uses the default output directory 786ms + ✓ immutable bundles > refuses build-provable CLI resolution errors without environment probes 411ms + ✓ immutable bundles > builds a standalone TS fixture twice with identical executable hashes 2652ms + ✓ immutable bundles > refuses to label installed dependency drift with lockfile pins 405ms + ✓ immutable bundles > refuses invalid CLI arguments %j 451ms + ✓ immutable bundles > refuses invalid CLI arguments "--out" 528ms + ✓ immutable bundles > refuses invalid CLI arguments "--verify" 430ms + ✓ immutable bundles > refuses invalid CLI arguments "--verify" 418ms + ✓ immutable bundles > refuses invalid CLI arguments "--out" 425ms + ✓ tests/validate.test.ts (68 tests) 23ms + ✓ tests/shipped-source-flow-provenance-repairs.test.ts (1 test) 29934ms + ✓ shipped-source flow provenance repairs > audits repaired writer, alias, binding, and cyclic provenance forms 29933ms + ✓ tests/agent-relay-transport.test.ts (17 tests) 2434ms + ✓ Relay completion at the journal boundary > does not complete at readiness and journals exact output, receipt, and priced accounting 1011ms + ✓ Relay completion at the journal boundary > aborts polling on rejected renewal and never writes a stale completion 1002ms + ✓ tests/authored-node-result.test.ts (44 tests) 19ms + ✓ tests/tick-source.test.ts (33 tests) 20ms + ✓ tests/authored-step-terminal-completion.test.ts (13 tests) 4884ms + ✓ readCompletedStepOutput on an adopted gated child whose gate has not started > refuses a producer success when the wait ends with the run still not terminal 2007ms + ✓ readCompletedStepOutput given a suspended known status (#441) > refuses a producer success while the child is still not terminal 2006ms + ✓ tests/authored-step-graph.test.ts (25 tests) 819ms + ✓ tests/cloud-mirror.test.ts (14 tests) 31ms + ✓ tests/pr-review-post.test.ts (21 tests) 2102ms + ✓ tests/authored-flow-lifecycle-executor.test.ts (27 tests) 601ms + ✓ tests/step-failure-excerpt.test.ts (42 tests) 172ms +(node:26518) ExperimentalWarning: SQLite is an experimental feature and might change at any time +(Use `node --trace-warnings ...` to show where the warning was created) + ✓ tests/cli-replay.test.ts (38 tests) 1271ms + ✓ flows replay > --json is byte-identical across two CLI invocations (diff) 798ms + ✓ tests/cloud-mirror-step.test.ts (17 tests) 13ms + ❯ tests/authored-flow-slack.test.ts (7 tests | 5 failed) 164ms + × authored Slack helper effects > snapshots structured posts into the journal and delivers the same Block Kit body 6ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × authored Slack helper effects > journals exactly one effect with the authored params and typed receipt, without network 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × authored Slack helper effects > replays after SIGKILL before confirm with the same token and one successful completion 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × authored Slack helper effects > replays after SIGKILL before complete with the same token and one successful completion 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × authored Slack helper effects > writes two files for two calls and supports dm, reply, and react 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + ✓ tests/wrapper-execution-duration.test.ts (7 tests) 10835ms + ✓ keeps the handshake deadline independent of the removed execution deadline 10071ms + ✓ still lets a lease abort stop an unlimited wrapper before it produces output 515ms + ❯ tests/flow-executor-chain.test.ts (14 tests | 14 failed) 70452ms + × flow executor LLM and output-binding chain > runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model 5031ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > runs a dollar-budgeted authored Claude agent with the same default used by preflight 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > fails invalid LLM output before the next step: not JSON 5025ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > fails invalid LLM output before the next step: {"message":7} 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > retains tagged-template text output 5026ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: null 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: [1,2] 5031ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: "hello" 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > refuses a model outside flows.json before a run or adapter execution 5026ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > resumes an interrupted durable authored root without replaying completed flagship effects 10042ms + → chain fixture daemon failed to start + × flow executor LLM and output-binding chain > passes a declarative verified value through an agent into a deterministic artifact 5031ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > journals a missing optional field as a failure before the consuming command executes 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × flow executor LLM and output-binding chain > flows run consumes YAML bindings and resume reuses the original journal output 65ms + → expected null to be +0 // Object.is equality + ✓ tests/tick-runner.test.ts (22 tests) 2254ms + ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms fractional as an invocation error 357ms + ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms exponent notation as an invocation error 381ms + ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms hex as an invocation error 379ms + ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms trailing text as an invocation error 370ms + ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms empty as an invocation error 377ms + ✓ CLI argument parsing refuses coercion rather than accepting it > accepts an exact integer and proceeds past parsing 367ms + ✓ tests/authored-step-index.test.ts (17 tests) 15ms + ✓ tests/authored-agent-artifacts.test.ts (5 tests) 343ms + ✓ tests/worker-cli-result-exit.test.ts (7 tests) 34827ms + ✓ a Claude agent step completes on its result, not only on process exit > settles a hung, successful run within the grace and stops its whole tree 32624ms + ✓ a Claude agent step completes on its result, not only on process exit > maps an error result on a hung run to a failed exit 31622ms + ✓ a Claude agent step completes on its result, not only on process exit > leaves a hang before any result to the existing stops 32012ms + ✓ an agent tree does not outlive the process that spawned it > kills the agent group when the run process is terminated by SIGTERM 777ms + ✓ an agent tree does not outlive the process that spawned it > removes a wrapper alias on host exit after group death stays unprovable 1339ms + ✓ tests/worker-transcript.test.ts (9 tests) 862ms + ✓ tests/gate-contract.test.ts (20 tests) 166ms +Stopped: a Linear ticket must carry its identifier (like TECH-42) so the pull request can link back. +Stopped: a Linear ticket must carry its identifier (like TECH-42) so the pull request can link back. +Stopped: invalid pull-request metadata (duplicate-linear-closing-reference). No branch was pushed and no pull request was opened. +Stopped: invalid pull-request metadata (duplicate-linear-closing-reference). No branch was pushed and no pull request was opened. +Stopped: invalid pull-request metadata (duplicate-github-closing-reference). No branch was pushed and no pull request was opened. +Stopped: invalid pull-request metadata (malformed-review-scope). No branch was pushed and no pull request was opened. +Stopped: invalid pull-request metadata (malformed-review-scope). No branch was pushed and no pull request was opened. +Stopped: could not read the reviewed head commit. Nothing was pushed. +Stopped: could not read the reviewed head commit. Nothing was pushed. +Stopped: could not read the reviewed head commit. Nothing was pushed. + ✓ tests/canonical-software-factory.test.ts (25 tests) 742ms + ✓ tests/authored-human.test.ts (13 tests) 92ms + ✓ tests/direct-input.test.ts (6 tests) 6330ms + ✓ direct .flow.ts input through the built CLI and live runtime > returns exit 3 for an authored human handoff and persists its outcome 598ms + ✓ direct .flow.ts input through the built CLI and live runtime > returns exit 1 for an authored step_failed verdict and persists its outcome 641ms + ✓ direct .flow.ts input through the built CLI and live runtime > executes inline and file JSON input through relayflowd 2673ms + ✓ direct .flow.ts input through the built CLI and live runtime > refuses missing and malformed input before contacting relayflowd 1549ms + ✓ direct .flow.ts input through the built CLI and live runtime > does not run the authored body before daemon availability 470ms + ✓ direct .flow.ts input through the built CLI and live runtime > refuses oversized file input before contacting relayflowd 399ms + ✓ tests/cloud-schedule.test.ts (17 tests) 4077ms + ✓ schedule lowering > marks a non-grid cron as Cloud-only rather than approximating it, with a silence budget from its own cadence 1667ms + ✓ flows check prints declared schedules > shows the lowering for a fixed interval and the Cloud-only note for a real cron 1891ms + ✓ tests/cli-hn-monitor.test.ts (16 tests) 96ms + ❯ tests/agent-artifacts-live.test.ts (5 tests | 5 failed) 2531ms + × agent artifacts and gates through the built CLI, a real daemon and the local agent > journals the files the agent wrote, including under a dot-directory, and every artifact gate passes on that journal 496ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-818f28a002b6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run when the artifact_exists gate names a file the agent did not write 508ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-49a91e18aab6.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run with the author reason when a predicate gate returns false, journaling the verdict 491ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-203b5b281663.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × review follow-ups > applies a predicate gate on a helper step too, and journals its verdict 494ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-8b915e830e15.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × review follow-ups > records predicate verdicts on the root run so a resume reuses them instead of re-running the closure 540ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-d7317185e75d.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + ✓ tests/spec-parity.test.ts (43 tests) 500ms + ✓ tests/authored-activity.test.ts (16 tests) 106ms + ✓ tests/named-gate-diagnostics.test.ts (17 tests) 501ms + ✓ tests/run-projection.test.ts (13 tests) 12ms + ✓ tests/daemon-lifecycle-live.test.ts (9 tests) 6547ms + ✓ flows run against a data dir with no daemon (§6 test 7) > cold start spawns exactly one daemon, the run succeeds, and the daemon outlives the CLI 471ms + ✓ flows run against a data dir with no daemon (§6 test 7) > polls, bounded, for a daemon that holds the lock before it binds 1360ms + ✓ flows run against a data dir with no daemon (§6 test 7) > attaches to a serving daemon that has not published a connection file 455ms + ✓ flows run against a data dir with no daemon (§6 test 7) > a second run attaches to the daemon the first one started, spawning nothing 860ms + ✓ flows run against a data dir with no daemon (§6 test 7) > detects a stale connection file left by a hard kill and starts a fresh daemon 932ms + ✓ concurrent invocations against one empty data dir (§6 test 15) > ends with exactly one daemon owning the socket, and both runs succeed 1157ms + ✓ refusals from a spawn that cannot produce a daemon > names relayflowd_not_found rather than falling through to PATH 415ms + ✓ refusals from a spawn that cannot produce a daemon > names daemon_start_failed and quotes the daemon log when startup dies 445ms + ✓ refusals from a spawn that cannot produce a daemon > refuses a daemon speaking another protocol version instead of binding over it 453ms + ✓ tests/shipped-source-cubic-regressions.test.ts (5 tests) 11051ms + ✓ shipped-source adversarial provenance regressions > retains callable writes through member mutation, spreads, this, holes, and alternate receivers 6031ms + ✓ shipped-source adversarial provenance regressions > does not manufacture intrinsic writes or comma-left callables 2195ms + ✓ shipped-source adversarial provenance regressions > treats constructor and implicit-this receiver escapes as possible worker writes 555ms + ✓ shipped-source adversarial provenance regressions > maps pure helper parameters and refuses mutations or conditional assignments as proofs 1713ms + ✓ shipped-source adversarial provenance regressions > does not apply later alias assignments retroactively to copied values 557ms + ❯ tests/agent-transcript-live.test.ts (4 tests | 4 failed) 2027ms + × the transcript digest through the built CLI, a real daemon and the local agent > preserves structured agent failure details and its completed root index 523ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-84050d4a5bdb.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × the transcript digest through the built CLI, a real daemon and the local agent > preserves structured llm failure details and its completed root index 491ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-fca2cd1b809e.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × the transcript digest through the built CLI, a real daemon and the local agent > journals the digest in trajectory_tail on a successful agent step and writes the file it points at 515ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-f77a6fe24d83.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × the transcript digest through the built CLI, a real daemon and the local agent > on a failed agent step, names the failure and the transcript in the terminal diagnostic, redacted 497ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-3bce1808e9aa.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + ✓ tests/wrapper-exit-drain.test.ts (9 tests) 3244ms + ✓ reports a signalled wrapper death while a pipe is held, with its output intact 381ms + ✓ lets a lease abort outrank a successful exit still being drained 536ms + ✓ does not let a later drain overwrite abort while group confirmation is pending 637ms + ✓ tests/resume-local-agent.test.ts (8 tests) 15ms +(node:29267) Warning: Transcript tail for run-9/analyze attempt 1 (stdout) could not be written; the step continues without it: EACCES: permission denied, mkdir '/tmp/transcript-tail-em8i2p/runs/run-9/steps' +(Use `node --trace-warnings ...` to show where the warning was created) + ✓ tests/transcript-tail.test.ts (11 tests) 1322ms + ✓ direct agent spawn > tees stdout and stderr into tail files that name the dispatch 548ms + ✓ direct agent spawn > completes the step when the tail directory cannot be created 496ms + ✓ tests/advisory-outcome.test.ts (23 tests) 76ms + ❯ tests/authored-run-failure-evidence.test.ts (9 tests | 5 failed) 40157ms + × a failing f.run through the live kernel > reports the command that failed and what it printed 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × a failing f.run through the live kernel > names the failing case from the middle of a real test run 10034ms + → chain fixture daemon failed to start + × a failing f.run through the live kernel > carries the same facts structurally, not only rendered into the message 5027ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × a failing f.run through the live kernel > keeps the evidence when the failure is relabelled as a timeout 10033ms + → chain fixture daemon failed to start + × the child index after the process that wrote it is gone > still names every child, with its own run id, after a daemon restart 10030ms + → chain fixture daemon failed to start + ❯ tests/agent-cwd-live.test.ts (4 tests | 4 failed) 2057ms + × agents drive two checkouts under one run root > runs each CLI in its declared directory, and the run is not refused as an unknown field 519ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-f5385a489530.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × agents drive two checkouts under one run root > gates on an artifact path relative to the agent directory 540ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-81e36b029a60.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × a declaration this contract cannot honour is refused at its own edge > refuses a path that climbs out of the run root without starting a run at all 491ms + → expected 'RELAYFLOWD_BIN is set to "/home/dayto…' to contain 'f.agent options.cwd: expected a run-r…' + × a declaration this contract cannot honour is refused at its own edge > fails the step with the reason when the directory is not there, rather than running somewhere else 506ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-8c4edf8d97fd.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + ❯ tests/authored-helpers.test.ts (6 tests | 5 failed) 22ms + × lowers the named acceptance helpers and Slack to confirmed journal effects 6ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × runs every available provider through the real kernel and resumes completed effects without a second write 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × replays after SIGKILL before confirm with the same token and one successful completion 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × replays after SIGKILL before complete with the same token and one successful completion 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × journals provider failure with worker_error and never confirms the effect 1ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + ✓ tests/cloud-mirror-session.test.ts (12 tests) 12ms + ✓ tests/agent-cwd.test.ts (53 tests) 47ms + ✓ tests/authored-flow-operation.test.ts (24 tests) 616ms + ✓ completes the gate in linear time over a body with 30000 ordinary awaits 325ms + ✓ tests/budget-attribution.test.ts (10 tests) 9ms + ✓ tests/helper-reference.test.ts (30 tests) 24ms + ✓ tests/pty-sidechannel.test.ts (14 tests) 9226ms + ✓ view attach preserves worker completion and marks only drive 1029ms + ✓ drive attach preserves worker completion and marks only drive 646ms + ✓ passthrough attach preserves worker completion and marks only drive 1076ms + ✓ none attach preserves worker completion and marks only drive 1108ms + ✓ none subscriber lets an unattended CLI read EOF 651ms + ✓ view subscriber lets an unattended CLI read EOF 557ms + ✓ passthrough subscriber lets an unattended CLI read EOF 602ms + ✓ incomplete subscriber lets an unattended CLI read EOF 538ms + ✓ unattended Codex receives closed stdin before startup instead of entering its additional-input lifecycle 559ms + ✓ ends driven stdin when the last drive peer disconnects after spawn 592ms + ✓ rejects drive after EOF without marking human intervention 938ms + ✓ delivers all drive bytes in order across child stdin backpressure 895ms + ✓ tests/flow-requirements.test.ts (14 tests) 1000ms + ✓ flows check prints REQUIRES > names the helper, the harness and the mcp server of an authored flow 693ms + ✓ tests/backlog-picker.test.ts (14 tests) 43ms + ✓ tests/plugin-store-bounds.test.ts (11 tests) 82ms + ✓ tests/cloud-mirror-live.test.ts (3 tests) 3055ms + ✓ a local run on the Cloud dashboard > registers, publishes its steps and its log, and reports terminal last 688ms + ✓ a local run on the Cloud dashboard > sends nothing at all unless it is asked to 1457ms + ✓ a local run on the Cloud dashboard > publishes a composed authored flow as one connected dashboard DAG 877ms + ❯ tests/local-agent-live.test.ts (7 tests | 7 failed) 3531ms + × built CLI local agent against a real daemon > dispatches through the wrapper and keeps --json stdout report-shaped 521ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-2ffe8381248e.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × built CLI local agent against a real daemon > runs beyond the initial 30-second lease without a second invocation 510ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-19f964cc734b.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × built CLI local agent against a real daemon > renders actual agent completion in text output 506ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be +0 // Object.is equality + × built CLI local agent against a real daemon > returns a failed run when the agent process fails 500ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be 1 // Object.is equality + × built CLI local agent against a real daemon > prints a remedy that runs the parked authored flow to completion 491ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-0eeb4a81fa4b.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × built CLI local agent against a real daemon > prints a remedy that runs, for a run started from an input file too long to be one 492ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-e66e0580aab9.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × built CLI local agent against a real daemon > refuses a workspace it cannot pin before invoking the agent 509ms + → expected 'REFUSED [relayflowd_not_found] RELAYF…' to contain 'stream-only' + ✓ tests/classify-outcome.test.ts (11 tests) 5927ms + ✓ classifyOutcome > gives up and reports when a running run never becomes classifiable 2008ms + ✓ the remedy on a worker park > follows a step through a retry backoff longer than the unclassified bound 3006ms + ✓ the remedy on a worker park > follows a run.start outcome that is already running on a retried attempt 502ms + ✓ tests/backlog-picker-flow.test.ts (6 tests) 246ms + ✓ tests/hosted-extension-protocol-intrinsics.test.ts (6 tests) 13ms + ✓ tests/preflight-permissions-unenforced.test.ts (17 tests) 594ms + ✓ an authored TypeScript body is out of reach, and spec.ts says so > checks clean on a .flow.ts whose body declares permissions 552ms + ❯ tests/budget-unmetered-live.test.ts (4 tests | 4 failed) 20118ms + × unmetered budget spend through the live kernel > runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars 5032ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × unmetered budget spend through the live kernel > journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged 5029ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × unmetered budget spend through the live kernel > still counts an unpriced step toward a token budget 5027ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × unmetered budget spend through the live kernel > accrues a priced step and stops the run when it crosses the dollar budget 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + ✓ tests/stuck-run-triage.test.ts (22 tests) 3109ms + ✓ stuck-run-triage shell text > collects tails with no GNU timeout on PATH, as on a stock macOS 3071ms + ✓ tests/hosted-extension-routing.test.ts (7 tests) 7ms + ✓ tests/webhook.test.ts (9 tests) 908ms + ✓ webhook ingress > checks TS declarations against flows.json without invoking handlers 828ms + ✓ tests/redact.test.ts (54 tests) 10ms + ✓ tests/cli-probe.test.ts (17 tests) 1825ms + ❯ tests/authored-completion-recovery.test.ts (5 tests | 5 failed) 50204ms + × reuses the committed detail after the redaction environment rotates 10039ms + → chain fixture daemon failed to start + × commits the verdict once, and a clean re-execution reads it back 10038ms + → chain fixture daemon failed to start + × recovers a committed verdict when a no-detail retry follows a pre-marker loss 10046ms + → chain fixture daemon failed to start + × reuses the admitted marker when a no-detail retry follows a post-marker loss 10038ms + → chain fixture daemon failed to start + × leaves a one-argument done() writing nothing to the verdict stream 10043ms + → chain fixture daemon failed to start + ❯ tests/webhook-live.test.ts (6 tests | 6 failed) 62576ms + × executes and deduplicates 'app_mention' only for its provider and matching payload 10470ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × executes and deduplicates 'reaction_added' only for its provider and matching payload 10458ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × executes and deduplicates 'pull_request' only for its provider and matching payload 10410ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × flows serve-webhook writes JSON before the daemon starts, then journals and archives exactly once 10428ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × replays a dropped file after SIGKILL before spawn 10386ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × resumes the same journal after SIGKILL after spawn and before acknowledgement 10422ms + → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ tests/authored-advisory-run-live.test.ts (16 tests | 8 failed) 80331ms + × a recorded nonzero f.run through the live kernel > resolves to the journaled exit code instead of ending the flow 10035ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > resolves a green command through the same policy 10043ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > leaves the default fatal and still resolving to the stdout string 10037ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > still fails a timeout, which recorded no exit code to report 10046ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > still fails a declared named gate on a recorded step whose producer succeeded 10049ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > still fails a declared named gate on a default step whose producer succeeded 10043ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > hands a predicate gate the recorded result, not the stdout string 10045ms + → chain fixture daemon failed to start + × a recorded nonzero f.run through the live kernel > refuses a policy value the kernel enum does not name, before journaling anything 10027ms + → chain fixture daemon failed to start + ❯ tests/human-live.test.ts (3 tests | 3 failed) 1562ms + × f.human against a real daemon > parks with the question, refuses wrong answers, records one, and resumes to success 533ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"ask.flow.ts","socketPath":"/tmp/relayflowd-350b6838c3ee.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × f.human against a real daemon > a "no" is a value the body branches on: declined, exit 0, no effect 520ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be 3 // Object.is equality + × f.human against a real daemon > refuses to answer a run the daemon does not know 508ms + → expected 2 to be 3 // Object.is equality + ✓ tests/check-worker-surface.test.ts (11 tests) 89ms + ✓ tests/authored-step-failed.test.ts (10 tests) 36ms +(node:32007) ExperimentalWarning: SQLite is an experimental feature and might change at any time +(Use `node --trace-warnings ...` to show where the warning was created) + ✓ tests/authored-status-detail.test.ts (20 tests) 80ms + ✓ tests/cli-watch.test.ts (10 tests) 16354ms + ✓ flows check --watch > rechecks syntax errors, clears once, and returns the last refusal on Ctrl-C 1391ms + ✓ flows check --watch > streams JSON lines without ANSI, recovers after atomic saves, and exits zero after repair 1944ms + ✓ flows check --watch > coalesces 20 concurrent saves into at most two rechecks 1871ms + ✓ flows check --watch > watches transitive relative use imports, cycles, and nearest config changes 2376ms + ✓ flows check --watch > refreshes the import graph and notices missing imports being created 2438ms + ✓ flows check --watch > reloads authored TypeScript instead of reusing the first imported definition 1840ms + ✓ flows check --watch > detects a nearer config appearing and falls back after it is deleted 1843ms + ✓ flows check --watch > keeps watching after the target is deleted and recreated 1862ms + ✓ flows check --watch > queues changes during a slow check without overlapping checks 785ms + ✓ tests/budget-preflight.test.ts (25 tests) 16ms + ❯ tests/authored-parallel-agents.test.ts (8 tests | 8 failed) 45253ms + × authored steps under local workers with capacity > runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity 5031ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking 10045ms + → chain fixture daemon failed to start + × authored steps under local workers with capacity > runs agents in distinct working directories side by side (the kernel carries cwd) 5028ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > serializes agents whose cwd is a symlink alias of the same directory 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > serializes agents whose cwd is a directory nested inside the other 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > never starts queued agents once the body has failed 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > never starts a queued agent when the agent holding the only slot fails 5031ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored steps under local workers with capacity > parks the overflow when the body is not told the capacity (the defect this closes) 5027ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + ✓ tests/shipped-source-flow-header-provenance.test.ts (1 test) 2405ms + ✓ shipped-source flow header provenance > fails closed for unsafe authored and declarative headers 2404ms + ✓ tests/provider-trigger-contract.test.ts (7 tests) 984ms + ✓ provider trigger contract > accepts one subscription from each of five providers and refuses a bogus event on any of them 527ms + ✓ provider trigger contract > fails `flows check` before deployment and passes once the event is real 452ms + ✓ tests/work-package-consumer.test.ts (13 tests) 100ms + ❯ tests/authored-retried-child-resume-live.test.ts (2 tests | 2 failed) 40091ms + × an authored step whose child run retried an attempt > resumes after a kill mid-step and reads the terminal completion, not the crashed one 30044ms + → timed out waiting for the second step to start + × an authored step whose child run retried an attempt > reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt 10046ms + → chain fixture daemon failed to start + ✓ tests/helpers-fanout.test.ts (96 tests) 165ms + ❯ tests/yaml-local-agent-live.test.ts (9 tests | 9 failed) 4292ms + × YAML --local-agent through the built CLI and real daemon > runs with the checked step CLI and model and journals done 485ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-XPphJU/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-d131dc67f53a.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > runs with the checked named CLI and model and journals done 461ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-A9B8QR/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-479047aa49e9.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > runs with the checked flow CLI and model and journals done 479ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-2BaqZl/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-4d3a72f013c6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > runs with the checked project CLI and model and journals done 449ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-AN0zA2/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e5fc70a90f54.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > still parks without --local-agent 467ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ssoGrq/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-b1f428096849.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > resumes a parked spec run with --local-agent instead of parking identically again 506ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-xDgERa/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-fbd462b6d354.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > parks a second time with a different message when the attached worker is not eligible 506ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-lRHNia/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-a61e7f69083b.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > reports the agent process failure 471ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rqDlTi/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-388a48a24784.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × YAML --local-agent through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin 467ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-0iQKuc/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-9f60bb118e6d.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + ❯ tests/authored-step-graph-live.test.ts (1 test | 1 failed) 10048ms + × the authored step DAG through the live kernel > carries labels and predecessors on every index record and journal step, ids unchanged 10047ms + → chain fixture daemon failed to start + ✓ tests/generate-triggers.test.ts (7 tests) 1060ms + ✓ discovers new adapters, preserves exact event names, and prefers adapter-local mappings 327ms + ✓ tests/local-agent-remedy.test.ts (16 tests) 17ms + ❯ tests/authored-detail-live.test.ts (3 tests | 3 failed) 30117ms + × carries done("step_failed", { detail }) into the report, the journal and flows status 10044ms + → chain fixture daemon failed to start + × reports a detail a caller sliced through an emoji, instead of hanging on it 10032ms + → chain fixture daemon failed to start + × leaves a one-argument done("step_failed") reporting exactly as it always did 10040ms + → chain fixture daemon failed to start + ✓ tests/yaml-helpers.test.ts (34 tests) 98ms + ✓ tests/direct-run-failure.test.ts (12 tests) 19ms + ✓ tests/authored-agent-permissions.test.ts (27 tests) 1040ms + ❯ tests/named-gate-journal.test.ts (5 tests | 5 failed) 50194ms + × a lowered subprocess_gate journals the gate command's streams > keeps both tails on a FAILING gate, the case the operator has nothing else for 10052ms + → chain fixture daemon failed to start + × a lowered subprocess_gate journals the gate command's streams > keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable 10028ms + → chain fixture daemon failed to start + × a lowered subprocess_gate journals the gate command's streams > journals the diagnostic when the gate never reached the command 10035ms + → chain fixture daemon failed to start + × a lowered subprocess_gate journals the gate command's streams > persists what the gate printed before a timeout killed it 10045ms + → chain fixture daemon failed to start + × a gate on an agent step > journals the command's streams and surfaces them in the authored failure 10033ms + → chain fixture daemon failed to start + ❯ tests/live-event-activities.test.ts (2 tests | 2 failed) 5ms + × runs surface f.on through the local daemon event path and journals its buffered wake 4ms + → relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd + × survives SIGKILL after stream.appended and delivers the frame once after daemon restart 1ms + → relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd + ✓ tests/software-garden-babysitter-composition.test.ts (6 tests | 2 skipped) 41ms + ✓ tests/worker-lease.test.ts (7 tests) 13ms + ✓ tests/worker-lease-lost.test.ts (17 tests) 16ms + ✓ tests/webhook-hardening.test.ts (11 tests) 119ms + ❯ tests/worker-lease-drift-live.test.ts (3 tests | 3 failed) 30109ms + × worker lease under clock skew between worker and daemon > holds the lease when the worker clock runs 45s ahead of the daemon 10040ms + → chain fixture daemon failed to start + × worker lease under clock skew between worker and daemon > renews before the daemon deadline when the worker clock runs 75s behind the daemon 10031ms + → chain fixture daemon failed to start + × attempt accounting after a lost worker > does not report attempt=2/1 when the first attempt died uncharged 10038ms + → chain fixture daemon failed to start + ❯ tests/yaml-declared-streams-live.test.ts (8 tests | 8 failed) 3700ms + × YAML declared streams through the built CLI and real daemon > runs with the checked step CLI and model and journals done 464ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rkv6M2/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-ff23b4decd42.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML declared streams through the built CLI and real daemon > runs with the checked named CLI and model and journals done 469ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-FxxB6c/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-603d51377ea6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML declared streams through the built CLI and real daemon > runs with the checked flow CLI and model and journals done 481ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-iO2dza/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e9db6e3db5d2.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML declared streams through the built CLI and real daemon > runs with the checked project CLI and model and journals done 444ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ZoJCvo/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-5751a62fad72.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × YAML declared streams through the built CLI and real daemon > still parks without --local-agent 464ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-jMlL5U/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-2e161935ff3e.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × YAML declared streams through the built CLI and real daemon > reports the agent process failure 441ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-MIw9Im/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-f52947074200.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + × YAML declared streams through the built CLI and real daemon > resumes the journaled stream declarations after the input YAML changes 469ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-WZBfVD/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-cc9bed13df0e.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + × YAML declared streams through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin 467ms + → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-1OPPQB/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-c292a85b0ded.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + ✓ tests/human-to.test.ts (8 tests) 12ms + ❯ tests/authored-dispatch-live.test.ts (2 tests | 2 failed) 1204ms + × durable child flow dispatch > runs a declared child in the parent DAG and replays it without repeating effects 638ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-y36SgV/chain.flow.ts","socketPath":"/tmp/relayflowd-523f1a01b765.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + × durable child flow dispatch > lowers a named gate attached to the dispatch receipt 565ms + → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-1jBtTA/chain.flow.ts","socketPath":"/tmp/relayflowd-dcfcff56ce6e.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + ❯ tests/plugin-loader.test.ts (9 tests | 1 failed) 2141ms + × journals plugin effect input and receipt through the daemon 2036ms + → journal client: connect failed: connect ENOENT /tmp/relayflowd-eb7bb7c4c9a6.sock + ✓ tests/shipped-source-worker-invocations.test.ts (1 test) 582830ms + ✓ shipped-source worker invocation resolution > fails closed across direct, extracted, bound, mutable, and escaped callables 582828ms + ✓ tests/deploy.test.ts (11 tests) 5180ms + ✓ flows deploy file buckets > publishes the full signed layout byte-for-byte and redeploys as a noop 812ms + ✓ flows deploy file buckets > answers --json with one object per outcome 799ms + ✓ flows deploy file buckets > reports a refusal as JSON under --json 371ms + ✓ flows deploy file buckets > refuses a missing local bundle before creating the bucket 398ms + ✓ flows deploy file buckets > refuses an unreachable bucket before copying 400ms + ✓ flows deploy file buckets > refuses an unwritable bucket 403ms + ✓ flows deploy file buckets > refuses local tampering of spec.canonical.json 373ms + ✓ flows deploy file buckets > refuses local tampering of identity.json 369ms + ✓ flows deploy file buckets > refuses asset bundles instead of using daemon-relative files 402ms + ✓ flows deploy file buckets > never labels a corrupt existing deployment as a noop 815ms + ✓ tests/bin.test.ts (12 tests) 5402ms + ✓ built flows binary > prints the installed SDK version for --version 387ms + ✓ built flows binary > prints the installed SDK version for -V 376ms + ✓ built flows binary > keeps version flags strict when extra arguments are supplied 377ms + ✓ built flows binary > prints the installed SDK version from the standalone binary for --version 988ms + ✓ built flows binary > prints the installed SDK version from the standalone binary for -V 976ms + ✓ built flows binary > refuses through a symlink to the built artifact 383ms + ✓ built flows binary > refuses through a symlinked directory component 381ms + ✓ built flows binary > classifies a signal-terminated auth probe as probe_failed 388ms + ✓ built flows binary > classifies an unavailable PATH resolver as probe_failed 382ms + ✓ built flows binary > does not describe a present non-executable CLI as missing 371ms + ✓ built flows binary > runs one auth probe for three steps sharing a flow CLI 391ms + ✓ tests/babysitter-catalog-export.test.ts (14 tests) 763ms + ✓ Babysitter catalog artifact export > CLI refuses an existing output and leaves no file on validation failure 615ms + ✓ tests/communication.test.ts (10 tests) 13ms + ✓ tests/communication-review.test.ts (6 tests) 326ms + ✓ tests/transport-evidence-bounds.test.ts (7 tests) 9ms + ✓ tests/typed-output.test.ts (14 tests) 185ms + ❯ tests/authored-probe-cache.test.ts (5 tests | 5 failed) 50215ms + × authored run CLI probe cache > nine calls have no expired attempts at capacity 1 10041ms + → chain fixture daemon failed to start + × authored run CLI probe cache > nine calls have no expired attempts at capacity 4 10048ms + → chain fixture daemon failed to start + × authored run CLI probe cache > does not serialize nine starts behind nine probes, and probes again on a new run 10033ms + → chain fixture daemon failed to start + × authored run CLI probe cache > caches probe failures while refusing all nine calls 10048ms + → chain fixture daemon failed to start + × authored run CLI probe cache > shares probe results across agent calls too 10044ms + → chain fixture daemon failed to start + ❯ tests/effect-channel.test.ts (5 tests | 4 failed) 11ms + × journals one post across interruption before none 4ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × journals one post across interruption before record 0ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × journals one post across interruption before confirm 0ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + × journals one post across interruption before complete 0ms + → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + ✓ tests/worker-slots.test.ts (8 tests) 6ms + ✓ tests/json-schema-bound.test.ts (71 tests) 2173ms + ✓ JSON Schema termination bound > walks a deep schema with an explicit stack rather than recursion 1767ms + ✓ tests/communication-worker.test.ts (17 tests) 1719ms + ✓ tests/cloud-mirror-transport.test.ts (5 tests) 7ms + ✓ tests/mcp-lifecycle.test.ts (4 tests) 12ms + ❯ tests/step-lease.test.ts (36 tests | 4 failed) 40242ms + × f.run leases against the live kernel > enforces 10000 ms for 'sleep 5; printf ok' 10056ms + → chain fixture daemon failed to start + × f.run leases against the live kernel > enforces 40000 ms for 'sleep 31; printf ok' 10034ms + → chain fixture daemon failed to start + × f.run leases against the live kernel > enforces 30000 ms for 'sleep 31; printf ok' 10043ms + → chain fixture daemon failed to start + × f.run leases against the live kernel > enforces 100 ms for 'sleep 5' 10032ms + → chain fixture daemon failed to start + ✓ tests/model-selection.test.ts (10 tests) 16ms + ✓ tests/f-memory.test.ts (7 tests) 1109ms + ✓ tests/relayflowd-path.test.ts (10 tests) 6ms + ✓ tests/agent-artifacts.test.ts (9 tests) 57ms + ✓ tests/authored-plugin-effect.test.ts (6 tests) 56ms + ✓ tests/hosted-hardening.test.ts (11 tests) 50ms + ✓ tests/local-dev-ux.test.ts (8 tests) 35ms + ✓ tests/authored-preflight.test.ts (5 tests) 251ms + ✓ tests/deterministic-llm.test.ts (5 tests) 89ms + ↓ tests/relay-cli-surface-live.test.ts (3 tests | 3 skipped) + ✓ tests/shipped-source-models.test.ts (2 tests) 32043ms + ✓ first-party shipped source model pins > gives every TypeScript agent and LLM an explicit supported pair or a pinned named-agent declaration 32007ms + ✓ tests/authored-declined.test.ts (13 tests) 59ms + ✓ tests/resume-failure.test.ts (2 tests) 5ms + ✓ tests/dependency-validation.test.ts (6 tests) 829ms + ✓ dependency validation > accepts a valid 10,000-step reverse chain through every direct public boundary 518ms + ✓ tests/authored-hooks.test.ts (5 tests) 5ms + ✓ tests/input-binding.test.ts (12 tests) 203ms + ✓ tests/yaml-helper-effect.test.ts (4 tests) 79ms + ✓ tests/cloud-mirror-ledger.test.ts (7 tests) 1062ms + ✓ the mirror ledger > keeps the newest entries when the count cap bites 1050ms + ✓ tests/scope-preflight.test.ts (6 tests) 8ms + ✓ tests/run-from-digest.test.ts (6 tests) 4375ms + ✓ flows run digest input > submits the sealed canonical spec through the normal journal path without checkout 433ms + ✓ flows run digest input > uses a verified cache hit even after the bucket is removed 405ms + ✓ flows run digest input > resolves deploy.bucket from flows.json and honors explicit override 1186ms + ✓ flows run digest input > refuses an unconfigured bucket 784ms + ✓ flows run digest input > refuses tampered spec.canonical.json before creating run data 791ms + ✓ flows run digest input > refuses tampered identity.json before creating run data 775ms + ✓ tests/build-gate.test.ts (3 tests) 1173ms + ✓ flows build gates on flows check green (#318) > refuses a flow with an unresolvable named-agent CLI and leaves no artifacts 391ms + ✓ flows build gates on flows check green (#318) > --json emits one CheckReport object on stdout on refusal, exits 2, no artifacts 390ms + ✓ flows build gates on flows check green (#318) > builds the bundle on success (regression: gate must not block valid flows) 392ms + ✓ tests/scope-compiler.test.ts (25 tests) 10ms + ✓ tests/worker-cli-abort.test.ts (3 tests) 3740ms + ✓ stops claude and its process group when lease ownership is lost 1304ms + ✓ stops wrapper.mjs and its process group when lease ownership is lost 1403ms + ✓ fails closed when abort cannot prove the process group is gone 1032ms + ✓ tests/hn-poller.test.ts (6 tests) 6ms + ✓ tests/plugin-add.test.ts (7 tests) 1123ms + ✓ typechecks the augmented verb and rejects unknown namespaces 832ms + ✓ tests/authored-step-failed-exit.test.ts (3 tests) 9ms + ❯ tests/retried-step-failure.test.ts (1 test | 1 failed) 10048ms + × a retried step failing differently through the live kernel > reports both attempts and says the evidence differs 10047ms + → chain fixture daemon failed to start + ✓ tests/dir-watcher-poller.test.ts (6 tests) 4ms + ✓ tests/subscription-report.test.ts (8 tests) 5ms + ✓ tests/model-pricing.test.ts (10 tests) 5ms + ✓ tests/authored-use-loader.test.ts (6 tests) 852ms + ❯ tests/yaml-helper-live.test.ts (1 test | 1 failed) 426ms + × runs compiled YAML helpers through the built CLI and kernel effect journal 425ms + → {"ok":false,"command":"run","path":"/tmp/yaml-helper-live-J1oMCb/notify.yaml","resolutions":[],"diagnostics":[{"severity":"warning","kind":"unprovable_effects","stepId":"before","message":"Step \"before\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"warning","kind":"unprovable_effects","stepId":"after","message":"Step \"after\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-7f7d0b5a9175.sock","subscriptions":[]} +WARNING [unprovable_effects] Step "before" command "true" resolves, but its effects cannot be proven before execution. +WARNING [unprovable_effects] Step "after" command "true" resolves, but its effects cannot be proven before execution. +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be +0 // Object.is equality + ❯ tests/provider-trigger-executor.test.ts (4 tests | 3 failed) 19ms + × the kernel executes compiled 'app_mention' subscriptions with provider isolation and durable dedupe 9ms + → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × the kernel executes compiled 'reaction_added' subscriptions with provider isolation and durable dedupe 4ms + → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + × the kernel executes compiled 'pull_request' subscriptions with provider isolation and durable dedupe 4ms + → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ✓ tests/journal-client-completion.test.ts (6 tests) 105ms + ❯ tests/worker-lease-lost-live.test.ts (3 tests | 3 failed) 30113ms + × reports journal success after completion rejects with lease_conflict 10043ms + → chain fixture daemon failed to start + × reports journal success after completion rejects with run_terminal 10040ms + → chain fixture daemon failed to start + × reports journal success when a renewal rejects after completion landed 10029ms + → chain fixture daemon failed to start + ✓ tests/wrapper-artifacts-cwd.test.ts (2 tests) 67ms + ✓ tests/hello-deterministic.test.ts (5 tests) 16ms + ✓ tests/worker-lease-sweep.test.ts (4 tests) 16ms + ✓ tests/transcript-tail-close.test.ts (2 tests) 1354ms + ✓ a stalled transcript-tail close > does not hold the spawn open past its bounded window 687ms + ✓ a stalled tail close beside a transcript that finished > still journals the transcript pointer 666ms + ✓ tests/cli-adapter.test.ts (4 tests) 5ms + ✓ tests/transcript-exclusion-timeout.test.ts (1 test) 295ms + ✓ tests/work-package-validator.test.ts (7 tests) 5ms + ❯ tests/communication-mixed-resume.test.ts (1 test | 1 failed) 14ms + × resumes mixed ordinary and linked agents through the real daemon without stealing peer capacity 13ms + → ENOENT: no such file or directory, open '/tmp/communication-resume-UQsaki/data/connection.json' + ✓ tests/activity-preflight.test.ts (10 tests) 18ms + ✓ tests/cli-answer.test.ts (15 tests) 9ms + ✓ tests/bundle-preflight.test.ts (4 tests) 888ms + ✓ bundle execution preflight > ignores surrounding cache configuration on a verified cache hit 431ms + ✓ bundle execution preflight > uses the built alias for a nameless flow even in a digest-only cache directory 434ms + ✓ tests/agent-relay-hardening.test.ts (12 tests) 12ms + ✓ tests/communication-preflight.test.ts (13 tests) 39ms + ↓ tests/real-cli-adapters.test.ts (3 tests | 3 skipped) + ✓ tests/memoization.test.ts (57 tests) 51ms + ✓ tests/shipped-source-call-array-forwarding.test.ts (1 test) 2764ms + ✓ shipped-source call-array forwarding > maps rest indexes and nested same-helper actuals for workers and flows 2763ms + ❯ tests/authored-parallel-llm.test.ts (6 tests | 6 failed) 60237ms + × parallel llm capacity 1 > deduplicates concurrent preflight probes 10032ms + → chain fixture daemon failed to start + × parallel llm capacity 1 > completes nine calls without expired child leases during slow preflight 10043ms + → chain fixture daemon failed to start + × parallel llm capacity 1 > keeps the durable root lease alive across two cold models 10038ms + → chain fixture daemon failed to start + × parallel llm capacity 4 > deduplicates concurrent preflight probes 10057ms + → chain fixture daemon failed to start + × parallel llm capacity 4 > completes nine calls without expired child leases during slow preflight 10038ms + → chain fixture daemon failed to start + × parallel llm capacity 4 > keeps the durable root lease alive across two cold models 10029ms + → chain fixture daemon failed to start + ✓ tests/local-agent-environment.test.ts (8 tests) 6ms + ✓ tests/fs-descriptor.test.ts (1 test) 5ms + ✓ tests/reported-cost.test.ts (4 tests) 14ms + ✓ tests/parse-json-output.test.ts (7 tests) 3ms + ✓ tests/journal-client-subscriptions.test.ts (1 test) 7ms + ✓ tests/runtime-dependencies.test.ts (1 test) 218ms + ✓ tests/communication-environment-preflight.test.ts (6 tests) 5ms + ✓ tests/authored-model-probe-kinds.test.ts (2 tests) 157ms + ✓ tests/slack-writeback.test.ts (1 test) 257ms + ✓ tests/authored-surface-authority.test.ts (2 tests) 16ms + ❯ tests/authored-declined-live.test.ts (1 test | 1 failed) 10045ms + × runs an input guard and resumes its completed declined root without repeated effects 10044ms + → chain fixture daemon failed to start + ✓ tests/adapters/claude.test.ts (7 tests) 4ms + ✓ tests/adapters/codex.test.ts (7 tests) 5ms + ✓ tests/worker-cli-cwd.test.ts (2 tests) 339ms + ✓ runAgentCli — cwd propagation (flows#357) > omits cwd when not provided (inherits parent cwd) 322ms + ✓ tests/slack-block-kit.test.ts (5 tests) 78ms + ✓ tests/communication-history.test.ts (1 test) 3ms + ✓ tests/resume-worker-lease.test.ts (2 tests) 4ms + ✓ tests/adapters/registry.test.ts (4 tests) 4ms + ✓ tests/shipped-source-parameter-provenance.test.ts (1 test) 1581ms + ✓ shipped-source parameter provenance > keeps caller-supplied identifier and destructured keys unknown 1581ms + ✓ tests/direct-run-worker-lease.test.ts (2 tests) 6ms + ✓ tests/authored-declined-report.test.ts (6 tests) 7ms + ✓ tests/promise-ancestry.test.ts (2 tests) 299ms + ✓ tests/communication-refusal.test.ts (1 test) 13ms + ✓ tests/agent-cwd-validation.test.ts (2 tests) 391ms + ✓ declarative agent cwd > is refused by `flows check` on a YAML flow before anything runs 388ms + ✓ tests/cli-cloud-mirror-flag.test.ts (4 tests) 4ms + ✓ tests/catalog-plugins.test.ts (2 tests) 3ms + ✓ tests/check-command-cwd.test.ts (1 test) 21ms + ✓ tests/communication-lazy.test.ts (1 test) 4ms + ✓ tests/cli-progress-wait.test.ts (2 tests) 3ms + ✓ tests/bundle-transport.test.ts (20 tests) 2585ms + ✓ digest references > accepts and deploys the build output for hello 417ms + ✓ digest references > accepts and deploys the build output for Hello 395ms + ✓ digest references > accepts and deploys the build output for hello.world 464ms + ✓ digest references > accepts and deploys the build output for hello_world 413ms + ✓ digest references > accepts and deploys the build output for 123 481ms + ✓ digest references > accepts and deploys the build output for A_b.c-1 410ms + ↓ tests/run-digest-live.test.ts (1 test | 1 skipped) + ✓ tests/placement.test.ts (54 tests) 17ms + ✓ tests/canonical-tree.test.ts (1 test) 2ms + ✓ tests/preflight-run-cache.test.ts (1 test) 5ms + ✓ tests/local-agent-stream-selection.test.ts (1 test) 4ms + ✓ tests/communication-tools.test.ts (1 test) 98ms + ✓ tests/authored-admission.test.ts (2 tests) 4ms + ✓ tests/memory.test.ts (18 tests) 8ms + ✓ tests/worker-platform.test.ts (1 test) 3ms +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-qCfQI4/tarballs + ❯ tests/budget-authored-live.test.ts (2 tests | 2 failed) 10056ms + × authored budgets through the live kernel > retains the first completion and journals refusal of the next authored step 5030ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + × authored budgets through the live kernel > permits done after the last valid step crosses the limit 5026ms + → Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". + ✓ tests/run-digest.test.ts (4 tests) 1578ms + ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {invalid json 401ms + ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{}} 388ms + ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{"bucket":123}} 389ms + ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{"bucket":""}} 399ms +PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-qCfQI4/tarballs +node:internal/modules/run_main:107 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + +2 !== 4 + + at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) + at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: 2, + expected: 4, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v25.6.0 + ❯ tests/event-await-cli.test.ts (1 test | 1 failed) 536ms + × parks, restarts, and replays two event wakes through the actual CLI 536ms + → Command failed: /usr/local/share/nvm/versions/node/v25.6.0/bin/node /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs /home/daytona/.relayflow-v2-supervisor/durable/repository +node:internal/modules/run_main:107 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + +2 !== 4 + + at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) + at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: 2, + expected: 4, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v25.6.0 + +PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-qCfQI4/tarballs +PACK_OK relayflows@2.0.39: package/bin/flows.js +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz + +added 150 packages in 2s +$ /tmp/flows-cli-package-qCfQI4/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-qCfQI4/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ npm install -g --prefix /tmp/flows-cli-package-qCfQI4/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz + +added 294 packages in 4s +$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz + +added 140 packages in 2s +$ /tmp/flows-cli-package-qCfQI4/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-qCfQI4/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts +REQUIRES claude (agent "upgrader") +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CLI_PACKAGE_OK: local and global installs + ✓ tests/cli-package-gate.test.ts (1 test) 15553ms + ✓ checks authored flows with locally and globally installed release tarballs 15552ms + +⎯⎯⎯⎯⎯⎯ Failed Suites 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL tests/authored-node-runtime.test.ts [ tests/authored-node-runtime.test.ts ] +AssertionError: expected '1.3.6' to be '1.4.0' // Object.is equality + +Expected: "1.4.0" +Received: "1.3.6" + + ❯ tests/authored-node-runtime.test.ts:18:77 + 16| + 17| beforeAll(() => { + 18| expect(spawnSync(bun, ['--version'], { encoding: 'utf8' }).stdout.tr… + | ^ + 19| expect(existsSync(daemon), 'build the current kernel or set RELAYFLO… + 20| stage = mkdtempSync(join(tmpdir(), 'authored-standalone-build-')); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/184]⎯ + + FAIL tests/mcp.test.ts > authored MCP effects against the real kernel +Error: journal client: connect failed: connect ENOENT /tmp/relayflowd-30182afda8b5.sock + ❯ Socket.onError src/journal-client.ts:105:16 + 103| socket.removeAllListeners(); + 104| this.failAll(err); + 105| reject(new Error(`journal client: connect failed: ${err.messag… + | ^ + 106| }; + 107| socket.once('error', onError); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/184]⎯ + +⎯⎯⎯⎯⎯⎯ Failed Tests 182 ⎯⎯⎯⎯⎯⎯ + + FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > journals the files the agent wrote, including under a dot-directory, and every artifact gate passes on that journal +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-818f28a002b6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/agent-artifacts-live.test.ts:136:58 + 134| f.done('success');`); + 135| const result = f.invoke(); + 136| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 137| const report = JSON.parse(result.stdout) as { runId: string; compl… + 138| expect(report.completionReason).toBe('success'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/184]⎯ + + FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run when the artifact_exists gate names a file the agent did not write +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-49a91e18aab6.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-artifacts-live.test.ts:174:58 + 172| f.done('success');`); + 173| const result = f.invoke(); + 174| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 175| const report = JSON.parse(result.stdout) as { runId: string; diagn… + 176| expect(report.diagnostics.map(d => d.kind)).toContain('step_failed… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/184]⎯ + + FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run with the author reason when a predicate gate returns false, journaling the verdict +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-203b5b281663.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-artifacts-live.test.ts:191:58 + 189| f.done('success');`); + 190| const result = f.invoke(); + 191| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 192| const report = JSON.parse(result.stdout) as { runId: string; diagn… + 193| const messages = report.diagnostics.map(d => `${d.kind}: ${d.messa… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/184]⎯ + + FAIL tests/agent-artifacts-live.test.ts > review follow-ups > applies a predicate gate on a helper step too, and journals its verdict +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-8b915e830e15.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-artifacts-live.test.ts:214:58 + 212| f.done('success');`); + 213| const result = f.invoke(); + 214| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 215| const report = JSON.parse(result.stdout) as { runId: string; diagn… + 216| expect(report.diagnostics.map(d => d.kind)).toContain('gate_failed… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/184]⎯ + + FAIL tests/agent-artifacts-live.test.ts > review follow-ups > records predicate verdicts on the root run so a resume reuses them instead of re-running the closure +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-d7317185e75d.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/agent-artifacts-live.test.ts:225:58 + 223| f.done('success');`); + 224| const result = f.invoke(); + 225| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 226| const report = JSON.parse(result.stdout) as { runId: string }; + 227| const client = new JournalClient(socketPathFor(join(f.root, 'data'… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/184]⎯ + + FAIL tests/agent-cwd-live.test.ts > agents drive two checkouts under one run root > runs each CLI in its declared directory, and the run is not refused as an unknown field +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-f5385a489530.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/agent-cwd-live.test.ts:145:58 + 143| // kernel and was accepted, rather than coming back a protocol err… + 144| expect(result.stdout + result.stderr).not.toContain('unknown field… + 145| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 146| const report = JSON.parse(result.stdout) as { runId: string; compl… + 147| expect(report.completionReason).toBe('success'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/184]⎯ + + FAIL tests/agent-cwd-live.test.ts > agents drive two checkouts under one run root > gates on an artifact path relative to the agent directory +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-81e36b029a60.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/agent-cwd-live.test.ts:176:58 + 174| f.done('success');`); + 175| const result = f.invoke(); + 176| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 177| }, 120_000); + 178| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/184]⎯ + + FAIL tests/agent-cwd-live.test.ts > a declaration this contract cannot honour is refused at its own edge > refuses a path that climbs out of the run root without starting a run at all +AssertionError: expected 'RELAYFLOWD_BIN is set to "/home/dayto…' to contain 'f.agent options.cwd: expected a run-r…' + +Expected: "f.agent options.cwd: expected a run-root-relative path" +Received: "RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored." + + ❯ tests/agent-cwd-live.test.ts:192:8 + 190| // option — not the kernel's `unknown field "cwd"` relayed back af… + 191| expect(report.diagnostics.map(d => d.message).join('\n')) + 192| .toContain('f.agent options.cwd: expected a run-root-relative pa… + | ^ + 193| expect(said).not.toContain('unknown field "cwd"'); + 194| // And no run exists to inspect: the declaration was refused befor… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/184]⎯ + + FAIL tests/agent-cwd-live.test.ts > a declaration this contract cannot honour is refused at its own edge > fails the step with the reason when the directory is not there, rather than running somewhere else +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-8c4edf8d97fd.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-cwd-live.test.ts:204:58 + 202| f.done('success');`); + 203| const result = f.invoke(); + 204| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 205| const report = JSON.parse(result.stdout) as { + 206| runId: string; diagnostics: Array<{ kind: string; stderrTail?: s… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/184]⎯ + + FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > preserves structured agent failure details and its completed root index +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-84050d4a5bdb.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-transcript-live.test.ts:132:58 + 130| const f = fixture(`await ${operation}; f.done('success');`, 'probe… + 131| const result = f.invoke(); + 132| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 133| const report = JSON.parse(result.stdout) as { runId: string; rootR… + 134| expect(report.rootRunId).toBeTruthy(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/184]⎯ + + FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > preserves structured llm failure details and its completed root index +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-fca2cd1b809e.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-transcript-live.test.ts:132:58 + 130| const f = fixture(`await ${operation}; f.done('success');`, 'probe… + 131| const result = f.invoke(); + 132| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 133| const report = JSON.parse(result.stdout) as { runId: string; rootR… + 134| expect(report.rootRunId).toBeTruthy(); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/184]⎯ + + FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > journals the digest in trajectory_tail on a successful agent step and writes the file it points at +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-f77a6fe24d83.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/agent-transcript-live.test.ts:159:58 + 157| f.done('success');`, 'probed ok'); + 158| const result = f.invoke(); + 159| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 160| const report = JSON.parse(result.stdout) as { runId: string; compl… + 161| expect(report.completionReason).toBe('success'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/184]⎯ + + FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > on a failed agent step, names the failure and the transcript in the terminal diagnostic, redacted +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-3bce1808e9aa.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/agent-transcript-live.test.ts:194:58 + 192| f.done('success');`, `gave up: ${secret}`, 1, secret); + 193| const result = f.invoke(); + 194| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 195| const report = JSON.parse(result.stdout) as { runId: string; diagn… + 196| // An authored step's evidence reaches the root report as the chil… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > resolves to the journaled exit code instead of ending the flow +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:25:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > resolves a green command through the same policy +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:61:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > leaves the default fatal and still resolving to the stdout string +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:79:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a timeout, which recorded no exit code to report +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:97:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a declared named gate on a recorded step whose producer succeeded + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a declared named gate on a default step whose producer succeeded +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:123:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > hands a predicate gate the recorded result, not the stdout string +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:151:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/184]⎯ + + FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > refuses a policy value the kernel enum does not name, before journaling anything +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-advisory-run-live.test.ts:168:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/184]⎯ + + FAIL tests/authored-completion-recovery.test.ts > reuses the committed detail after the redaction environment rotates +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-completion-recovery.test.ts:83:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/184]⎯ + + FAIL tests/authored-completion-recovery.test.ts > commits the verdict once, and a clean re-execution reads it back +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-completion-recovery.test.ts:123:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/184]⎯ + + FAIL tests/authored-completion-recovery.test.ts > recovers a committed verdict when a no-detail retry follows a pre-marker loss +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-completion-recovery.test.ts:156:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/184]⎯ + + FAIL tests/authored-completion-recovery.test.ts > reuses the admitted marker when a no-detail retry follows a post-marker loss +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-completion-recovery.test.ts:197:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/184]⎯ + + FAIL tests/authored-completion-recovery.test.ts > leaves a one-argument done() writing nothing to the verdict stream +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-completion-recovery.test.ts:225:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/184]⎯ + + FAIL tests/authored-declined-live.test.ts > runs an input guard and resumes its completed declined root without repeated effects +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-declined-live.test.ts:11:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/184]⎯ + + FAIL tests/authored-detail-live.test.ts > carries done("step_failed", { detail }) into the report, the journal and flows status +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-detail-live.test.ts:23:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/184]⎯ + + FAIL tests/authored-detail-live.test.ts > reports a detail a caller sliced through an emoji, instead of hanging on it +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-detail-live.test.ts:95:3 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/184]⎯ + + FAIL tests/authored-detail-live.test.ts > leaves a one-argument done("step_failed") reporting exactly as it always did +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-detail-live.test.ts:115:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/184]⎯ + + FAIL tests/authored-dispatch-live.test.ts > durable child flow dispatch > runs a declared child in the parent DAG and replays it without repeating effects +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-y36SgV/chain.flow.ts","socketPath":"/tmp/relayflowd-523f1a01b765.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/authored-dispatch-live.test.ts:49:55 + 47| const first = fixture.invoke('run', '--no-observer-link', '--json'… + 48| fixture.flowPath, '--input', '{}'); + 49| expect(first.status, first.stderr + first.stdout).toBe(0); + | ^ + 50| const report = JSON.parse(first.stdout) as { runId: string; comple… + 51| expect(report.completionReason).toBe('success'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/184]⎯ + + FAIL tests/authored-dispatch-live.test.ts > durable child flow dispatch > lowers a named gate attached to the dispatch receipt +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-1jBtTA/chain.flow.ts","socketPath":"/tmp/relayflowd-dcfcff56ce6e.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/authored-dispatch-live.test.ts:127:49 + 125| const run = fixture.invoke('run', '--no-observer-link', '--json', … + 126| fixture.flowPath, '--input', '{}'); + 127| expect(run.status, run.stderr + run.stdout).toBe(1); + | ^ + 128| expect(run.stdout).toContain('dispatch-1.gate'); + 129| expect(run.stdout).toContain('retries_exhausted'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/184]⎯ + + FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > snapshots structured posts into the journal and delivers the same Block Kit body +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-flow-slack.test.ts:48:67 + 46| + 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 50| children.push(daemon); + ❯ tests/authored-flow-slack.test.ts:73:30 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/184]⎯ + + FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > journals exactly one effect with the authored params and typed receipt, without network +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-flow-slack.test.ts:48:67 + 46| + 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 50| children.push(daemon); + ❯ tests/authored-flow-slack.test.ts:104:30 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/184]⎯ + + FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > replays after SIGKILL before confirm with the same token and one successful completion + FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > replays after SIGKILL before complete with the same token and one successful completion +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-flow-slack.test.ts:48:67 + 46| + 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 50| children.push(daemon); + ❯ tests/authored-flow-slack.test.ts:165:25 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/184]⎯ + + FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > writes two files for two calls and supports dm, reply, and react +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-flow-slack.test.ts:48:67 + 46| + 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 50| children.push(daemon); + ❯ tests/authored-flow-slack.test.ts:216:30 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/184]⎯ + + FAIL tests/authored-helpers.test.ts > lowers the named acceptance helpers and Slack to confirmed journal effects +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-helpers.test.ts:50:67 + 48| + 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 52| children.push(daemon); + ❯ tests/authored-helpers.test.ts:70:28 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/184]⎯ + + FAIL tests/authored-helpers.test.ts > runs every available provider through the real kernel and resumes completed effects without a second write +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-helpers.test.ts:50:67 + 48| + 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 52| children.push(daemon); + ❯ tests/authored-helpers.test.ts:91:28 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/184]⎯ + + FAIL tests/authored-helpers.test.ts > replays after SIGKILL before confirm with the same token and one successful completion + FAIL tests/authored-helpers.test.ts > replays after SIGKILL before complete with the same token and one successful completion +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-helpers.test.ts:50:67 + 48| + 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 52| children.push(daemon); + ❯ tests/authored-helpers.test.ts:130:25 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/184]⎯ + + FAIL tests/authored-helpers.test.ts > journals provider failure with worker_error and never confirms the effect +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ start tests/authored-helpers.test.ts:50:67 + 48| + 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… + 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… + 52| children.push(daemon); + ❯ tests/authored-helpers.test.ts:181:57 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/184]⎯ + + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > runs agents in distinct working directories side by side (the kernel carries cwd) + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > serializes agents whose cwd is a symlink alias of the same directory + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > serializes agents whose cwd is a directory nested inside the other + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > never starts queued agents once the body has failed + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > never starts a queued agent when the agent holding the only slot fails + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > parks the overflow when the body is not told the capacity (the defect this closes) + FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > reports the command that failed and what it printed + FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > carries the same facts structurally, not only rendered into the message + FAIL tests/budget-authored-live.test.ts > authored budgets through the live kernel > retains the first completion and journals refusal of the next authored step + FAIL tests/budget-authored-live.test.ts > authored budgets through the live kernel > permits done after the last valid step crosses the limit + FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars + FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged + FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > still counts an unpriced step toward a token budget + FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > accrues a priced step and stops the run when it crosses the dollar budget + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs a dollar-budgeted authored Claude agent with the same default used by preflight + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > fails invalid LLM output before the next step: not JSON + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > fails invalid LLM output before the next step: {"message":7} + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > retains tagged-template text output + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: null + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: [1,2] + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: "hello" + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > refuses a model outside flows.json before a run or adapter execution + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > passes a declarative verified value through an agent into a deterministic artifact + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > journals a missing optional field as a failure before the consuming command executes +Error: Test timed out in 5000ms. +If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/184]⎯ + + FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ slowAgents tests/authored-parallel-agents.test.ts:38:18 + ❯ tests/authored-parallel-agents.test.ts:82:40 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/184]⎯ + + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > deduplicates concurrent preflight probes + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > deduplicates concurrent preflight probes +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ setup tests/authored-parallel-llm.test.ts:40:18 + ❯ tests/authored-parallel-llm.test.ts:81:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/184]⎯ + + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > completes nine calls without expired child leases during slow preflight + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > completes nine calls without expired child leases during slow preflight +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ setup tests/authored-parallel-llm.test.ts:40:18 + ❯ tests/authored-parallel-llm.test.ts:93:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/184]⎯ + + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > keeps the durable root lease alive across two cold models + FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > keeps the durable root lease alive across two cold models +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ setup tests/authored-parallel-llm.test.ts:40:18 + ❯ tests/authored-parallel-llm.test.ts:106:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/184]⎯ + + FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > nine calls have no expired attempts at capacity 1 + FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > nine calls have no expired attempts at capacity 4 +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 + ❯ tests/authored-probe-cache.test.ts:76:58 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/184]⎯ + + FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > does not serialize nine starts behind nine probes, and probes again on a new run +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 + ❯ tests/authored-probe-cache.test.ts:96:39 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/184]⎯ + + FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > caches probe failures while refusing all nine calls +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 + ❯ tests/authored-probe-cache.test.ts:111:48 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/184]⎯ + + FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > shares probe results across agent calls too +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 + ❯ tests/authored-probe-cache.test.ts:129:48 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/184]⎯ + + FAIL tests/authored-retried-child-resume-live.test.ts > an authored step whose child run retried an attempt > resumes after a kill mid-step and reads the terminal completion, not the crashed one +Error: timed out waiting for the second step to start + ❯ until tests/authored-retried-child-resume-live.test.ts:22:38 + 20| const deadline = Date.now() + timeoutMs; + 21| while (!predicate()) { + 22| if (Date.now() > deadline) throw new Error(`timed out waiting for … + | ^ + 23| await new Promise(resolve => setTimeout(resolve, 25)); + 24| } + ❯ tests/authored-retried-child-resume-live.test.ts:57:5 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/184]⎯ + + FAIL tests/authored-retried-child-resume-live.test.ts > an authored step whose child run retried an attempt > reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-retried-child-resume-live.test.ts:107:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/184]⎯ + + FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > names the failing case from the middle of a real test run +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-run-failure-evidence.test.ts:94:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/184]⎯ + + FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > keeps the evidence when the failure is relabelled as a timeout +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-run-failure-evidence.test.ts:156:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/184]⎯ + + FAIL tests/authored-run-failure-evidence.test.ts > the child index after the process that wrote it is gone > still names every child, with its own run id, after a daemon restart +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-run-failure-evidence.test.ts:231:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/184]⎯ + + FAIL tests/authored-step-graph-live.test.ts > the authored step DAG through the live kernel > carries labels and predecessors on every index record and journal step, ids unchanged +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/authored-step-graph-live.test.ts:53:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/184]⎯ + + FAIL tests/communication-mixed-resume.test.ts > resumes mixed ordinary and linked agents through the real daemon without stealing peer capacity +Error: ENOENT: no such file or directory, open '/tmp/communication-resume-UQsaki/data/connection.json' + ❯ tests/communication-mixed-resume.test.ts:54:35 + 52| } finally { + 53| clearTimeout(timeout); state.release(); client.close(); + 54| try { process.kill(JSON.parse(readFileSync(join(dataDir, 'connecti… + | ^ + 55| finally { rmSync(root, { recursive: true, force: true }); } + 56| } + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/184]⎯ + + FAIL tests/effect-channel.test.ts > journals one post across interruption before none + FAIL tests/effect-channel.test.ts > journals one post across interruption before record + FAIL tests/effect-channel.test.ts > journals one post across interruption before confirm + FAIL tests/effect-channel.test.ts > journals one post across interruption before complete +AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality + +- Expected ++ Received + +- true ++ false + + ❯ tests/effect-channel.test.ts:63:67 + 61| + 62| it.each(['none', 'record', 'confirm', 'complete'] as const)('journals … + 63| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… + | ^ + 64| const dir = mkdtempSync(join(tmpdir(), 'channel-effect-')); director… + 65| let active = await start(dir); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[58/184]⎯ + + FAIL tests/event-await-cli.test.ts > parks, restarts, and replays two event wakes through the actual CLI +Error: Command failed: /usr/local/share/nvm/versions/node/v25.6.0/bin/node /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs /home/daytona/.relayflow-v2-supervisor/durable/repository +node:internal/modules/run_main:107 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + +2 !== 4 + + at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) + at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: 2, + expected: 4, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v25.6.0 + + ❯ expectPark tests/fixtures/event-await-cli-probe.mjs:58:10 + ❯ tests/event-await-cli.test.ts:9:18 + 7| + 8| it('parks, restarts, and replays two event wakes through the actual CL… + 9| const output = execFileSync(process.execPath, [resolve(here, 'fixtur… + | ^ + 10| resolve(here, '../../..')], { encoding: 'utf8', timeout: 90_000 }); + 11| expect(output).toContain('E2E_PASS:'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[59/184]⎯ + + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > resumes an interrupted durable authored root without replaying completed flagship effects +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/flow-executor-chain.test.ts:186:20 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[60/184]⎯ + + FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > flows run consumes YAML bindings and resume reuses the original journal output +AssertionError: expected null to be +0 // Object.is equality + +- Expected: +0 + ++ Received: +null + + ❯ tests/flow-executor-chain.test.ts:292:40 + 290| writeFileSync(specPath, JSON.stringify(compiled)); + 291| const first = spawnSync(fixture.binary, ['--data-dir', fixture.dat… + 292| expect(first.status, first.stderr).toBe(0); + | ^ + 293| expect(existsSync(artifact)).toBe(false); + 294| const runId = JSON.parse(first.stdout).run_id; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[61/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > executes the exact capability-only handler for a queued receipt + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > executes the exact capability-only handler for a duplicate receipt +Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + 501| + 502| function unsupported(message: string): never { + 503| throw new PluginError('plugin_unsupported', message); + | ^ + 504| } + 505| + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:221:26 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[62/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > launches through the captured process primitive after builtin export synchronization +AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:283:11 + 281| input: descriptor(), + 282| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… + 283| })).resolves.toEqual({ completionReason: 'success', capability… + | ^ + 284| } finally { + 285| process.execPath = originalExecPath; + +Caused by: Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:277:22 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[63/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > ignores inherited launcher overrides and decodes manifests with the captured Buffer intrinsic +AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:373:11 + 371| input: descriptor('delivery-options'), + 372| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… + 373| })).resolves.toEqual({ completionReason: 'success', capability… + | ^ + 374| } finally { + 375| Buffer.prototype.toString = bufferToString; + +Caused by: Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:367:22 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[64/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > streams verified bytes when the live store is replaced and no writable staging path exists +AssertionError: promise rejected "Error: Hosted extension sandbox exited wi… { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:431:7 + 429| return { receiptId: 'receipt-1', status: 'queued' }; + 430| } }, + 431| })).resolves.toEqual({ completionReason: 'success', capabilityCall… + | ^ + 432| expect(calls).toBe(1); + 433| expect(readFileSync(join(installed.directory, 'babysitter.flow.ts'… + +Caused by: Error: Hosted extension sandbox exited without a valid completion (exit 1): /tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:20 +if (child.error) throw child.error; + ^ + +Error: spawnSync /usr/bin/bwrap ENOENT + at Object.spawnSync (node:internal/child_process:1103:20) + at spawnSync (node:child_process:911:24) + at Object. (/tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:19:15) + at Module._compile (node:internal/modules/cjs/loader:1809:14) + at Object..js (node:internal/modules/cjs/loader:1940:10) + at Module.load (node:internal/modules/cjs/loader:1530:32) + at Module._load (node:internal/modules/cjs/loader:1332:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) + at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) + at node:internal/main/run_main_module:33:47 { + errno: -2, + code: 'ENOENT', + syscall: 'spawnSync /usr/bin/bwrap', + path: '/usr/bin/bwrap', + spawnargs: [ + '--unshare-all', + '--die-with-parent', + '--new-session', + '--clearenv', + '--cap-drop', + 'ALL', + '--dir', + '/usr', + '--ro-bind', + '/usr/lib', + '/usr/lib', + '--ro-bind', + '/usr/lib64', + '/usr/lib64', + '--ro-bind', + '/usr/lib', + '/lib', + '--ro-bind', + '/usr/lib64', + '/lib64', + '--proc', + '/proc', + '--dev', + '/dev', + '--tmpfs', + '/tmp', + '--dir', + '/runtime', + '--dir', + '/extension', + '--dir', + '/extension/node_modules', + '--dir', + '/extension/node_modules/@relayflows', + '--dir', + '/extension/node_modules/@relayflows/surface', + '--dir', + '/extension/node_modules/@relayflows/surface/dist', + '--dir', + '/extension/node_modules/@relayflows/surface/dist/helpers', + '--dir', + '/extension/node_modules/@relayflows/surface/dist/triggers', + '--dir', + '/extension/src', + '--perms', + '0500', + '--ro-bind-data', + '4', + '/runtime/node', + '--perms', + '0400', + '--ro-bind-data', + '5', + '/runtime/runner.mjs', + '--perms', + '0400', + '--ro-bind-data', + '6', + '/extension/node_modules/@relayflows/surface/package.json', + '--perms', + '0400', + '--ro-bind-data', + '7', + '/extension/node_modules/@relayflows/surface/index.js', + '--perms', + '0400', + '--ro-bind-data', + '8', + '/extension/node_modules/@relayflows/surface/runtime.js', + '--perms', + '0400', + '--ro-bind-data', + '9', + '/extension/node_modules/@relayflows/surface/dist/flow.js', + '--perms', + '0400', + '--ro-bind-data', + '10', + '/extension/node_modules/@relayflows/surface/dist/helpers/providers.js', + '--perms', + '0400', + '--ro-bind-data', + '11', + '/extension/node_modules/@relayflows/surface/dist/provider-trigger.js', + '--perms', + '0400', + '--ro-bind-data', + '12', + '/extension/node_modules/@relayflows/surface/dist/schedule.js', + '--perms', + '0400', + '--ro-bind-data', + '13', + '/extension/node_modules/@relayflows/surface/dist/triggers.js', + '--perms', + '0400', + '--ro-bind-data', + '14', + '/extension/node_modules/@relayflows/surface/dist/triggers/github.js', + '--perms', + ... 27 more items + ] +} + +Node.js v25.6.0 + + ❯ Object. ../../../../../../../tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:19:15 + ❯ refuse src/hosted-extension-protocol.ts:135:21 + ❯ ChildProcess. src/hosted-extension-protocol.ts:234:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[65/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > mounts pinned private Surface bytes when the live package changes before launch +AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:456:7 + 454| return { receiptId: 'receipt-1', status: 'queued' }; + 455| } }, + 456| })).resolves.toEqual({ completionReason: 'success', capabilityCall… + | ^ + 457| expect(calls).toBe(1); + 458| expect(readFileSync(join(surfaceRoot, 'dist/flow.js'), 'utf8')).to… + +Caused by: Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:443:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[66/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > refuses oversized Surface files through the bounded descriptor reader +AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } + +- Expected ++ Received + +- Object { ++ PluginError { + "code": "plugin_unsupported", +- "message": StringContaining "cannot read pinned Surface runtime flow.js", + } + + ❯ tests/hosted-extension-isolation.test.ts:489:5 + 487| }); + 488| let calls = 0; + 489| await expect(runVerifiedNativeExtensionSandbox({ + | ^ + 490| artifact: await artifact(), + 491| manifest: validateFlowExtensionManifest(manifest()), + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[67/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > shields verified Surface files before async settlement +AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:532:9 + 530| surfaceRoot, + 531| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-1'… + 532| })).resolves.toEqual({ completionReason: 'success', capabilityCa… + | ^ + 533| } finally { + 534| if (previous === undefined) delete (Array.prototype as { then?: … + +Caused by: Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:525:20 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[68/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > preserves a typed host refusal while disclosing only a fixed marker to the child +AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to be Error: private Cloud policy detail { code: '…' } // Object.is equality + +- Expected ++ Received + +- [Error: private Cloud policy detail] ++ [Error: bubblewrap is unavailable] + + ❯ tests/hosted-extension-isolation.test.ts:560:5 + 558| provider: 'github', eventType: 'pull_request.labeled', deliveryI… + 559| }); + 560| await expect(runVerifiedNativeExtensionSandbox({ + | ^ + 561| artifact: await artifact(source), manifest: validateFlowExtensio… + 562| babysitterTurn: { queue: async () => { throw refusal; } }, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[69/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > denies ambient credentials, host files, writes, network, subprocesses, and undeclared context verbs +Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + 501| + 502| function unsupported(message: string): never { + 503| throw new PluginError('plugin_unsupported', message); + | ^ + 504| } + 505| + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:624:13 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[70/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > enforces OS address-space and data bounds on native Buffer allocation +AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } + +- Expected ++ Received + +- Object { ++ PluginError { + "code": "plugin_unsupported", +- "message": StringMatching /(?:Failed to allocate memory|Array buffer allocation failed)/u, + } + + ❯ tests/hosted-extension-isolation.test.ts:646:5 + 644| }); + 645| let calls = 0; + 646| await expect(runVerifiedNativeExtensionSandbox({ + | ^ + 647| artifact: installed, + 648| manifest: validateFlowExtensionManifest(manifest()), + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[71/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > blocks extra handler fields and authority-bearing receipt fields at the parent port +AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + +- Expected ++ Received + +- Object { +- "code": "plugin_event_unroutable", ++ PluginError { ++ "code": "plugin_unsupported", + } + + ❯ tests/hosted-extension-isolation.test.ts:675:5 + 673| }); + 674| let calls = 0; + 675| await expect(runVerifiedNativeExtensionSandbox({ + | ^ + 676| artifact: await artifact(source), manifest: validateFlowExtensio… + 677| babysitterTurn: { queue: async () => { calls += 1; return { rece… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[72/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > constructs adapter authority with the captured freeze intrinsic +Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + 501| + 502| function unsupported(message: string): never { + 503| throw new PluginError('plugin_unsupported', message); + | ^ + 504| } + 505| + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:745:22 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[73/184]⎯ + + FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > writes the Surface manifest and protocol without inherited toJSON behavior +AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving + ❯ tests/hosted-extension-isolation.test.ts:788:11 + 786| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… + 787| timeoutMs: 3_000, + 788| })).resolves.toEqual({ completionReason: 'success', capability… + | ^ + 789| } finally { + 790| if (previous === undefined) delete (Object.prototype as { toJS… + +Caused by: Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-isolation.test.ts:781:22 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[74/184]⎯ + + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > uses captured JSON intrinsics for the complete parent boundary +Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + 501| + 502| function unsupported(message: string): never { + 503| throw new PluginError('plugin_unsupported', message); + | ^ + 504| } + 505| + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-protocol.test.ts:326:24 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[75/184]⎯ + + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different PR frame with zero adapter calls + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different delivery frame with zero adapter calls + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different event frame with zero adapter calls +AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } + +- Expected ++ Received + +- Object { +- "code": "plugin_event_unroutable", ++ PluginError { ++ "code": "plugin_unsupported", + } + + ❯ tests/hosted-extension-protocol.test.ts:447:5 + 445| ])('rejects an import-time %s frame with zero adapter calls', async … + 446| let calls = 0; + 447| await expect(runVerifiedNativeExtensionSandbox({ + | ^ + 448| artifact: await artifact(hostileImport([frame, { type: 'error', … + 449| manifest: validateFlowExtensionManifest(manifest()), dispatch: d… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[76/184]⎯ + + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects two forged calls after the authoritative first outcome settles + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > waits for a pending adapter to reject after a forged child error + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > waits for a pending adapter to resolve after a forged child error + FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > returns a typed adapter rejection even when the hostile child hangs +Error: hostile child did not invoke the adapter + ❯ Timeout._onTimeout tests/hosted-extension-protocol.test.ts:135:45 + 133| async function waitForInvocation(invoked: Promise): Promise((resolve, reject) => { + 135| const timeout = setTimeout(() => reject(new Error('hostile child d… + | ^ + 136| void invoked.then(() => { clearTimeout(timeout); resolve(); }, rej… + 137| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[77/184]⎯ + + FAIL tests/human-live.test.ts > f.human against a real daemon > parks with the question, refuses wrong answers, records one, and resumes to success +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"ask.flow.ts","socketPath":"/tmp/relayflowd-350b6838c3ee.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/human-live.test.ts:83:55 + 81| const f = fixture(); + 82| const first = f.run(); + 83| expect(first.status, first.stderr + first.stdout).toBe(3); + | ^ + 84| const parked = JSON.parse(first.stdout); + 85| expect(parked).toMatchObject({ ok: false, status: 'parked', + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[78/184]⎯ + + FAIL tests/human-live.test.ts > f.human against a real daemon > a "no" is a value the body branches on: declined, exit 0, no effect +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/human-live.test.ts:146:55 + 144| const f = fixture(); + 145| const first = f.text('run', 'ask.flow.ts', '--input', '{"plan":"v2… + 146| expect(first.status, first.stderr + first.stdout).toBe(3); + | ^ + 147| // The question is rendered as a park, never as a failed step. + 148| expect(first.stderr).toContain('⏸ human-2 (human)'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[79/184]⎯ + + FAIL tests/human-live.test.ts > f.human against a real daemon > refuses to answer a run the daemon does not know +AssertionError: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/human-live.test.ts:166:28 + 164| const f = fixture(); + 165| // Start the daemon with a real run first so the refusal is the ru… + 166| expect(f.run().status).toBe(3); + | ^ + 167| const missing = f.answer('01UNKNOWNRUN00000000000000', 'human-1', … + 168| expect(missing.status, missing.stderr + missing.stdout).toBe(2); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[80/184]⎯ + + FAIL tests/live-event-activities.test.ts > runs surface f.on through the local daemon event path and journals its buffered wake +Error: relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd + ❯ startDaemon tests/live-event-activities.test.ts:121:38 + 119| + 120| async function startDaemon(dataDir: string): Promise { + 121| if (!existsSync(RELAYFLOWD)) throw new Error(`relayflowd binary is m… + | ^ + 122| const daemon = spawn(RELAYFLOWD, ['--data-dir', dataDir, 'serve'], {… + 123| daemons.push(daemon); + ❯ tests/live-event-activities.test.ts:39:9 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[81/184]⎯ + + FAIL tests/live-event-activities.test.ts > survives SIGKILL after stream.appended and delivers the frame once after daemon restart +Error: relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd + ❯ startDaemon tests/live-event-activities.test.ts:121:38 + 119| + 120| async function startDaemon(dataDir: string): Promise { + 121| if (!existsSync(RELAYFLOWD)) throw new Error(`relayflowd binary is m… + | ^ + 122| const daemon = spawn(RELAYFLOWD, ['--data-dir', dataDir, 'serve'], {… + 123| daemons.push(daemon); + ❯ tests/live-event-activities.test.ts:88:29 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[82/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > runs hn-monitor analyze-story end-to-end via a stub agent CLI (gate 2 clause 2 demo) +AssertionError: expected { …(12) } to match object { output: { …(3) }, …(1) } +(22 matching properties omitted from actual) + +- Expected ++ Received + + Object { +- "output": Object { +- "reasoning": "stub agent runtime — deterministic output for gate-2 clause-2 demo", +- "relevance_score": 5, +- "story_title": "stub", +- }, ++ "output": null, + "verification": Object { +- "gate": "json_schema", +- "verdict": "pass", ++ "gate": "execution", ++ "verdict": "fail", + }, + } + + ❯ tests/live-kernel.test.ts:657:36 + 655| && (entry as { step_id?: string }).step_id === 'analyze-story', + 656| ) as { payload: { output: unknown; verification: unknown } } | und… + 657| expect(stepCompleted?.payload).toMatchObject({ + | ^ + 658| output: { + 659| story_title: 'stub', + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[83/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > hn-monitor analyze-story FAILS verification when the CLI omits required schema fields +AssertionError: expected { …(12) } to match object { …(3) } +(21 matching properties omitted from actual) + +- Expected ++ Received + + Object { +- "completionReason": "retries_exhausted", ++ "completionReason": "worker_error", + "output": null, + "verification": Object { +- "gate": "json_schema", ++ "gate": "execution", + "verdict": "fail", + }, + } + + ❯ tests/live-kernel.test.ts:752:36 + 750| // its verification record names the json_schema rejection. The re… + 751| // parsed value is nulled before the completion is persisted. + 752| expect(stepCompleted?.payload).toMatchObject({ + | ^ + 753| completionReason: 'retries_exhausted', + 754| output: null, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[84/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > agent step preserves the CliResult wrapper as output when the CLI emits non-JSON text +AssertionError: expected null not to be null + ❯ tests/live-kernel.test.ts:823:24 + 821| // here (parseJsonOutput returned null on non-JSON stdout) and + 822| // these assertions would all fail. + 823| expect(output).not.toBeNull(); + | ^ + 824| expect(output.exit_code).toBe(0); + 825| expect(output.stdout_tail).toContain('looked at the story'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[85/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker exposes wake_context to the CLI via RELAYFLOW_WAKE_CONTEXT env var (real analyzer prerequisite) +TypeError: Cannot read properties of null (reading 'story_title') + ❯ tests/live-kernel.test.ts:891:42 + 889| ) as { payload: { output: { story_title: string; reasoning: string… + 890| expect(stepCompleted).toBeDefined(); + 891| expect(stepCompleted!.payload.output.story_title).toBe(`echoed:${s… + | ^ + 892| expect(stepCompleted!.payload.output.reasoning).toContain(String(s… + 893| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[86/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_WAKE_CONTEXT UNSET when the run has no wake_context (undefined-vs-null pin) +TypeError: Cannot read properties of null (reading 'env_present') + ❯ tests/live-kernel.test.ts:958:38 + 956| ) as { payload: { output: { env_present: boolean } } } | undefined; + 957| expect(completed).toBeDefined(); + 958| expect(completed!.payload.output.env_present).toBe(false); + | ^ + 959| + 960| delete process.env.RELAYFLOW_WAKE_CONTEXT; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[87/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_MODEL UNSET when the step declares no model +TypeError: Cannot read properties of null (reading 'story_title') + ❯ tests/live-kernel.test.ts:1194:38 + 1192| expect(completed).toBeDefined(); + 1193| // UNSET, not EMPTY and not the leaked parent value. + 1194| expect(completed!.payload.output.story_title).toBe('model:UNSET'); + | ^ + 1195| + 1196| delete process.env.RELAYFLOW_MODEL; + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[88/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > hn-monitor analyze-story reaches done through the real Claude analyzer CLI +Error: LIVE_ANALYZER_UNAVAILABLE: "/home/daytona/.relayflow-v2-supervisor/durable/repository/testdata/preflight/analyze-story-claude-cli" does not identify as relayflows-agent-cli-v1 — failing because gate-2 acceptance requires the real analyzer to execute. Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is not gate evidence. + ❯ tests/live-kernel.test.ts:1223:15 + 1221| const notice = `LIVE_ANALYZER_UNAVAILABLE: ${readiness.detail}`; + 1222| if (process.env['RELAYFLOWS_ALLOW_ANALYZER_SKIP'] !== '1') { + 1223| throw new Error( + | ^ + 1224| `${notice} — failing because gate-2 acceptance requires the … + 1225| + 'Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is … + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[89/184]⎯ + + FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > starts exactly one daemon when two runs race for one empty data dir +AssertionError: WARNING [unprovable_effects] Step "greet" command "echo" resolves, but its effects cannot be proven before execution. +WARNING [unprovable_effects] Step "shout" command "echo" resolves, but its effects cannot be proven before execution. +WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] No relayflowd binary could be found. Install the runtime package for this host (@relayflows/runtime-linux-x64), or set RELAYFLOWD_BIN to a relayflowd executable. Tried: /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/relayflowd. +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/live-kernel.test.ts:1388:40 + 1386| ]); + 1387| + 1388| expect(first.status, first.stderr).toBe(0); + | ^ + 1389| expect(second.status, second.stderr).toBe(0); + 1390| expect(first.stdout).toContain('completionReason: success'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[90/184]⎯ + + FAIL tests/live-kernel.test.ts > a relayflow can be scheduled: tick source against live relayflowd > a tick spawns a real run whose step reports the SCHEDULED instant +AssertionError: expected null to deeply equal { schedule_id: 'heartbeat-1m', …(3) } + +- Expected: +Object { + "lag_ms": 43000, + "schedule_id": "heartbeat-1m", + "scheduled_for_ms": 1764000000000, + "slot": 29400000, +} + ++ Received: +null + + ❯ tests/live-kernel.test.ts:1739:39 + 1737| // The bound: the run reports the grid instant and its own lag, so… + 1738| // backfilled run can tell it is running for a slot from the past. + 1739| expect(completed!.payload.output).toEqual({ + | ^ + 1740| schedule_id: 'heartbeat-1m', + 1741| slot: 29_400_000, + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[91/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > dispatches through the wrapper and keeps --json stdout report-shaped +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-2ffe8381248e.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/local-agent-live.test.ts:87:58 + 85| const f = fixture(); + 86| const result = f.invoke('--json'); + 87| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 88| expect(JSON.parse(result.stdout)).toMatchObject({ ok: true, status… + 89| expect(readFileSync(f.marker, 'utf8')).toBe('hello'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[92/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > runs beyond the initial 30-second lease without a second invocation +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-19f964cc734b.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/local-agent-live.test.ts:95:58 + 93| const f = fixture(0, undefined, 35_000); + 94| const result = f.invoke('--json'); + 95| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 96| expect(JSON.parse(result.stdout)).toMatchObject({ ok: true, comple… + 97| expect(readFileSync(f.marker, 'utf8')).toBe('hello'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[93/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > renders actual agent completion in text output +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/local-agent-live.test.ts:101:58 + 99| it('renders actual agent completion in text output', () => { + 100| const result = fixture().invoke(); + 101| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 102| expect(result.stderr).toContain('✓ agent-1 (agent) [agent: complet… + 103| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[94/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > returns a failed run when the agent process fails +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/local-agent-live.test.ts:106:58 + 104| it('returns a failed run when the agent process fails', () => { + 105| const result = fixture(7).invoke(); + 106| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 107| expect(result.stderr).toContain('✗ agent-1'); + 108| expect(result.stderr).not.toContain('[agent: completed]'); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[95/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > prints a remedy that runs the parked authored flow to completion +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-0eeb4a81fa4b.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/local-agent-live.test.ts:129:58 + 127| const parked = f.park(input, '--json', '--no-observer-link'); + 128| + 129| expect(parked.status, parked.stderr + parked.stdout).toBe(3); + | ^ + 130| expect(JSON.parse(parked.stdout)).toMatchObject({ status: 'parked'… + 131| const message = JSON.parse(parked.stdout).diagnostics.at(-1).messa… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[96/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > prints a remedy that runs, for a run started from an input file too long to be one +AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-e66e0580aab9.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/local-agent-live.test.ts:166:58 + 164| const parked = f.park(inputPath, '--json', '--no-observer-link'); + 165| + 166| expect(parked.status, parked.stderr + parked.stdout).toBe(3); + | ^ + 167| const rootRunId = JSON.parse(parked.stdout).rootRunId as string; + 168| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[97/184]⎯ + + FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > refuses a workspace it cannot pin before invoking the agent +AssertionError: expected 'REFUSED [relayflowd_not_found] RELAYF…' to contain 'stream-only' + +- Expected ++ Received + +- stream-only ++ REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. ++ + + ❯ tests/local-agent-live.test.ts:194:27 + 192| const result = f.invoke(); + 193| expect(result.status, result.stderr + result.stdout).toBe(2); + 194| expect(result.stderr).toContain('stream-only'); + | ^ + 195| expect(existsSync(f.marker)).toBe(false); + 196| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[98/184]⎯ + + FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > keeps both tails on a FAILING gate, the case the operator has nothing else for +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/named-gate-journal.test.ts:53:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[99/184]⎯ + + FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/named-gate-journal.test.ts:70:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[100/184]⎯ + + FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > journals the diagnostic when the gate never reached the command +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/named-gate-journal.test.ts:87:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[101/184]⎯ + + FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > persists what the gate printed before a timeout killed it +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/named-gate-journal.test.ts:109:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[102/184]⎯ + + FAIL tests/named-gate-journal.test.ts > a gate on an agent step > journals the command's streams and surfaces them in the authored failure +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/named-gate-journal.test.ts:134:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[103/184]⎯ + + FAIL tests/plugin-loader.test.ts > journals plugin effect input and receipt through the daemon +Error: journal client: connect failed: connect ENOENT /tmp/relayflowd-eb7bb7c4c9a6.sock + ❯ Socket.onError src/journal-client.ts:105:16 + 103| socket.removeAllListeners(); + 104| this.failAll(err); + 105| reject(new Error(`journal client: connect failed: ${err.messag… + | ^ + 106| }; + 107| socket.once('error', onError); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[104/184]⎯ + + FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'app_mention' subscriptions with provider isolation and durable dedupe + FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'reaction_added' subscriptions with provider isolation and durable dedupe + FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'pull_request' subscriptions with provider isolation and durable dedupe +Error: spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ submit tests/provider-trigger-executor.test.ts:43:89 + 41| steps: [{ id: 'effect', type: 'deterministic', command: `printf ac… + 42| })))); + 43| const submit = (envelope: unknown, key: string, executor = source.na… + | ^ + 44| '--data-dir', dir, 'run', spec, '--event', JSON.stringify({ type: … + 45| ], { encoding: 'utf8', stdio: 'pipe' })) as { matched: boolean; dedu… + ❯ tests/provider-trigger-executor.test.ts:50:12 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[105/184]⎯ + + FAIL tests/retried-step-failure.test.ts > a retried step failing differently through the live kernel > reports both attempts and says the evidence differs +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/retried-step-failure.test.ts:28:19 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[106/184]⎯ + + FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 10000 ms for 'sleep 5; printf ok' + FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 40000 ms for 'sleep 31; printf ok' + FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 30000 ms for 'sleep 31; printf ok' + FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 100 ms for 'sleep 5' +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/step-lease.test.ts:104:23 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[107/184]⎯ + + FAIL tests/webhook-live.test.ts > executes and deduplicates 'app_mention' only for its provider and matching payload + FAIL tests/webhook-live.test.ts > executes and deduplicates 'reaction_added' only for its provider and matching payload + FAIL tests/webhook-live.test.ts > executes and deduplicates 'pull_request' only for its provider and matching payload +Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ until tests/webhook-live.test.ts:39:9 + 37| const deadline = Date.now() + 10_000; + 38| while (Date.now() < deadline) { if (await predicate()) return; await… + 39| throw new Error(`webhook integration timed out: ${detail()}`); + | ^ + 40| } + 41| async function daemon(dir: string): Promise { + ❯ daemon tests/webhook-live.test.ts:43:3 + ❯ tests/webhook-live.test.ts:100:3 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[108/184]⎯ + + FAIL tests/webhook-live.test.ts > flows serve-webhook writes JSON before the daemon starts, then journals and archives exactly once +Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ until tests/webhook-live.test.ts:39:9 + 37| const deadline = Date.now() + 10_000; + 38| while (Date.now() < deadline) { if (await predicate()) return; await… + 39| throw new Error(`webhook integration timed out: ${detail()}`); + | ^ + 40| } + 41| async function daemon(dir: string): Promise { + ❯ daemon tests/webhook-live.test.ts:43:3 + ❯ tests/webhook-live.test.ts:121:3 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[109/184]⎯ + + FAIL tests/webhook-live.test.ts > replays a dropped file after SIGKILL before spawn +Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ until tests/webhook-live.test.ts:39:9 + 37| const deadline = Date.now() + 10_000; + 38| while (Date.now() < deadline) { if (await predicate()) return; await… + 39| throw new Error(`webhook integration timed out: ${detail()}`); + | ^ + 40| } + 41| async function daemon(dir: string): Promise { + ❯ daemon tests/webhook-live.test.ts:43:3 + ❯ tests/webhook-live.test.ts:137:17 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[110/184]⎯ + + FAIL tests/webhook-live.test.ts > resumes the same journal after SIGKILL after spawn and before acknowledgement +Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT + ❯ until tests/webhook-live.test.ts:39:9 + 37| const deadline = Date.now() + 10_000; + 38| while (Date.now() < deadline) { if (await predicate()) return; await… + 39| throw new Error(`webhook integration timed out: ${detail()}`); + | ^ + 40| } + 41| async function daemon(dir: string): Promise { + ❯ daemon tests/webhook-live.test.ts:43:3 + ❯ tests/webhook-live.test.ts:150:17 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[111/184]⎯ + + FAIL tests/worker-lease-drift-live.test.ts > worker lease under clock skew between worker and daemon > holds the lease when the worker clock runs 45s ahead of the daemon +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ leasedAgentRun tests/worker-lease-drift-live.test.ts:41:21 + ❯ tests/worker-lease-drift-live.test.ts:73:50 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[112/184]⎯ + + FAIL tests/worker-lease-drift-live.test.ts > worker lease under clock skew between worker and daemon > renews before the daemon deadline when the worker clock runs 75s behind the daemon +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ leasedAgentRun tests/worker-lease-drift-live.test.ts:41:21 + ❯ tests/worker-lease-drift-live.test.ts:84:50 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[113/184]⎯ + + FAIL tests/worker-lease-drift-live.test.ts > attempt accounting after a lost worker > does not report attempt=2/1 when the first attempt died uncharged +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/worker-lease-drift-live.test.ts:105:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[114/184]⎯ + + FAIL tests/worker-lease-lost-live.test.ts > reports journal success after completion rejects with lease_conflict + FAIL tests/worker-lease-lost-live.test.ts > reports journal success after completion rejects with run_terminal +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/worker-lease-lost-live.test.ts:15:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[115/184]⎯ + + FAIL tests/worker-lease-lost-live.test.ts > reports journal success when a renewal rejects after completion landed +Error: chain fixture daemon failed to start + ❯ Object.connect tests/flow-chain-fixture.ts:53:13 + 51| } catch { client.close(); await new Promise(resolve => setTime… + 52| } + 53| throw new Error('chain fixture daemon failed to start'); + | ^ + 54| }, + 55| /** + ❯ tests/worker-lease-lost-live.test.ts:59:18 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[116/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked step CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rkv6M2/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-ff23b4decd42.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:63:58 + 61| const f = fixture(source); + 62| const result = f.invoke(); + 63| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 64| const report = JSON.parse(result.stdout); + 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[117/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked named CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-FxxB6c/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-603d51377ea6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:63:58 + 61| const f = fixture(source); + 62| const result = f.invoke(); + 63| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 64| const report = JSON.parse(result.stdout); + 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[118/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked flow CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-iO2dza/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e9db6e3db5d2.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:63:58 + 61| const f = fixture(source); + 62| const result = f.invoke(); + 63| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 64| const report = JSON.parse(result.stdout); + 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[119/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked project CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ZoJCvo/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-5751a62fad72.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:63:58 + 61| const f = fixture(source); + 62| const result = f.invoke(); + 63| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 64| const report = JSON.parse(result.stdout); + 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[120/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > still parks without --local-agent +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-jMlL5U/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-2e161935ff3e.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:94:58 + 92| it('still parks without --local-agent', () => { + 93| const result = fixture().invoke(false); + 94| expect(result.status, result.stderr + result.stdout).toBe(3); + | ^ + 95| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… + 96| expect(result.stderr).toContain("flows run --local-agent 'flows/he… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[121/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > reports the agent process failure +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-MIw9Im/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-f52947074200.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:101:58 + 99| it('reports the agent process failure', () => { + 100| const result = fixture('step', 'fail').invoke(); + 101| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 102| expect(JSON.parse(result.stdout)).toMatchObject({ ok: false, statu… + 103| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[122/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > resumes the journaled stream declarations after the input YAML changes +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-WZBfVD/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-cc9bed13df0e.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:108:58 + 106| const f = fixture(); + 107| const parked = f.invoke(false); + 108| expect(parked.status, parked.stderr + parked.stdout).toBe(3); + | ^ + 109| const first = JSON.parse(parked.stdout); + 110| const client = new JournalClient(first.socketPath); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[123/184]⎯ + + FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-1OPPQB/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-c292a85b0ded.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-declared-streams-live.test.ts:126:58 + 124| it('preserves declared workspace surfaces that the local worker cann… + 125| const result = fixture('step', 'hello', true).invoke(); + 126| expect(result.status, result.stderr + result.stdout).toBe(3); + | ^ + 127| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… + 128| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[124/184]⎯ + + FAIL tests/yaml-helper-live.test.ts > runs compiled YAML helpers through the built CLI and kernel effect journal +AssertionError: {"ok":false,"command":"run","path":"/tmp/yaml-helper-live-J1oMCb/notify.yaml","resolutions":[],"diagnostics":[{"severity":"warning","kind":"unprovable_effects","stepId":"before","message":"Step \"before\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"warning","kind":"unprovable_effects","stepId":"after","message":"Step \"after\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-7f7d0b5a9175.sock","subscriptions":[]} +WARNING [unprovable_effects] Step "before" command "true" resolves, but its effects cannot be proven before execution. +WARNING [unprovable_effects] Step "after" command "true" resolves, but its effects cannot be proven before execution. +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-helper-live.test.ts:58:56 + 56| }); + 57| const result = invoke('run', path, '--local-agent'); + 58| expect(result.status, result.stdout + result.stderr).toBe(0); + | ^ + 59| const report = JSON.parse(result.stdout); + 60| expect(report).toMatchObject({ status: 'completed', completionReason… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[125/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked step CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-XPphJU/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-d131dc67f53a.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:75:58 + 73| const f = fixture(source); + 74| const result = f.invoke(); + 75| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 76| const report = JSON.parse(result.stdout); + 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[126/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked named CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-A9B8QR/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-479047aa49e9.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:75:58 + 73| const f = fixture(source); + 74| const result = f.invoke(); + 75| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 76| const report = JSON.parse(result.stdout); + 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[127/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked flow CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-2BaqZl/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-4d3a72f013c6.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:75:58 + 73| const f = fixture(source); + 74| const result = f.invoke(); + 75| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 76| const report = JSON.parse(result.stdout); + 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[128/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked project CLI and model and journals done +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-AN0zA2/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e5fc70a90f54.sock","subscriptions":[]} +: expected 2 to be +0 // Object.is equality + +- Expected ++ Received + +- 0 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:75:58 + 73| const f = fixture(source); + 74| const result = f.invoke(); + 75| expect(result.status, result.stderr + result.stdout).toBe(0); + | ^ + 76| const report = JSON.parse(result.stdout); + 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[129/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > still parks without --local-agent +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ssoGrq/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-b1f428096849.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:96:58 + 94| it('still parks without --local-agent', () => { + 95| const result = fixture().invoke(false); + 96| expect(result.status, result.stderr + result.stdout).toBe(3); + | ^ + 97| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… + 98| expect(result.stderr).toContain("flows run --local-agent 'flows/he… + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[130/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > resumes a parked spec run with --local-agent instead of parking identically again +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-xDgERa/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-fbd462b6d354.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:114:58 + 112| const f = fixture(); + 113| const parked = f.invoke(false); + 114| expect(parked.status, parked.stderr + parked.stdout).toBe(3); + | ^ + 115| const { runId } = JSON.parse(parked.stdout); + 116| const first = parkMessage(parked); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[131/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > parks a second time with a different message when the attached worker is not eligible +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-lRHNia/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-a61e7f69083b.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:139:58 + 137| const f = fixture('step', 'hello', true); + 138| const parked = f.invoke(false); + 139| expect(parked.status, parked.stderr + parked.stdout).toBe(3); + | ^ + 140| const { runId } = JSON.parse(parked.stdout); + 141| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[132/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > reports the agent process failure +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rqDlTi/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-388a48a24784.sock","subscriptions":[]} +: expected 2 to be 1 // Object.is equality + +- Expected ++ Received + +- 1 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:153:58 + 151| it('reports the agent process failure', () => { + 152| const result = fixture('step', 'fail').invoke(); + 153| expect(result.status, result.stderr + result.stdout).toBe(1); + | ^ + 154| expect(JSON.parse(result.stdout)).toMatchObject({ ok: false, statu… + 155| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[133/184]⎯ + + FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin +AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json +REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. +{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-0iQKuc/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-9f60bb118e6d.sock","subscriptions":[]} +: expected 2 to be 3 // Object.is equality + +- Expected ++ Received + +- 3 ++ 2 + + ❯ tests/yaml-local-agent-live.test.ts:159:58 + 157| it('preserves declared workspace surfaces that the local worker cann… + 158| const result = fixture('step', 'hello', true).invoke(); + 159| expect(result.status, result.stderr + result.stdout).toBe(3); + | ^ + 160| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… + 161| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[134/184]⎯ + +⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ + +Vitest caught 81 unhandled errors during the test run. +This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. + +⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ +Error: bubblewrap is unavailable + ❯ unsupported src/hosted-extension-sandbox.ts:503:9 + 501| + 502| function unsupported(message: string): never { + 503| throw new PluginError('plugin_unsupported', message); + | ^ + 504| } + 505| + ❯ executable src/hosted-extension-sandbox.ts:484:18 + ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 + ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 + ❯ tests/hosted-extension-protocol.test.ts:471:17 + ❯ node_modules/@vitest/runner/dist/index.js:533:5 + ❯ runTest node_modules/@vitest/runner/dist/index.js:1056:11 + ❯ runSuite node_modules/@vitest/runner/dist/index.js:1205:15 + ❯ runSuite node_modules/@vitest/runner/dist/index.js:1205:15 + ❯ runFiles node_modules/@vitest/runner/dist/index.js:1262:5 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { code: 'plugin_unsupported' } +This error originated in "tests/hosted-extension-protocol.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "rejects two forged calls after the authoritative first outcome settles". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd', path: '/home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-mcp-daemon-5wlbr4', 'serve' ] } +This error originated in "tests/mcp.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "authored MCP effects against the real kernel". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-xvpslp/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-IFpT2Q/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs a dollar-budgeted authored Claude agent with the same default used by preflight". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-6jrlkC/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "fails invalid LLM output before the next step: not JSON". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-4XDEdQ/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "fails invalid LLM output before the next step: {"message":7}". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-JsPNYc/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "retains tagged-template text output". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-fzw5uD/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: null". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Y4QWu7/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: [1,2]". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-b4TCqm/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: "hello"". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-oREBW2/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "refuses a model outside flows.json before a run or adapter execution". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-qcE7k6/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + ❯ runNextTicks node:internal/process/task_queues:69:3 + ❯ processTimers node:internal/timers:538:9 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-FupV7R/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "resumes an interrupted durable authored root without replaying completed flagship effects". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-M7J3pX/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "passes a declarative verified value through an agent into a deterministic artifact". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-9BB2i5/data', 'serve' ] } +This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "journals a missing optional field as a failure before the consuming command executes". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dqIUZW/data', 'serve' ] } +This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports the command that failed and what it printed". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-uhNgHm/data', 'serve' ] } +This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "names the failing case from the middle of a real test run". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-zJ1b8A/data', 'serve' ] } +This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "carries the same facts structurally, not only rendered into the message". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-CkyoJK/data', 'serve' ] } +This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "keeps the evidence when the failure is relabelled as a timeout". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-U9XRo2/data', 'serve' ] } +This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "still names every child, with its own run id, after a daemon restart". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-yPgPYv/data', 'serve' ] } +This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reuses the committed detail after the redaction environment rotates". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-PRn9w7/data', 'serve' ] } +This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-D9a9Oq/data', 'serve' ] } +This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "commits the verdict once, and a clean re-execution reads it back". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-owjUcH/data', 'serve' ] } +This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-pSanTJ/data', 'serve' ] } +This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "still counts an unpriced step toward a token budget". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Nns61Q/data', 'serve' ] } +This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "recovers a committed verdict when a no-detail retry follows a pre-marker loss". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-bA6ll3/data', 'serve' ] } +This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "accrues a priced step and stops the run when it crosses the dollar budget". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-m5sMU1/data', 'serve' ] } +This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reuses the admitted marker when a no-detail retry follows a post-marker loss". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-2ELg5Y/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "resolves to the journaled exit code instead of ending the flow". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nj69I2/data', 'serve' ] } +This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "leaves a one-argument done() writing nothing to the verdict stream". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-b8Ad8d/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "resolves a green command through the same policy". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-WtLBUR/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "leaves the default fatal and still resolving to the stdout string". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-eMk37b/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "still fails a timeout, which recorded no exit code to report". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-24Ikyd/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "still fails a declared named gate on a recorded step whose producer succeeded". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-mDnJzV/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "still fails a declared named gate on a default step whose producer succeeded". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-jvaNRB/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "hands a predicate gate the recorded result, not the stdout string". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dYvj0p/data', 'serve' ] } +This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "refuses a policy value the kernel enum does not name, before journaling anything". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-jiqcDp/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-UdkuFa/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-fTRrrG/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs agents in distinct working directories side by side (the kernel carries cwd)". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-KJKa7m/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "serializes agents whose cwd is a symlink alias of the same directory". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-QVUycL/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "serializes agents whose cwd is a directory nested inside the other". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nmYBtf/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "never starts queued agents once the body has failed". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-NkgYsK/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "never starts a queued agent when the agent holding the only slot fails". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-0cMFDA/data', 'serve' ] } +This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "parks the overflow when the body is not told the capacity (the defect this closes)". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-faLVTU/data', 'serve' ] } +This error originated in "tests/authored-retried-child-resume-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-JNkv2g/data', 'serve' ] } +This error originated in "tests/authored-step-graph-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "carries labels and predecessors on every index record and journal step, ids unchanged". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-CHClSY/data', 'serve' ] } +This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "keeps both tails on a FAILING gate, the case the operator has nothing else for". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-3Tbot5/data', 'serve' ] } +This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Mo1Ujv/data', 'serve' ] } +This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "carries done("step_failed", { detail }) into the report, the journal and flows status". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ATZsAn/data', 'serve' ] } +This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "journals the diagnostic when the gate never reached the command". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-FeuqLB/data', 'serve' ] } +This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports a detail a caller sliced through an emoji, instead of hanging on it". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dUQXuW/data', 'serve' ] } +This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "persists what the gate printed before a timeout killed it". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-8hfXNR/data', 'serve' ] } +This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "leaves a one-argument done("step_failed") reporting exactly as it always did". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-DMidJl/data', 'serve' ] } +This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "journals the command's streams and surfaces them in the authored failure". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-MvAkYy/data', 'serve' ] } +This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "holds the lease when the worker clock runs 45s ahead of the daemon". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Cl9Bgl/data', 'serve' ] } +This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "nine calls have no expired attempts at capacity 1". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-LvI4Rv/data', 'serve' ] } +This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "renews before the daemon deadline when the worker clock runs 75s behind the daemon". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ynhAT3/data', 'serve' ] } +This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "nine calls have no expired attempts at capacity 4". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ZQIi8r/data', 'serve' ] } +This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "does not report attempt=2/1 when the first attempt died uncharged". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-cY6K4L/data', 'serve' ] } +This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "does not serialize nine starts behind nine probes, and probes again on a new run". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/plugin-load-s9hTQw/data', 'serve' ] } +This error originated in "tests/plugin-loader.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "journals plugin effect input and receipt through the daemon". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-sCRrSn/data', 'serve' ] } +This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "enforces 10000 ms for 'sleep 5; printf ok'". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Xs671t/data', 'serve' ] } +This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "caches probe failures while refusing all nine calls". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-356w83/data', 'serve' ] } +This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "enforces 40000 ms for 'sleep 31; printf ok'". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nCxLVY/data', 'serve' ] } +This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "shares probe results across agent calls too". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-AxcrXd/data', 'serve' ] } +This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "enforces 30000 ms for 'sleep 31; printf ok'". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-l2XnQy/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "deduplicates concurrent preflight probes". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-6KhNI6/data', 'serve' ] } +This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "enforces 100 ms for 'sleep 5'". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-LXeJoy/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "completes nine calls without expired child leases during slow preflight". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-5537Yz/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "keeps the durable root lease alive across two cold models". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-RbQo8K/data', 'serve' ] } +This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports journal success after completion rejects with lease_conflict". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ffeuku/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "deduplicates concurrent preflight probes". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-tqKnTV/data', 'serve' ] } +This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports journal success after completion rejects with run_terminal". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-3XgXEk/data', 'serve' ] } +This error originated in "tests/retried-step-failure.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports both attempts and says the evidence differs". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-AX91iS/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "completes nine calls without expired child leases during slow preflight". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-mhAM3p/data', 'serve' ] } +This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "reports journal success when a renewal rejects after completion landed". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Tq1iTN/data', 'serve' ] } +This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "keeps the durable root lease alive across two cold models". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-vBnjzq/data', 'serve' ] } +This error originated in "tests/authored-declined-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "runs an input guard and resumes its completed declined root without repeated effects". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-2FEoG2/data', 'serve' ] } +This error originated in "tests/budget-authored-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "retains the first completion and journals refusal of the next authored step". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. + +⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ +Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT + ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 + ❯ onErrorNT node:internal/child_process:483:16 + ❯ processTicksAndRejections node:internal/process/task_queues:90:21 + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ +Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-zAREiM/data', 'serve' ] } +This error originated in "tests/budget-authored-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. +The latest test that might've caused the error is "permits done after the last valid step crosses the limit". It might mean one of the following: +- The error was thrown, while Vitest was running this test. +- If the error occurred after the test had been completed, this was the last documented test before it was thrown. +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ + + Test Files 41 failed | 202 passed | 3 skipped (246) + Tests 182 failed | 3530 passed | 30 skipped (3742) + Errors 81 errors + Start at 07:01:21 + Duration 698.51s (transform 6.61s, setup 1.04s, collect 70.87s, tests 1957.35s, environment 29ms, prepare 9.67s) + + +exit=1 diff --git a/evidence/cli-runtime-dependencies/surface-build.txt b/evidence/cli-runtime-dependencies/surface-build.txt new file mode 100644 index 00000000..dd6b923f --- /dev/null +++ b/evidence/cli-runtime-dependencies/surface-build.txt @@ -0,0 +1,7 @@ +$ npm run build --prefix packages/surface + +> @relayflows/surface@2.0.39 build +> tsc + + +exit=0 diff --git a/evidence/cli-runtime-dependencies/typecheck-tests.txt b/evidence/cli-runtime-dependencies/typecheck-tests.txt new file mode 100644 index 00000000..c43886d9 --- /dev/null +++ b/evidence/cli-runtime-dependencies/typecheck-tests.txt @@ -0,0 +1,7 @@ +$ npm run typecheck:tests --prefix packages/sdk + +> @relayflows/sdk@2.0.39 typecheck:tests +> tsc -p tsconfig.tests.json + + +exit=0 diff --git a/evidence/cli-runtime-dependencies/typecheck.txt b/evidence/cli-runtime-dependencies/typecheck.txt new file mode 100644 index 00000000..7e62c885 --- /dev/null +++ b/evidence/cli-runtime-dependencies/typecheck.txt @@ -0,0 +1,7 @@ +$ npm run typecheck --prefix packages/sdk + +> @relayflows/sdk@2.0.39 typecheck +> tsc --noEmit && tsc -p tsconfig.type-tests.json + + +exit=0 diff --git a/packages/sdk/tests/cli-package-gate.test.ts b/packages/sdk/tests/cli-package-gate.test.ts new file mode 100644 index 00000000..53bac3a8 --- /dev/null +++ b/packages/sdk/tests/cli-package-gate.test.ts @@ -0,0 +1,13 @@ +import { execFileSync } from 'node:child_process'; +import { fileURLToPath } from 'node:url'; +import { it } from 'vitest'; + +const skip = process.env.FLOWS_SKIP_PACKAGE_GATE === '1'; +if (skip) console.error('FLOWS_SKIP_PACKAGE_GATE=1: skipping network-dependent packed CLI installation test; packaging is unverified.'); +it.skipIf(skip)('checks authored flows with locally and globally installed release tarballs', () => { + execFileSync(process.execPath, ['scripts/cli-package-gate.mjs'], { + cwd: fileURLToPath(new URL('../../..', import.meta.url)), + stdio: 'inherit', + timeout: 115_000, + }); +}, 120_000); diff --git a/packages/sdk/tests/runtime-dependencies.test.ts b/packages/sdk/tests/runtime-dependencies.test.ts new file mode 100644 index 00000000..db7120ee --- /dev/null +++ b/packages/sdk/tests/runtime-dependencies.test.ts @@ -0,0 +1,55 @@ +import { builtinModules } from 'node:module'; +import { readFileSync, readdirSync } from 'node:fs'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { parse, type Node, type AnyNode } from 'acorn'; +import { expect, it } from 'vitest'; + +const sdk = fileURLToPath(new URL('..', import.meta.url)); +const builtins = new Set(builtinModules); + +it('declares every literal runtime import in the built SDK', () => { + const manifest = JSON.parse(readFileSync(join(sdk, 'package.json'), 'utf8')); + const declared = new Set(Object.keys({ + ...manifest.dependencies, ...manifest.optionalDependencies, ...manifest.peerDependencies, + })); + const missing = new Set(); + let files = 0; + function specifier(value: unknown) { + if (typeof value !== 'string' || /^(\.|\/|node:)/.test(value) || builtins.has(value)) return; + const name = value.startsWith('@') ? value.split('/').slice(0, 2).join('/') : value.split('/')[0]!; + if (!declared.has(name)) missing.add(name); + } + // Computed imports/require calls cannot be checked by a literal AST scan. + function walk(node: Node) { + const n = node as AnyNode; + if (n.type === 'ImportDeclaration' || n.type === 'ExportNamedDeclaration' || + n.type === 'ExportAllDeclaration' || n.type === 'ImportExpression') { + if (n.source?.type === 'Literal') specifier(n.source.value); + } + if (n.type === 'CallExpression' && ( + (n.callee.type === 'Identifier' && n.callee.name === 'require') || + (n.callee.type === 'MemberExpression' && !n.callee.computed && + n.callee.object.type === 'Identifier' && n.callee.object.name === 'require' && + n.callee.property.type === 'Identifier' && n.callee.property.name === 'resolve'))) { + if (n.arguments[0]?.type === 'Literal') specifier(n.arguments[0].value); + } + for (const value of Object.values(n)) { + if (Array.isArray(value)) value.forEach(child => { if (child?.type) walk(child); }); + else if (value && typeof value === 'object' && 'type' in value) walk(value as Node); + } + } + function scan(directory: string) { + for (const entry of readdirSync(directory, { withFileTypes: true })) { + const path = join(directory, entry.name); + if (entry.isDirectory()) scan(path); + else if (entry.name.endsWith('.js')) { + files++; + walk(parse(readFileSync(path, 'utf8'), { ecmaVersion: 'latest', sourceType: 'module' })); + } + } + } + scan(join(sdk, 'dist')); + expect(files, 'Build the SDK before checking runtime dependencies').toBeGreaterThan(0); + expect([...missing].sort(), 'Undeclared runtime dependencies').toEqual([]); +}); diff --git a/packages/sdk/tsconfig.tests.json b/packages/sdk/tsconfig.tests.json index 04045eaa..773c991c 100644 --- a/packages/sdk/tsconfig.tests.json +++ b/packages/sdk/tsconfig.tests.json @@ -12,6 +12,8 @@ "include": [ "src/**/*.ts", "tests/isolate-workspace.ts", + "tests/runtime-dependencies.test.ts", + "tests/cli-package-gate.test.ts", "tests/run-projection.test.ts", "tests/observer-link.test.ts", "tests/bundle.test.ts", diff --git a/scripts/cli-package-gate.mjs b/scripts/cli-package-gate.mjs new file mode 100644 index 00000000..dd645cf1 --- /dev/null +++ b/scripts/cli-package-gate.mjs @@ -0,0 +1,98 @@ +#!/usr/bin/env node +// Requires built surface + SDK. Install real release tarballs outside the repo. +import assert from 'node:assert/strict'; +import { execFileSync } from 'node:child_process'; +import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync, writeFileSync } from 'node:fs'; +import { createRequire } from 'node:module'; +import { tmpdir } from 'node:os'; +import { dirname, join, resolve, sep } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const [major, minor] = process.versions.node.split('.').map(Number); +assert(major > 22 || (major === 22 && minor >= 18), + 'CLI packaging gate requires Node >=22.18.0 for .flow.ts type stripping; the published engines range is broader than this authored-flow requirement.'); +const root = resolve(dirname(fileURLToPath(import.meta.url)), '..'); +const require = createRequire(join(root, 'packages/sdk/package.json')); +const ts = require('typescript'); +const fixture = 'dependency-upgrade-bot.flow.ts'; +const source = readFileSync(join(root, 'examples/dependency-upgrade-bot', fixture), 'utf8'); +const imports = new Set(); +function visit(node) { + if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) { + if (node.moduleSpecifier) imports.add(node.moduleSpecifier.text); + } + if (ts.isCallExpression(node) && (node.expression.kind === ts.SyntaxKind.ImportKeyword || + node.expression.getText() === 'require')) imports.add(node.arguments[0]?.text); + ts.forEachChild(node, visit); +} +visit(ts.createSourceFile(fixture, source, ts.ScriptTarget.Latest, true)); +assert.deepEqual([...imports], ['@relayflows/surface'], + 'Packaging fixture must import only @relayflows/surface; consider task-graph, social-post-pipeline, pr-review-pipeline, or software-factory.'); +const temporary = realpathSync(mkdtempSync(join(tmpdir(), 'flows-cli-package-'))); +const env = { ...process.env }; +for (const key of ['NODE_PATH', 'NODE_OPTIONS', 'GITHUB_OUTPUT']) delete env[key]; +function run(command, args, cwd = root) { + console.log(`$ ${command} ${args.join(' ')}`); + try { + const output = execFileSync(command, args, { cwd, env, encoding: 'utf8', timeout: 60_000, stdio: ['ignore', 'pipe', 'pipe'] }); + process.stdout.write(output); + return output; + } catch (error) { + process.stdout.write(error.stdout ?? ''); + process.stderr.write(error.stderr ?? ''); + throw error; + } +} +function project(name) { + const directory = join(temporary, name); + mkdirSync(join(directory, 'examples'), { recursive: true }); + writeFileSync(join(directory, 'package.json'), '{"private":true,"type":"module"}\n'); + writeFileSync(join(directory, 'examples', fixture), source); + return directory; +} +function check(binary, directory, args = []) { + const output = run(binary, [...args, 'check', `examples/${fixture}`], directory); + assert.match(output, /CHECK PASSED/); +} +function resolvedInside(manifest, boundary) { + const resolved = realpathSync(createRequire(manifest).resolve('typescript')); + assert(resolved.startsWith(`${boundary}${sep}`), `TypeScript resolved outside install: ${resolved}`); +} +try { + // Reject contaminated temp roots as well as temp directories inside the repo. + assert(!temporary.startsWith(`${root}${sep}`), 'Temp directory must be outside the repository'); + for (let parent = dirname(temporary); ; parent = dirname(parent)) { + assert(!existsSync(join(parent, 'node_modules')), `Ancestor node_modules contaminates packaging test: ${parent}`); + if (parent === dirname(parent)) break; + } + const tarballs = join(temporary, 'tarballs'); + for (const name of ['surface', 'sdk', 'relayflows']) { + run(process.execPath, ['scripts/pack-release.mjs', name, tarballs]); + } + const archives = readdirSync(tarballs).filter(name => name.endsWith('.tgz')).map(name => join(tarballs, name)); + assert.equal(archives.length, 3); + // Optional platform binaries are unrelated to Node dependency resolution. + const flags = ['--ignore-scripts', '--omit=optional', '--no-audit', '--no-fund']; + const local = project('local'); + run('npm', ['install', ...flags, ...archives], local); + check(join(local, 'node_modules/.bin/flows'), local); + check(process.execPath, local, [join(local, 'node_modules/relayflows/bin/flows.js')]); + resolvedInside(join(local, 'node_modules/@relayflows/sdk/package.json'), local); + + const prefix = join(temporary, 'prefix'); + run('npm', ['install', '-g', '--prefix', prefix, ...flags, ...archives], temporary); + assert.deepEqual(readdirSync(join(prefix, 'bin')).sort(), ['flows'], 'Global install must not expose tsc or tsserver'); + // Both SDK and wrapper own a flows bin; also exercise the wrapper explicitly. + const wrapper = join(prefix, 'lib/node_modules/relayflows'); + const globalProject = project('global-project'); + const surface = archives.find(path => path.endsWith(`/relayflows-surface-${require('./package.json').version}.tgz`)); + assert(surface, 'Missing surface archive'); + run('npm', ['install', ...flags, surface], globalProject); + assert(!existsSync(join(globalProject, 'node_modules/typescript')), 'Global consumer must not supply TypeScript'); + check(join(prefix, 'bin/flows'), globalProject); + check(process.execPath, globalProject, [join(wrapper, 'bin/flows.js')]); + resolvedInside(join(prefix, 'lib/node_modules/@relayflows/sdk/package.json'), prefix); + console.log('CLI_PACKAGE_OK: local and global installs'); +} finally { + rmSync(temporary, { recursive: true, force: true }); +} diff --git a/summary.md b/summary.md new file mode 100644 index 00000000..34bab3e2 --- /dev/null +++ b/summary.md @@ -0,0 +1,42 @@ +`flows check` loads the TypeScript parser at runtime, but clean npm consumers did not receive it. Move `typescript` (`^5.6.0`, unchanged) into SDK runtime dependencies and declare the existing `undici` import at `^7.29.1`. Regenerate the npm lockfile without dependency upgrades. TypeScript remains necessary because the activity checker parses TypeScript syntax, which acorn cannot parse. + +Add two regressions to the SDK suite: an AST scan of built JavaScript for undeclared literal imports/re-exports/require calls, and a real tarball installation test for local and global consumers. The latter packs surface, SDK, and relayflows using the existing release packer, copies a checked example outside the repository, and checks both npm's linked `flows` executable and the wrapper entry point. It rejects ancestor node_modules, clears Node resolution overrides, verifies TypeScript resolves inside the installation, and ensures no global tsc/tsserver bins appear. + +The test adds an explicit wrapper invocation to the reviewed plan because both SDK and relayflows claim the `flows` bin: npm linked that command to the SDK in this environment. Checking only the bin would leave the wrapper entry point unexercised. + +The packaging test runs through the existing CI SDK suite with a 120-second timeout. Registry errors fail the test. `FLOWS_SKIP_PACKAGE_GATE=1` is an explicit, loudly reported local opt-out. It requires Node >=22.18.0, omits unrelated optional platform binaries, and checks that the example imports only the surface package. Workflow path additions are isolated in their own commit, as requested. The optional publish-workflow change is omitted. + +Standalone Bun binaries are not tested by this change. The broader published Node engines range and stale SDK bun.lock remain outside this fix. + + +Verification (literal commands and captured output are in [evidence/cli-runtime-dependencies](evidence/cli-runtime-dependencies/README.md)): + +- Mutation-verified both regressions with `python3 evidence/cli-runtime-dependencies/mutation.py`: moved only TypeScript to devDependencies, captured the import scan failure, regenerated the matching lock, captured the packaged CLI crash, restored both files byte-for-byte, then captured both passes. Full [transcript](evidence/cli-runtime-dependencies/mutation-run.txt). +- `npm run typecheck --prefix packages/sdk`, both package builds, and `npm run typecheck:tests --prefix packages/sdk` exited 0. `node --test scripts/publish.test.mjs` passed 7 tests. +- Lock regeneration and `npm ci --prefix packages/sdk --dry-run --ignore-scripts` exited 0; the lock has one undici entry and TypeScript is no longer marked dev-only. +- **Full SDK suite failed** (`cd packages/sdk && ./node_modules/.bin/vitest run`). Both new tests passed. Failures include missing expected relayflowd binaries, unavailable bubblewrap/analyzer, Bun 1.3.6 where 1.4.0 is expected, timeouts, and other integration assertions. These failures were not repaired or established against a baseline; this is not a green full-suite claim. Full [output](evidence/cli-runtime-dependencies/suite.txt). + +Captured full-suite summary: + +```text + Test Files 41 failed | 202 passed | 3 skipped (246) + Tests 182 failed | 3530 passed | 30 skipped (3742) + Errors 81 errors + Duration 698.51s (transform 6.61s, setup 1.04s, collect 70.87s, tests 1957.35s, environment 29ms, prepare 9.67s) +``` + +Captured mutation results (excerpts; full commands/output linked above): + +```text + → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] +AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] +Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js +Restored manifest and lock byte-for-byte. + Test Files 1 passed (1) + Tests 1 passed (1) +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CHECK PASSED examples/dependency-upgrade-bot.flow.ts +CLI_PACKAGE_OK: local and global installs +``` From cfbb65980b02784e68cda09a2dcc7c8742cad8b3 Mon Sep 17 00:00:00 2001 From: Relayflow Date: Sun, 4 Oct 2026 07:50:46 +0000 Subject: [PATCH 3/4] Keep relayflow working files out of the change Session-Id: 570354ad-8fe1-4ec2-b442-d7bea7551ff7 --- summary.md | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 summary.md diff --git a/summary.md b/summary.md deleted file mode 100644 index 34bab3e2..00000000 --- a/summary.md +++ /dev/null @@ -1,42 +0,0 @@ -`flows check` loads the TypeScript parser at runtime, but clean npm consumers did not receive it. Move `typescript` (`^5.6.0`, unchanged) into SDK runtime dependencies and declare the existing `undici` import at `^7.29.1`. Regenerate the npm lockfile without dependency upgrades. TypeScript remains necessary because the activity checker parses TypeScript syntax, which acorn cannot parse. - -Add two regressions to the SDK suite: an AST scan of built JavaScript for undeclared literal imports/re-exports/require calls, and a real tarball installation test for local and global consumers. The latter packs surface, SDK, and relayflows using the existing release packer, copies a checked example outside the repository, and checks both npm's linked `flows` executable and the wrapper entry point. It rejects ancestor node_modules, clears Node resolution overrides, verifies TypeScript resolves inside the installation, and ensures no global tsc/tsserver bins appear. - -The test adds an explicit wrapper invocation to the reviewed plan because both SDK and relayflows claim the `flows` bin: npm linked that command to the SDK in this environment. Checking only the bin would leave the wrapper entry point unexercised. - -The packaging test runs through the existing CI SDK suite with a 120-second timeout. Registry errors fail the test. `FLOWS_SKIP_PACKAGE_GATE=1` is an explicit, loudly reported local opt-out. It requires Node >=22.18.0, omits unrelated optional platform binaries, and checks that the example imports only the surface package. Workflow path additions are isolated in their own commit, as requested. The optional publish-workflow change is omitted. - -Standalone Bun binaries are not tested by this change. The broader published Node engines range and stale SDK bun.lock remain outside this fix. - - -Verification (literal commands and captured output are in [evidence/cli-runtime-dependencies](evidence/cli-runtime-dependencies/README.md)): - -- Mutation-verified both regressions with `python3 evidence/cli-runtime-dependencies/mutation.py`: moved only TypeScript to devDependencies, captured the import scan failure, regenerated the matching lock, captured the packaged CLI crash, restored both files byte-for-byte, then captured both passes. Full [transcript](evidence/cli-runtime-dependencies/mutation-run.txt). -- `npm run typecheck --prefix packages/sdk`, both package builds, and `npm run typecheck:tests --prefix packages/sdk` exited 0. `node --test scripts/publish.test.mjs` passed 7 tests. -- Lock regeneration and `npm ci --prefix packages/sdk --dry-run --ignore-scripts` exited 0; the lock has one undici entry and TypeScript is no longer marked dev-only. -- **Full SDK suite failed** (`cd packages/sdk && ./node_modules/.bin/vitest run`). Both new tests passed. Failures include missing expected relayflowd binaries, unavailable bubblewrap/analyzer, Bun 1.3.6 where 1.4.0 is expected, timeouts, and other integration assertions. These failures were not repaired or established against a baseline; this is not a green full-suite claim. Full [output](evidence/cli-runtime-dependencies/suite.txt). - -Captured full-suite summary: - -```text - Test Files 41 failed | 202 passed | 3 skipped (246) - Tests 182 failed | 3530 passed | 30 skipped (3742) - Errors 81 errors - Duration 698.51s (transform 6.61s, setup 1.04s, collect 70.87s, tests 1957.35s, environment 29ms, prepare 9.67s) -``` - -Captured mutation results (excerpts; full commands/output linked above): - -```text - → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] -AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js -Restored manifest and lock byte-for-byte. - Test Files 1 passed (1) - Tests 1 passed (1) -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CLI_PACKAGE_OK: local and global installs -``` From 812000a372fd9b3a17911952d986dbae15bd81dc Mon Sep 17 00:00:00 2001 From: agentrelaybot Date: Sun, 4 Oct 2026 00:59:03 -0700 Subject: [PATCH 4/4] chore: drop committed verification evidence from the change Co-Authored-By: Claude Opus 5.5 (1M context) Session-Id: 570354ad-8fe1-4ec2-b442-d7bea7551ff7 --- evidence/cli-runtime-dependencies/README.md | 24 - .../cli-runtime-dependencies/imports-fail.txt | 39 - .../cli-runtime-dependencies/imports-pass.txt | 14 - .../cli-runtime-dependencies/lock-check.txt | 5 - .../cli-runtime-dependencies/lock-dry-run.txt | 9 - .../lock-generate.txt | 18 - .../mutation-lock.txt | 19 - .../mutation-restore.txt | 4 - .../cli-runtime-dependencies/mutation-run.txt | 235 - evidence/cli-runtime-dependencies/mutation.py | 38 - .../cli-runtime-dependencies/package-fail.txt | 117 - .../cli-runtime-dependencies/package-pass.txt | 32 - evidence/cli-runtime-dependencies/publish.txt | 18 - .../cli-runtime-dependencies/sdk-build.txt | 7 - evidence/cli-runtime-dependencies/suite.txt | 4667 ----------------- .../surface-build.txt | 7 - .../typecheck-tests.txt | 7 - .../cli-runtime-dependencies/typecheck.txt | 7 - 18 files changed, 5267 deletions(-) delete mode 100644 evidence/cli-runtime-dependencies/README.md delete mode 100644 evidence/cli-runtime-dependencies/imports-fail.txt delete mode 100644 evidence/cli-runtime-dependencies/imports-pass.txt delete mode 100644 evidence/cli-runtime-dependencies/lock-check.txt delete mode 100644 evidence/cli-runtime-dependencies/lock-dry-run.txt delete mode 100644 evidence/cli-runtime-dependencies/lock-generate.txt delete mode 100644 evidence/cli-runtime-dependencies/mutation-lock.txt delete mode 100644 evidence/cli-runtime-dependencies/mutation-restore.txt delete mode 100644 evidence/cli-runtime-dependencies/mutation-run.txt delete mode 100644 evidence/cli-runtime-dependencies/mutation.py delete mode 100644 evidence/cli-runtime-dependencies/package-fail.txt delete mode 100644 evidence/cli-runtime-dependencies/package-pass.txt delete mode 100644 evidence/cli-runtime-dependencies/publish.txt delete mode 100644 evidence/cli-runtime-dependencies/sdk-build.txt delete mode 100644 evidence/cli-runtime-dependencies/suite.txt delete mode 100644 evidence/cli-runtime-dependencies/surface-build.txt delete mode 100644 evidence/cli-runtime-dependencies/typecheck-tests.txt delete mode 100644 evidence/cli-runtime-dependencies/typecheck.txt diff --git a/evidence/cli-runtime-dependencies/README.md b/evidence/cli-runtime-dependencies/README.md deleted file mode 100644 index da77f27c..00000000 --- a/evidence/cli-runtime-dependencies/README.md +++ /dev/null @@ -1,24 +0,0 @@ -Run commands from the repository root unless a transcript explicitly changes directory. Every linked text file contains the command, its captured output, and exit status. Tests ran with Node v25.6.0 / npm 11.8.0. - -The mutation driver saves and restores manifest/lock bytes in a finally block. It leaves undici declared throughout. Reproduce after building both packages: - -```sh -python3 evidence/cli-runtime-dependencies/mutation.py -``` - -- [imports-fail.txt](imports-fail.txt) -- [imports-pass.txt](imports-pass.txt) -- [lock-check.txt](lock-check.txt) -- [lock-dry-run.txt](lock-dry-run.txt) -- [lock-generate.txt](lock-generate.txt) -- [mutation-lock.txt](mutation-lock.txt) -- [mutation-restore.txt](mutation-restore.txt) -- [mutation-run.txt](mutation-run.txt) -- [package-fail.txt](package-fail.txt) -- [package-pass.txt](package-pass.txt) -- [publish.txt](publish.txt) -- [sdk-build.txt](sdk-build.txt) -- [suite.txt](suite.txt) -- [surface-build.txt](surface-build.txt) -- [typecheck-tests.txt](typecheck-tests.txt) -- [typecheck.txt](typecheck.txt) diff --git a/evidence/cli-runtime-dependencies/imports-fail.txt b/evidence/cli-runtime-dependencies/imports-fail.txt deleted file mode 100644 index c1b9fe78..00000000 --- a/evidence/cli-runtime-dependencies/imports-fail.txt +++ /dev/null @@ -1,39 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk -$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts - - RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk - - ❯ tests/runtime-dependencies.test.ts (1 test | 1 failed) 213ms - × declares every literal runtime import in the built SDK 212ms - → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] - -⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ - - FAIL tests/runtime-dependencies.test.ts > declares every literal runtime import in the built SDK -AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] - -- Expected -+ Received - -- Array [] -+ Array [ -+ "typescript", -+ ] - - ❯ tests/runtime-dependencies.test.ts:54:66 - 52| scan(join(sdk, 'dist')); - 53| expect(files, 'Build the SDK before checking runtime dependencies').… - 54| expect([...missing].sort(), 'Undeclared runtime dependencies').toEqu… - | ^ - 55| }); - 56| - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ - - Test Files 1 failed (1) - Tests 1 failed (1) - Start at 07:13:08 - Duration 416ms (transform 37ms, setup 22ms, collect 21ms, tests 213ms, environment 0ms, prepare 42ms) - - -exit=1 diff --git a/evidence/cli-runtime-dependencies/imports-pass.txt b/evidence/cli-runtime-dependencies/imports-pass.txt deleted file mode 100644 index 8326700c..00000000 --- a/evidence/cli-runtime-dependencies/imports-pass.txt +++ /dev/null @@ -1,14 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk -$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts - - RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk - - ✓ tests/runtime-dependencies.test.ts (1 test) 192ms - - Test Files 1 passed (1) - Tests 1 passed (1) - Start at 07:13:15 - Duration 391ms (transform 28ms, setup 17ms, collect 13ms, tests 192ms, environment 0ms, prepare 43ms) - - -exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-check.txt b/evidence/cli-runtime-dependencies/lock-check.txt deleted file mode 100644 index c32e9d94..00000000 --- a/evidence/cli-runtime-dependencies/lock-check.txt +++ /dev/null @@ -1,5 +0,0 @@ -$ node -e "const assert=require('node:assert/strict'); const l=require('./packages/sdk/package-lock.json'); const entries=Object.keys(l.packages).filter(k=>/undici$/.test(k)); assert.equal(entries.length,1); assert.notEqual(l.packages['node_modules/typescript'].dev,true); console.log(entries); console.log('typescript dev:',l.packages['node_modules/typescript'].dev);" -[ 'node_modules/undici' ] -typescript dev: undefined - -exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-dry-run.txt b/evidence/cli-runtime-dependencies/lock-dry-run.txt deleted file mode 100644 index 7b147b01..00000000 --- a/evidence/cli-runtime-dependencies/lock-dry-run.txt +++ /dev/null @@ -1,9 +0,0 @@ -$ npm ci --prefix packages/sdk --dry-run --ignore-scripts -change @relayflows/surface 2.0.39 => 2.0.39 - -changed 1 package in 356ms - -65 packages are looking for funding - run `npm fund` for details - -exit=0 diff --git a/evidence/cli-runtime-dependencies/lock-generate.txt b/evidence/cli-runtime-dependencies/lock-generate.txt deleted file mode 100644 index d6c9a45c..00000000 --- a/evidence/cli-runtime-dependencies/lock-generate.txt +++ /dev/null @@ -1,18 +0,0 @@ -$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts - -up to date, audited 196 packages in 597ms - -65 packages are looking for funding - run `npm fund` for details - -9 vulnerabilities (6 moderate, 2 high, 1 critical) - -To address issues that do not require attention, run: - npm audit fix - -To address all issues (including breaking changes), run: - npm audit fix --force - -Run `npm audit` for details. - -exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-lock.txt b/evidence/cli-runtime-dependencies/mutation-lock.txt deleted file mode 100644 index 0f0b5343..00000000 --- a/evidence/cli-runtime-dependencies/mutation-lock.txt +++ /dev/null @@ -1,19 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts - -up to date, audited 196 packages in 777ms - -65 packages are looking for funding - run `npm fund` for details - -9 vulnerabilities (6 moderate, 2 high, 1 critical) - -To address issues that do not require attention, run: - npm audit fix - -To address all issues (including breaking changes), run: - npm audit fix --force - -Run `npm audit` for details. - -exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-restore.txt b/evidence/cli-runtime-dependencies/mutation-restore.txt deleted file mode 100644 index de58a35b..00000000 --- a/evidence/cli-runtime-dependencies/mutation-restore.txt +++ /dev/null @@ -1,4 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ git diff --exit-code -- packages/sdk/package.json packages/sdk/package-lock.json - -exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation-run.txt b/evidence/cli-runtime-dependencies/mutation-run.txt deleted file mode 100644 index 61ec85d6..00000000 --- a/evidence/cli-runtime-dependencies/mutation-run.txt +++ /dev/null @@ -1,235 +0,0 @@ -$ python3 evidence/cli-runtime-dependencies/mutation.py -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk -$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts - - RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk - - ❯ tests/runtime-dependencies.test.ts (1 test | 1 failed) 213ms - × declares every literal runtime import in the built SDK 212ms - → Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] - -⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ - - FAIL tests/runtime-dependencies.test.ts > declares every literal runtime import in the built SDK -AssertionError: Undeclared runtime dependencies: expected [ 'typescript' ] to deeply equal [] - -- Expected -+ Received - -- Array [] -+ Array [ -+ "typescript", -+ ] - - ❯ tests/runtime-dependencies.test.ts:54:66 - 52| scan(join(sdk, 'dist')); - 53| expect(files, 'Build the SDK before checking runtime dependencies').… - 54| expect([...missing].sort(), 'Undeclared runtime dependencies').toEqu… - | ^ - 55| }); - 56| - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ - - Test Files 1 failed (1) - Tests 1 failed (1) - Start at 07:13:08 - Duration 416ms (transform 37ms, setup 22ms, collect 21ms, tests 213ms, environment 0ms, prepare 42ms) - - -exit=1 - -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ npm install --prefix packages/sdk --package-lock-only --ignore-scripts - -up to date, audited 196 packages in 777ms - -65 packages are looking for funding - run `npm fund` for details - -9 vulnerabilities (6 moderate, 2 high, 1 critical) - -To address issues that do not require attention, run: - npm audit fix - -To address all issues (including breaking changes), run: - npm audit fix --force - -Run `npm audit` for details. - -exit=0 - -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ node scripts/cli-package-gate.mjs -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK relayflows@2.0.39: package/bin/flows.js -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-surface-2.0.39.tgz - -added 149 packages in 2s -$ /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -node:internal/modules/package_json_reader:301 - throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js - at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) - at packageResolve (node:internal/modules/esm/resolve:768:81) - at moduleResolve (node:internal/modules/esm/resolve:859:18) - at defaultResolve (node:internal/modules/esm/resolve:991:11) - at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) - at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) - at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) - at #resolve (node:internal/modules/esm/loader:695:17) - at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) - at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js v25.6.0 -node:internal/errors:998 - const err = new Error(message); - ^ - -Error: Command failed: /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -node:internal/modules/package_json_reader:301 - throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js - at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) - at packageResolve (node:internal/modules/esm/resolve:768:81) - at moduleResolve (node:internal/modules/esm/resolve:859:18) - at defaultResolve (node:internal/modules/esm/resolve:991:11) - at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) - at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) - at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) - at #resolve (node:internal/modules/esm/loader:695:17) - at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) - at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js v25.6.0 - - at genericNodeError (node:internal/errors:998:15) - at wrappedFn (node:internal/errors:543:14) - at checkExecSyncError (node:child_process:925:11) - at execFileSync (node:child_process:961:15) - at run (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:37:20) - at check (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:54:18) - at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:78:3 - at ModuleJob.run (node:internal/modules/esm/module_job:430:25) - at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:655:26) - at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5) { - status: 1, - signal: null, - output: [ - null, - '', - 'node:internal/modules/package_json_reader:301\n' + - ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + - ' ^\n' + - '\n' + - "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + - ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + - ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + - ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + - ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + - ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + - ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + - ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + - ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + - ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + - ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + - " code: 'ERR_MODULE_NOT_FOUND'\n" + - '}\n' + - '\n' + - 'Node.js v25.6.0\n' - ], - pid: 39548, - stdout: '', - stderr: 'node:internal/modules/package_json_reader:301\n' + - ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + - ' ^\n' + - '\n' + - "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + - ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + - ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + - ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + - ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + - ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + - ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + - ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + - ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + - ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + - ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + - " code: 'ERR_MODULE_NOT_FOUND'\n" + - '}\n' + - '\n' + - 'Node.js v25.6.0\n' -} - -Node.js v25.6.0 - -exit=1 - -Restored manifest and lock byte-for-byte. -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ git diff --exit-code -- packages/sdk/package.json packages/sdk/package-lock.json - -exit=0 - -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk -$ ./node_modules/.bin/vitest run tests/runtime-dependencies.test.ts - - RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk - - ✓ tests/runtime-dependencies.test.ts (1 test) 192ms - - Test Files 1 passed (1) - Tests 1 passed (1) - Start at 07:13:15 - Duration 391ms (transform 28ms, setup 17ms, collect 13ms, tests 192ms, environment 0ms, prepare 43ms) - - -exit=0 - -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ node scripts/cli-package-gate.mjs -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK relayflows@2.0.39: package/bin/flows.js -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 150 packages in 2s -$ /tmp/flows-cli-package-T0RrGp/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ npm install -g --prefix /tmp/flows-cli-package-T0RrGp/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 294 packages in 4s -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 140 packages in 2s -$ /tmp/flows-cli-package-T0RrGp/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CLI_PACKAGE_OK: local and global installs - -exit=0 - - -exit=0 diff --git a/evidence/cli-runtime-dependencies/mutation.py b/evidence/cli-runtime-dependencies/mutation.py deleted file mode 100644 index 50360e05..00000000 --- a/evidence/cli-runtime-dependencies/mutation.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Run from the repository root after building surface and SDK.""" -import json -from pathlib import Path -import shlex -import subprocess - -root = Path.cwd() -evidence = root / 'evidence/cli-runtime-dependencies' -manifest = root / 'packages/sdk/package.json' -lock = root / 'packages/sdk/package-lock.json' -original = {path: path.read_bytes() for path in (manifest, lock)} - -def run(name, command, cwd=root, expected=0): - result = subprocess.run(command, cwd=cwd, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - transcript = f'$ cd {cwd}\n$ {shlex.join(command)}\n{result.stdout}\nexit={result.returncode}\n' - (evidence / name).write_text(transcript) - print(transcript, flush=True) - assert result.returncode == expected, f'{name}: unexpected exit' - return result.stdout - -try: - data = json.loads(manifest.read_text()) - data['devDependencies']['typescript'] = data['dependencies'].pop('typescript') - manifest.write_text(json.dumps(data, indent=2) + '\n') - output = run('imports-fail.txt', ['./node_modules/.bin/vitest', 'run', 'tests/runtime-dependencies.test.ts'], root / 'packages/sdk', 1) - assert 'typescript' in output and 'undici' not in output - run('mutation-lock.txt', ['npm', 'install', '--prefix', 'packages/sdk', '--package-lock-only', '--ignore-scripts']) - output = run('package-fail.txt', ['node', 'scripts/cli-package-gate.mjs'], expected=1) - assert 'ERR_MODULE_NOT_FOUND' in output and "Cannot find package 'typescript'" in output and 'check-activities.js' in output -finally: - for path, contents in original.items(): - path.write_bytes(contents) - assert all(path.read_bytes() == contents for path, contents in original.items()) - print('Restored manifest and lock byte-for-byte.', flush=True) - -run('mutation-restore.txt', ['git', 'diff', '--exit-code', '--', 'packages/sdk/package.json', 'packages/sdk/package-lock.json']) -run('imports-pass.txt', ['./node_modules/.bin/vitest', 'run', 'tests/runtime-dependencies.test.ts'], root / 'packages/sdk') -run('package-pass.txt', ['node', 'scripts/cli-package-gate.mjs']) diff --git a/evidence/cli-runtime-dependencies/package-fail.txt b/evidence/cli-runtime-dependencies/package-fail.txt deleted file mode 100644 index 6c8ebec2..00000000 --- a/evidence/cli-runtime-dependencies/package-fail.txt +++ /dev/null @@ -1,117 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ node scripts/cli-package-gate.mjs -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-ZIvqJq/tarballs -PACK_OK relayflows@2.0.39: package/bin/flows.js -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-ZIvqJq/tarballs/relayflows-surface-2.0.39.tgz - -added 149 packages in 2s -$ /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -node:internal/modules/package_json_reader:301 - throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js - at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) - at packageResolve (node:internal/modules/esm/resolve:768:81) - at moduleResolve (node:internal/modules/esm/resolve:859:18) - at defaultResolve (node:internal/modules/esm/resolve:991:11) - at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) - at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) - at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) - at #resolve (node:internal/modules/esm/loader:695:17) - at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) - at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js v25.6.0 -node:internal/errors:998 - const err = new Error(message); - ^ - -Error: Command failed: /tmp/flows-cli-package-ZIvqJq/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -node:internal/modules/package_json_reader:301 - throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null); - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js - at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9) - at packageResolve (node:internal/modules/esm/resolve:768:81) - at moduleResolve (node:internal/modules/esm/resolve:859:18) - at defaultResolve (node:internal/modules/esm/resolve:991:11) - at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20) - at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38) - at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52) - at #resolve (node:internal/modules/esm/loader:695:17) - at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35) - at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js v25.6.0 - - at genericNodeError (node:internal/errors:998:15) - at wrappedFn (node:internal/errors:543:14) - at checkExecSyncError (node:child_process:925:11) - at execFileSync (node:child_process:961:15) - at run (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:37:20) - at check (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:54:18) - at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/scripts/cli-package-gate.mjs:78:3 - at ModuleJob.run (node:internal/modules/esm/module_job:430:25) - at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:655:26) - at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5) { - status: 1, - signal: null, - output: [ - null, - '', - 'node:internal/modules/package_json_reader:301\n' + - ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + - ' ^\n' + - '\n' + - "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + - ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + - ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + - ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + - ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + - ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + - ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + - ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + - ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + - ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + - ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + - " code: 'ERR_MODULE_NOT_FOUND'\n" + - '}\n' + - '\n' + - 'Node.js v25.6.0\n' - ], - pid: 39548, - stdout: '', - stderr: 'node:internal/modules/package_json_reader:301\n' + - ' throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);\n' + - ' ^\n' + - '\n' + - "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'typescript' imported from /tmp/flows-cli-package-ZIvqJq/local/node_modules/@relayflows/sdk/dist/cli/check-activities.js\n" + - ' at Object.getPackageJSONURL (node:internal/modules/package_json_reader:301:9)\n' + - ' at packageResolve (node:internal/modules/esm/resolve:768:81)\n' + - ' at moduleResolve (node:internal/modules/esm/resolve:859:18)\n' + - ' at defaultResolve (node:internal/modules/esm/resolve:991:11)\n' + - ' at #cachedDefaultResolve (node:internal/modules/esm/loader:713:20)\n' + - ' at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:730:38)\n' + - ' at ModuleLoader.resolveSync (node:internal/modules/esm/loader:759:52)\n' + - ' at #resolve (node:internal/modules/esm/loader:695:17)\n' + - ' at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:615:35)\n' + - ' at ModuleJob.syncLink (node:internal/modules/esm/module_job:160:33) {\n' + - " code: 'ERR_MODULE_NOT_FOUND'\n" + - '}\n' + - '\n' + - 'Node.js v25.6.0\n' -} - -Node.js v25.6.0 - -exit=1 diff --git a/evidence/cli-runtime-dependencies/package-pass.txt b/evidence/cli-runtime-dependencies/package-pass.txt deleted file mode 100644 index 9f9db68b..00000000 --- a/evidence/cli-runtime-dependencies/package-pass.txt +++ /dev/null @@ -1,32 +0,0 @@ -$ cd /home/daytona/.relayflow-v2-supervisor/durable/repository -$ node scripts/cli-package-gate.mjs -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-T0RrGp/tarballs -PACK_OK relayflows@2.0.39: package/bin/flows.js -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 150 packages in 2s -$ /tmp/flows-cli-package-T0RrGp/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ npm install -g --prefix /tmp/flows-cli-package-T0RrGp/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 294 packages in 4s -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-T0RrGp/tarballs/relayflows-surface-2.0.39.tgz - -added 140 packages in 2s -$ /tmp/flows-cli-package-T0RrGp/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-T0RrGp/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CLI_PACKAGE_OK: local and global installs - -exit=0 diff --git a/evidence/cli-runtime-dependencies/publish.txt b/evidence/cli-runtime-dependencies/publish.txt deleted file mode 100644 index 8912f66f..00000000 --- a/evidence/cli-runtime-dependencies/publish.txt +++ /dev/null @@ -1,18 +0,0 @@ -$ node --test scripts/publish.test.mjs -✔ one SDK anchor rewrites all internal dependency types and preserves external ranges (137.274241ms) -✔ prerelease bumps use the SDK anchor and output the resolved version (151.195828ms) -✔ invalid custom versions fail before any package changes (80.016825ms) -✔ actual npm tarballs reject missing dist and local dependencies, then accept built surface (858.637644ms) -✔ relayflows tarball publishes unscoped and rejects a missing bin (852.39052ms) -✔ runtime tarball refuses an unstaged binary package (566.260219ms) -✔ a runtime tarball packs and asserts shape, running the real smoke only on a matching host (298.950709ms) -ℹ tests 7 -ℹ suites 0 -ℹ pass 7 -ℹ fail 0 -ℹ cancelled 0 -ℹ skipped 0 -ℹ todo 0 -ℹ duration_ms 2999.119725 - -exit=0 diff --git a/evidence/cli-runtime-dependencies/sdk-build.txt b/evidence/cli-runtime-dependencies/sdk-build.txt deleted file mode 100644 index db7684cb..00000000 --- a/evidence/cli-runtime-dependencies/sdk-build.txt +++ /dev/null @@ -1,7 +0,0 @@ -$ npm run build --prefix packages/sdk - -> @relayflows/sdk@2.0.39 build -> tsc && node scripts/make-cli-executable.mjs - - -exit=0 diff --git a/evidence/cli-runtime-dependencies/suite.txt b/evidence/cli-runtime-dependencies/suite.txt deleted file mode 100644 index a44e7d37..00000000 --- a/evidence/cli-runtime-dependencies/suite.txt +++ /dev/null @@ -1,4667 +0,0 @@ -$ cd packages/sdk -$ ./node_modules/.bin/vitest run - - RUN v2.1.9 /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk - -stdout | tests/live-kernel.test.ts -LIVE_KERNEL relayflowd=/home/daytona/.relayflows-toolchain/target/relayflow-check/debug/relayflowd -LIVE_KERNEL flows=/home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/cli.js - - ✓ tests/preflight.test.ts (70 tests) 202ms - ✓ tests/cli.test.ts (71 tests) 4067ms - ✓ flows check CLI > binds a checked relative wrapper to the flow directory for worker execution 892ms - ✓ flows check CLI > resolves a bare PATH-resolved claude with no declared model, in an isolated PATH 610ms - ✓ flows run/resume CLI over the journal protocol > follows a worker wait past a locally expired lease until the daemon settles it 1081ms - ✓ tests/cloud-read.test.ts (46 tests) 78ms -stdout | tests/live-kernel.test.ts > surface resume after a real daemon kill > resumes a three-step run with each successful completion exactly once -LIVE_KERNEL kill -9 pid=20594 run=01M42VH2M3TJQKNVZFHJ8FCD3B while step=two state=Running - - ❯ tests/live-kernel.test.ts (32 tests | 9 failed) 59239ms - ✓ built flows CLI against live relayflowd > twenty-six-step reuses 25 durable completions after editing the failed final step 3919ms - ✓ built flows CLI against live relayflowd > runs rung (a), parks rung (b), and keeps JSON report-shaped 4046ms - ✓ built flows CLI against live relayflowd > allows a deterministic run to exceed the bounded request timeout 33171ms - ✓ built flows CLI against live relayflowd > follows a live worker dispatch through flows run 709ms - ✓ built flows CLI against live relayflowd > runs an agent CLI end to end through the SDK worker 448ms - ✓ built flows CLI against live relayflowd > f.agent lowers to a real agent step and dispatches through a live worker 608ms - ✓ built flows CLI against live relayflowd > can always get a parked run to a late-attaching worker 5582ms - ✓ built flows CLI against live relayflowd > reports a real manual-recovery NeedsHuman state as parked 558ms - × built flows CLI against live relayflowd > runs hn-monitor analyze-story end-to-end via a stub agent CLI (gate 2 clause 2 demo) 552ms - → expected { …(12) } to match object { output: { …(3) }, …(1) } -(22 matching properties omitted from actual) - × built flows CLI against live relayflowd > hn-monitor analyze-story FAILS verification when the CLI omits required schema fields 553ms - → expected { …(12) } to match object { …(3) } -(21 matching properties omitted from actual) - × built flows CLI against live relayflowd > agent step preserves the CliResult wrapper as output when the CLI emits non-JSON text 572ms - → expected null not to be null - × built flows CLI against live relayflowd > AgentWorker exposes wake_context to the CLI via RELAYFLOW_WAKE_CONTEXT env var (real analyzer prerequisite) 564ms - → Cannot read properties of null (reading 'story_title') - × built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_WAKE_CONTEXT UNSET when the run has no wake_context (undefined-vs-null pin) 514ms - → Cannot read properties of null (reading 'env_present') - ✓ built flows CLI against live relayflowd > AgentWorker passes a declared model to an identified wrapper as RELAYFLOW_MODEL 589ms - ✓ built flows CLI against live relayflowd > AgentWorker refuses a nonconforming journal-submitted wrapper before exposing RELAYFLOW_MODEL 580ms - ✓ built flows CLI against live relayflowd > AgentWorker executes the raw claude adapter with its real model flag 549ms - ✓ built flows CLI against live relayflowd > AgentWorker executes the raw codex adapter with its real model flag 546ms - × built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_MODEL UNSET when the step declares no model 492ms - → Cannot read properties of null (reading 'story_title') - × built flows CLI against live relayflowd > hn-monitor analyze-story reaches done through the real Claude analyzer CLI 35ms - → LIVE_ANALYZER_UNAVAILABLE: "/home/daytona/.relayflow-v2-supervisor/durable/repository/testdata/preflight/analyze-story-claude-cli" does not identify as relayflows-agent-cli-v1 — failing because gate-2 acceptance requires the real analyzer to execute. Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is not gate evidence. - ✓ built flows CLI against live relayflowd > preflights before journaling and names an unreachable socket 819ms - × built flows CLI against live relayflowd > starts exactly one daemon when two runs race for one empty data dir 502ms - → WARNING [unprovable_effects] Step "greet" command "echo" resolves, but its effects cannot be proven before execution. -WARNING [unprovable_effects] Step "shout" command "echo" resolves, but its effects cannot be proven before execution. -WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] No relayflowd binary could be found. Install the runtime package for this host (@relayflows/runtime-linux-x64), or set RELAYFLOWD_BIN to a relayflowd executable. Tried: /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/relayflowd. -: expected 2 to be +0 // Object.is equality - ✓ subprocess_gate output capture against live relayflowd > journals the gate command output and reports both tails 974ms - ✓ surface resume after a real daemon kill > resumes a three-step run with each successful completion exactly once 936ms - × a relayflow can be scheduled: tick source against live relayflowd > a tick spawns a real run whose step reports the SCHEDULED instant 650ms - → expected null to deeply equal { schedule_id: 'heartbeat-1m', …(3) } - ✓ tests/cloud-live.test.ts (55 tests) 2065ms - ✓ argv and wiring > routes both live invocations through runCli, and refuses a missing run id 2005ms - ❯ tests/hosted-extension-isolation.test.ts (22 tests | 14 failed) 297ms - × hosted extension capability isolation > executes the exact capability-only handler for a queued receipt 9ms - → bubblewrap is unavailable - × hosted extension capability isolation > executes the exact capability-only handler for a duplicate receipt 3ms - → bubblewrap is unavailable - × hosted extension capability isolation > launches through the captured process primitive after builtin export synchronization 5ms - → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - × hosted extension capability isolation > ignores inherited launcher overrides and decodes manifests with the captured Buffer intrinsic 3ms - → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - × hosted extension capability isolation > streams verified bytes when the live store is replaced and no writable staging path exists 211ms - → promise rejected "Error: Hosted extension sandbox exited wi… { code: '…' }" instead of resolving - × hosted extension capability isolation > mounts pinned private Surface bytes when the live package changes before launch 5ms - → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - × hosted extension capability isolation > refuses oversized Surface files through the bounded descriptor reader 8ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } - × hosted extension capability isolation > shields verified Surface files before async settlement 4ms - → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - × hosted extension capability isolation > preserves a typed host refusal while disclosing only a fixed marker to the child 2ms - → expected Error: bubblewrap is unavailable { code: '…' } to be Error: private Cloud policy detail { code: '…' } // Object.is equality - × hosted extension capability isolation > denies ambient credentials, host files, writes, network, subprocesses, and undeclared context verbs 7ms - → bubblewrap is unavailable - × hosted extension capability isolation > enforces OS address-space and data bounds on native Buffer allocation 3ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } - × hosted extension capability isolation > blocks extra handler fields and authority-bearing receipt fields at the parent port 2ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - × hosted extension capability isolation > constructs adapter authority with the captured freeze intrinsic 2ms - → bubblewrap is unavailable - × hosted extension capability isolation > writes the Surface manifest and protocol without inherited toJSON behavior 2ms - → promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ✓ tests/cloud-sync.test.ts (40 tests) 768ms - ✓ tests/observer-link.test.ts (44 tests) 175ms - ✓ tests/authored-flow.test.ts (38 tests) 823ms - ✓ tests/plugin-extension.test.ts (94 tests) 439ms - ✓ tests/cloud-transcript-codex.test.ts (44 tests) 23ms - ✓ tests/worker-cli.test.ts (25 tests) 29542ms - ✓ registered CLI model defaults > passes the same priced Claude default to the real provider invocation 538ms - ✓ registered CLI model defaults > uses the explicitly supplied agent environment for the provider subprocess 413ms - ✓ registered CLI model defaults > dispatches canonical generic bytes with the preflight-proved adapter identity 425ms - ✓ direct transport lifecycle evidence > classifies only the exact Codex stdin lifecycle signature as retryable 478ms - ✓ direct transport lifecycle evidence > records a signal close separately from an ordinary nonzero exit 940ms - ✓ direct transport lifecycle evidence > records a spawn error code without treating a missing executable as transient 393ms - ✓ direct transport lifecycle evidence > journals classified lifecycle evidence and reports crashed instead of generic worker_error 500ms - ✓ step discovery environment > names the run, step, attempt and an absolute data dir for a direct agent spawn 498ms - ✓ step discovery environment > exports none of the four without a data dir, even when the worker inherited them 430ms - ✓ wrapper discovery environment > sets the four names from the dispatch and still refuses ambient values and other secrets 410ms - ✓ wrapper discovery environment > exports none of the four to a wrapper without a data dir, even when the worker inherited them 458ms - ✓ custom wrapper execution identity > passes an explicit safe environment at identification and execution 439ms - ✓ custom wrapper execution identity > refuses a wrapper symlink retarget before delivering private values 436ms - ✓ custom wrapper execution identity > bounds wrapper execution after acknowledgement 492ms - ✓ custom wrapper execution identity > bounds captured wrapper output 425ms - ✓ custom wrapper execution identity > refuses a duplicate execute protocol frame 438ms - ✓ custom wrapper execution bounds are reader-owned > resolves when a conforming wrapper leaks a stdio pipe to a background helper 1806ms - ✓ custom wrapper execution bounds are reader-owned > resolves when the leaked helper inherits stderr only 1850ms - ✓ custom wrapper execution bounds are reader-owned > resolves when a wrapper leaks a stdio pipe and exits before identifying 3556ms - ✓ custom wrapper execution bounds are reader-owned > journals a completionReason at the default bound when a wrapper leaks a stdio pipe 11600ms - ✓ custom wrapper execution bounds are reader-owned > accepts an execute token and an over-8KiB payload flushed in one write 541ms - ✓ custom wrapper execution bounds are reader-owned > accepts the same over-8KiB payload whether or not it coalesces with the execute token 1565ms - ✓ custom wrapper execution bounds are reader-owned > still bounds an un-terminated handshake buffer and names the bound 492ms - ✓ delivers the journaled memory pack to the real wrapper and excludes its charge from completion usage 418ms - ✓ tests/flow-extension-compose.test.ts (33 tests) 5697ms - ✓ composing flow extensions onto a base flow > composes two extensions in declaration order, and the order is the lockfile order 445ms - ✓ composing flow extensions onto a base flow > flows check reports the composition and keeps the composed triggers deliverable 905ms - ✓ tests/cloud-deploy.test.ts (60 tests) 1386ms -(node:21503) ExperimentalWarning: SQLite is an experimental feature and might change at any time -(Use `node --trace-warnings ...` to show where the warning was created) - ✓ tests/cli-status.test.ts (27 tests) 1277ms - ✓ flows status > resolves the run with no arguments from inside a worker-spawned agent 987ms - ✓ tests/run-state.test.ts (28 tests) 10ms - ✓ tests/cloud-run.test.ts (59 tests) 615ms - ✓ tests/agent-transcript.test.ts (29 tests) 266ms - ✓ tests/relay-cli-surface.test.ts (85 tests) 35ms - ✓ tests/babysitter-native-extension.test.ts (41 tests | 1 skipped) 1362ms - ✓ tests/shipped-source-model-provenance.test.ts (1 test) 109005ms - ✓ shipped-source model provenance > does not treat mutable aliases or incomplete named agents as pinned 109004ms -(node:21731) [FLOWS_ROOT_LEASE_LOST] Warning: authored root run_id=root-run attempt=1: lease_conflict: attempt has no active worker lease. Waiting for the kernel to retry it. -(Use `node --trace-warnings ...` to show where the warning was created) - ✓ tests/authored-root.test.ts (22 tests) 404ms - ✓ tests/authored-completion-detail.test.ts (59 tests) 187ms - ✓ tests/shipped-source-worker-call-forms.test.ts (1 test) 16804ms - ✓ shipped-source worker call forms > fails closed for computed keys, assertions, binds, call, and apply 16803ms - ✓ tests/step-failure-diagnostic.test.ts (26 tests) 108ms - ✓ tests/stop-process-group.test.ts (11 tests) 14834ms - ✓ every stop reaches the process group, not just the direct child > exits the run after an execution-timeout stop 1079ms - ✓ every stop reaches the process group, not just the direct child > exits the run after a protocol terminate stop 451ms - ✓ every stop reaches the process group, not just the direct child > kills a SIGTERM-deaf grandchild after a protocol terminate stop 1575ms - ✓ every stop reaches the process group, not just the direct child > kills a SIGTERM-deaf grandchild after an execution-timeout stop 1921ms - ✓ every stop reaches the process group, not just the direct child > holds the loop open long enough for the escalation to run 1089ms - ✓ every stop reaches the process group, not just the direct child > bounds forced-stop confirmation when a group remains unprovable 1006ms - ✓ a wrapper that exits with no execution deadline still drains > reports the wrapper result and reaps a grandchild holding its pipes 750ms - ✓ a wrapper that exits with no execution deadline still drains > reaps a SIGTERM-deaf grandchild holding its pipes 2012ms - ✓ a wrapper that exits with no execution deadline still drains > settles on its own deadline when an escaped holder withholds close 4629ms - ❯ tests/mcp.test.ts (34 tests | 4 skipped) 15734ms - ✓ MCP preflight and transports > flows check refuses an undeclared server with exit 2 and no daemon 917ms - ✓ MCP preflight and transports > flows check reports a refusing server and leaves no PID 945ms - ✓ MCP preflight and transports > kills a SIGTERM-resistant silent child after a parent-owned handshake deadline 1321ms - ✓ MCP preflight and transports > reaps a SIGTERM-resistant descendant with inherit stdio before cleanup finishes 1063ms - ✓ MCP preflight and transports > reaps a SIGTERM-resistant descendant with ignore stdio before cleanup finishes 2025ms - ✓ MCP preflight and transports > rejects close when forced group death remains unprovable 2073ms - ✓ MCP preflight and transports > cancels force escalation when close follows an exited child 1187ms - ✓ MCP preflight and transports > waits for child close when the transport cannot own a process group 1054ms - ✓ MCP preflight and transports > cancels force escalation for an already-closed child without a process group 1175ms - ✓ MCP preflight and transports > reports malformed connection configuration as config_invalid 903ms - ✓ tests/step-attempt-history.test.ts (23 tests) 17ms - ✓ tests/daemon-lifecycle.test.ts (42 tests) 38ms - ❯ tests/hosted-extension-protocol.test.ts (27 tests | 8 failed) 40105ms - × hosted extension hostile protocol > uses captured JSON intrinsics for the complete parent boundary 7ms - → bubblewrap is unavailable - × hosted extension hostile protocol > rejects an import-time different PR frame with zero adapter calls 5ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - × hosted extension hostile protocol > rejects an import-time different delivery frame with zero adapter calls 4ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - × hosted extension hostile protocol > rejects an import-time different event frame with zero adapter calls 3ms - → expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - × hosted extension hostile protocol > rejects two forged calls after the authoritative first outcome settles 10003ms - → hostile child did not invoke the adapter - × hosted extension hostile protocol > waits for a pending adapter to reject after a forged child error 10010ms - → hostile child did not invoke the adapter - × hosted extension hostile protocol > waits for a pending adapter to resolve after a forged child error 10005ms - → hostile child did not invoke the adapter - × hosted extension hostile protocol > returns a typed adapter rejection even when the hostile child hangs 10006ms - → hostile child did not invoke the adapter - ✓ tests/close-pr-flow.test.ts (35 tests) 20801ms - ✓ close-pr journaled repair loop > reads an existing Bugbot finding, repairs in the same worktree, pushes and re-verifies before merging 2209ms - ✓ close-pr journaled repair loop > opens a PR and feeds failed CI logs into the repair agent 2499ms - ✓ close-pr journaled repair loop > pins the current generated model for codex when no override is supplied 4995ms - ✓ close-pr journaled repair loop > pins the current generated model for claude when no override is supplied 3848ms - ✓ close-pr journaled repair loop > parks after exactly three nonconverging repairs, with accumulated blockers 2314ms - ✓ close-pr journaled repair loop > can converge on the third repair 2406ms - ✓ close-pr journaled repair loop > executes the deterministic commit and force-push steps against a local Git remote, including a no-op repair 2329ms - ❯ tests/authored-node-runtime.test.ts (16 tests | 16 skipped) 12ms - ✓ tests/artifact-gates.test.ts (27 tests) 228ms - ✓ tests/hosted-base-snapshot.test.ts (18 tests) 2076ms - ✓ hosted base private snapshot > stops streaming project entries at the shared count limit 1994ms - ✓ tests/cloud-connect.test.ts (24 tests) 3182ms - ✓ hosted verbs connect before they submit > flows run --cloud submits once the prompt connected the integration 2126ms - ✓ tests/journal-client.test.ts (17 tests) 79ms - ✓ tests/verb-field-lint.test.ts (102 tests) 379ms - ✓ tests/bundle.test.ts (26 tests) 9543ms - ✓ immutable bundles > returns exit 2 naming a byte-flipped payload and refuses to reuse corruption 398ms - ✓ immutable bundles > verifies with --verify in any position and answers --json with one object 771ms - ✓ immutable bundles > refuses --out with --verify rather than ignoring the destination 390ms - ✓ immutable bundles > builds and verifies the canonical YAML fixture through the compiled CLI 1297ms - ✓ immutable bundles > emits the ephemeral warning on CLI stderr and uses the default output directory 786ms - ✓ immutable bundles > refuses build-provable CLI resolution errors without environment probes 411ms - ✓ immutable bundles > builds a standalone TS fixture twice with identical executable hashes 2652ms - ✓ immutable bundles > refuses to label installed dependency drift with lockfile pins 405ms - ✓ immutable bundles > refuses invalid CLI arguments %j 451ms - ✓ immutable bundles > refuses invalid CLI arguments "--out" 528ms - ✓ immutable bundles > refuses invalid CLI arguments "--verify" 430ms - ✓ immutable bundles > refuses invalid CLI arguments "--verify" 418ms - ✓ immutable bundles > refuses invalid CLI arguments "--out" 425ms - ✓ tests/validate.test.ts (68 tests) 23ms - ✓ tests/shipped-source-flow-provenance-repairs.test.ts (1 test) 29934ms - ✓ shipped-source flow provenance repairs > audits repaired writer, alias, binding, and cyclic provenance forms 29933ms - ✓ tests/agent-relay-transport.test.ts (17 tests) 2434ms - ✓ Relay completion at the journal boundary > does not complete at readiness and journals exact output, receipt, and priced accounting 1011ms - ✓ Relay completion at the journal boundary > aborts polling on rejected renewal and never writes a stale completion 1002ms - ✓ tests/authored-node-result.test.ts (44 tests) 19ms - ✓ tests/tick-source.test.ts (33 tests) 20ms - ✓ tests/authored-step-terminal-completion.test.ts (13 tests) 4884ms - ✓ readCompletedStepOutput on an adopted gated child whose gate has not started > refuses a producer success when the wait ends with the run still not terminal 2007ms - ✓ readCompletedStepOutput given a suspended known status (#441) > refuses a producer success while the child is still not terminal 2006ms - ✓ tests/authored-step-graph.test.ts (25 tests) 819ms - ✓ tests/cloud-mirror.test.ts (14 tests) 31ms - ✓ tests/pr-review-post.test.ts (21 tests) 2102ms - ✓ tests/authored-flow-lifecycle-executor.test.ts (27 tests) 601ms - ✓ tests/step-failure-excerpt.test.ts (42 tests) 172ms -(node:26518) ExperimentalWarning: SQLite is an experimental feature and might change at any time -(Use `node --trace-warnings ...` to show where the warning was created) - ✓ tests/cli-replay.test.ts (38 tests) 1271ms - ✓ flows replay > --json is byte-identical across two CLI invocations (diff) 798ms - ✓ tests/cloud-mirror-step.test.ts (17 tests) 13ms - ❯ tests/authored-flow-slack.test.ts (7 tests | 5 failed) 164ms - × authored Slack helper effects > snapshots structured posts into the journal and delivers the same Block Kit body 6ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × authored Slack helper effects > journals exactly one effect with the authored params and typed receipt, without network 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × authored Slack helper effects > replays after SIGKILL before confirm with the same token and one successful completion 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × authored Slack helper effects > replays after SIGKILL before complete with the same token and one successful completion 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × authored Slack helper effects > writes two files for two calls and supports dm, reply, and react 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - ✓ tests/wrapper-execution-duration.test.ts (7 tests) 10835ms - ✓ keeps the handshake deadline independent of the removed execution deadline 10071ms - ✓ still lets a lease abort stop an unlimited wrapper before it produces output 515ms - ❯ tests/flow-executor-chain.test.ts (14 tests | 14 failed) 70452ms - × flow executor LLM and output-binding chain > runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model 5031ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > runs a dollar-budgeted authored Claude agent with the same default used by preflight 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > fails invalid LLM output before the next step: not JSON 5025ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > fails invalid LLM output before the next step: {"message":7} 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > retains tagged-template text output 5026ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: null 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: [1,2] 5031ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: "hello" 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > refuses a model outside flows.json before a run or adapter execution 5026ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > resumes an interrupted durable authored root without replaying completed flagship effects 10042ms - → chain fixture daemon failed to start - × flow executor LLM and output-binding chain > passes a declarative verified value through an agent into a deterministic artifact 5031ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > journals a missing optional field as a failure before the consuming command executes 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × flow executor LLM and output-binding chain > flows run consumes YAML bindings and resume reuses the original journal output 65ms - → expected null to be +0 // Object.is equality - ✓ tests/tick-runner.test.ts (22 tests) 2254ms - ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms fractional as an invocation error 357ms - ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms exponent notation as an invocation error 381ms - ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms hex as an invocation error 379ms - ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms trailing text as an invocation error 370ms - ✓ CLI argument parsing refuses coercion rather than accepting it > refuses --interval-ms empty as an invocation error 377ms - ✓ CLI argument parsing refuses coercion rather than accepting it > accepts an exact integer and proceeds past parsing 367ms - ✓ tests/authored-step-index.test.ts (17 tests) 15ms - ✓ tests/authored-agent-artifacts.test.ts (5 tests) 343ms - ✓ tests/worker-cli-result-exit.test.ts (7 tests) 34827ms - ✓ a Claude agent step completes on its result, not only on process exit > settles a hung, successful run within the grace and stops its whole tree 32624ms - ✓ a Claude agent step completes on its result, not only on process exit > maps an error result on a hung run to a failed exit 31622ms - ✓ a Claude agent step completes on its result, not only on process exit > leaves a hang before any result to the existing stops 32012ms - ✓ an agent tree does not outlive the process that spawned it > kills the agent group when the run process is terminated by SIGTERM 777ms - ✓ an agent tree does not outlive the process that spawned it > removes a wrapper alias on host exit after group death stays unprovable 1339ms - ✓ tests/worker-transcript.test.ts (9 tests) 862ms - ✓ tests/gate-contract.test.ts (20 tests) 166ms -Stopped: a Linear ticket must carry its identifier (like TECH-42) so the pull request can link back. -Stopped: a Linear ticket must carry its identifier (like TECH-42) so the pull request can link back. -Stopped: invalid pull-request metadata (duplicate-linear-closing-reference). No branch was pushed and no pull request was opened. -Stopped: invalid pull-request metadata (duplicate-linear-closing-reference). No branch was pushed and no pull request was opened. -Stopped: invalid pull-request metadata (duplicate-github-closing-reference). No branch was pushed and no pull request was opened. -Stopped: invalid pull-request metadata (malformed-review-scope). No branch was pushed and no pull request was opened. -Stopped: invalid pull-request metadata (malformed-review-scope). No branch was pushed and no pull request was opened. -Stopped: could not read the reviewed head commit. Nothing was pushed. -Stopped: could not read the reviewed head commit. Nothing was pushed. -Stopped: could not read the reviewed head commit. Nothing was pushed. - ✓ tests/canonical-software-factory.test.ts (25 tests) 742ms - ✓ tests/authored-human.test.ts (13 tests) 92ms - ✓ tests/direct-input.test.ts (6 tests) 6330ms - ✓ direct .flow.ts input through the built CLI and live runtime > returns exit 3 for an authored human handoff and persists its outcome 598ms - ✓ direct .flow.ts input through the built CLI and live runtime > returns exit 1 for an authored step_failed verdict and persists its outcome 641ms - ✓ direct .flow.ts input through the built CLI and live runtime > executes inline and file JSON input through relayflowd 2673ms - ✓ direct .flow.ts input through the built CLI and live runtime > refuses missing and malformed input before contacting relayflowd 1549ms - ✓ direct .flow.ts input through the built CLI and live runtime > does not run the authored body before daemon availability 470ms - ✓ direct .flow.ts input through the built CLI and live runtime > refuses oversized file input before contacting relayflowd 399ms - ✓ tests/cloud-schedule.test.ts (17 tests) 4077ms - ✓ schedule lowering > marks a non-grid cron as Cloud-only rather than approximating it, with a silence budget from its own cadence 1667ms - ✓ flows check prints declared schedules > shows the lowering for a fixed interval and the Cloud-only note for a real cron 1891ms - ✓ tests/cli-hn-monitor.test.ts (16 tests) 96ms - ❯ tests/agent-artifacts-live.test.ts (5 tests | 5 failed) 2531ms - × agent artifacts and gates through the built CLI, a real daemon and the local agent > journals the files the agent wrote, including under a dot-directory, and every artifact gate passes on that journal 496ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-818f28a002b6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run when the artifact_exists gate names a file the agent did not write 508ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-49a91e18aab6.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run with the author reason when a predicate gate returns false, journaling the verdict 491ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-203b5b281663.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × review follow-ups > applies a predicate gate on a helper step too, and journals its verdict 494ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-8b915e830e15.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × review follow-ups > records predicate verdicts on the root run so a resume reuses them instead of re-running the closure 540ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-d7317185e75d.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - ✓ tests/spec-parity.test.ts (43 tests) 500ms - ✓ tests/authored-activity.test.ts (16 tests) 106ms - ✓ tests/named-gate-diagnostics.test.ts (17 tests) 501ms - ✓ tests/run-projection.test.ts (13 tests) 12ms - ✓ tests/daemon-lifecycle-live.test.ts (9 tests) 6547ms - ✓ flows run against a data dir with no daemon (§6 test 7) > cold start spawns exactly one daemon, the run succeeds, and the daemon outlives the CLI 471ms - ✓ flows run against a data dir with no daemon (§6 test 7) > polls, bounded, for a daemon that holds the lock before it binds 1360ms - ✓ flows run against a data dir with no daemon (§6 test 7) > attaches to a serving daemon that has not published a connection file 455ms - ✓ flows run against a data dir with no daemon (§6 test 7) > a second run attaches to the daemon the first one started, spawning nothing 860ms - ✓ flows run against a data dir with no daemon (§6 test 7) > detects a stale connection file left by a hard kill and starts a fresh daemon 932ms - ✓ concurrent invocations against one empty data dir (§6 test 15) > ends with exactly one daemon owning the socket, and both runs succeed 1157ms - ✓ refusals from a spawn that cannot produce a daemon > names relayflowd_not_found rather than falling through to PATH 415ms - ✓ refusals from a spawn that cannot produce a daemon > names daemon_start_failed and quotes the daemon log when startup dies 445ms - ✓ refusals from a spawn that cannot produce a daemon > refuses a daemon speaking another protocol version instead of binding over it 453ms - ✓ tests/shipped-source-cubic-regressions.test.ts (5 tests) 11051ms - ✓ shipped-source adversarial provenance regressions > retains callable writes through member mutation, spreads, this, holes, and alternate receivers 6031ms - ✓ shipped-source adversarial provenance regressions > does not manufacture intrinsic writes or comma-left callables 2195ms - ✓ shipped-source adversarial provenance regressions > treats constructor and implicit-this receiver escapes as possible worker writes 555ms - ✓ shipped-source adversarial provenance regressions > maps pure helper parameters and refuses mutations or conditional assignments as proofs 1713ms - ✓ shipped-source adversarial provenance regressions > does not apply later alias assignments retroactively to copied values 557ms - ❯ tests/agent-transcript-live.test.ts (4 tests | 4 failed) 2027ms - × the transcript digest through the built CLI, a real daemon and the local agent > preserves structured agent failure details and its completed root index 523ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-84050d4a5bdb.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × the transcript digest through the built CLI, a real daemon and the local agent > preserves structured llm failure details and its completed root index 491ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-fca2cd1b809e.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × the transcript digest through the built CLI, a real daemon and the local agent > journals the digest in trajectory_tail on a successful agent step and writes the file it points at 515ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-f77a6fe24d83.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × the transcript digest through the built CLI, a real daemon and the local agent > on a failed agent step, names the failure and the transcript in the terminal diagnostic, redacted 497ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-3bce1808e9aa.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - ✓ tests/wrapper-exit-drain.test.ts (9 tests) 3244ms - ✓ reports a signalled wrapper death while a pipe is held, with its output intact 381ms - ✓ lets a lease abort outrank a successful exit still being drained 536ms - ✓ does not let a later drain overwrite abort while group confirmation is pending 637ms - ✓ tests/resume-local-agent.test.ts (8 tests) 15ms -(node:29267) Warning: Transcript tail for run-9/analyze attempt 1 (stdout) could not be written; the step continues without it: EACCES: permission denied, mkdir '/tmp/transcript-tail-em8i2p/runs/run-9/steps' -(Use `node --trace-warnings ...` to show where the warning was created) - ✓ tests/transcript-tail.test.ts (11 tests) 1322ms - ✓ direct agent spawn > tees stdout and stderr into tail files that name the dispatch 548ms - ✓ direct agent spawn > completes the step when the tail directory cannot be created 496ms - ✓ tests/advisory-outcome.test.ts (23 tests) 76ms - ❯ tests/authored-run-failure-evidence.test.ts (9 tests | 5 failed) 40157ms - × a failing f.run through the live kernel > reports the command that failed and what it printed 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × a failing f.run through the live kernel > names the failing case from the middle of a real test run 10034ms - → chain fixture daemon failed to start - × a failing f.run through the live kernel > carries the same facts structurally, not only rendered into the message 5027ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × a failing f.run through the live kernel > keeps the evidence when the failure is relabelled as a timeout 10033ms - → chain fixture daemon failed to start - × the child index after the process that wrote it is gone > still names every child, with its own run id, after a daemon restart 10030ms - → chain fixture daemon failed to start - ❯ tests/agent-cwd-live.test.ts (4 tests | 4 failed) 2057ms - × agents drive two checkouts under one run root > runs each CLI in its declared directory, and the run is not refused as an unknown field 519ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-f5385a489530.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × agents drive two checkouts under one run root > gates on an artifact path relative to the agent directory 540ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-81e36b029a60.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × a declaration this contract cannot honour is refused at its own edge > refuses a path that climbs out of the run root without starting a run at all 491ms - → expected 'RELAYFLOWD_BIN is set to "/home/dayto…' to contain 'f.agent options.cwd: expected a run-r…' - × a declaration this contract cannot honour is refused at its own edge > fails the step with the reason when the directory is not there, rather than running somewhere else 506ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-8c4edf8d97fd.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - ❯ tests/authored-helpers.test.ts (6 tests | 5 failed) 22ms - × lowers the named acceptance helpers and Slack to confirmed journal effects 6ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × runs every available provider through the real kernel and resumes completed effects without a second write 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × replays after SIGKILL before confirm with the same token and one successful completion 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × replays after SIGKILL before complete with the same token and one successful completion 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × journals provider failure with worker_error and never confirms the effect 1ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - ✓ tests/cloud-mirror-session.test.ts (12 tests) 12ms - ✓ tests/agent-cwd.test.ts (53 tests) 47ms - ✓ tests/authored-flow-operation.test.ts (24 tests) 616ms - ✓ completes the gate in linear time over a body with 30000 ordinary awaits 325ms - ✓ tests/budget-attribution.test.ts (10 tests) 9ms - ✓ tests/helper-reference.test.ts (30 tests) 24ms - ✓ tests/pty-sidechannel.test.ts (14 tests) 9226ms - ✓ view attach preserves worker completion and marks only drive 1029ms - ✓ drive attach preserves worker completion and marks only drive 646ms - ✓ passthrough attach preserves worker completion and marks only drive 1076ms - ✓ none attach preserves worker completion and marks only drive 1108ms - ✓ none subscriber lets an unattended CLI read EOF 651ms - ✓ view subscriber lets an unattended CLI read EOF 557ms - ✓ passthrough subscriber lets an unattended CLI read EOF 602ms - ✓ incomplete subscriber lets an unattended CLI read EOF 538ms - ✓ unattended Codex receives closed stdin before startup instead of entering its additional-input lifecycle 559ms - ✓ ends driven stdin when the last drive peer disconnects after spawn 592ms - ✓ rejects drive after EOF without marking human intervention 938ms - ✓ delivers all drive bytes in order across child stdin backpressure 895ms - ✓ tests/flow-requirements.test.ts (14 tests) 1000ms - ✓ flows check prints REQUIRES > names the helper, the harness and the mcp server of an authored flow 693ms - ✓ tests/backlog-picker.test.ts (14 tests) 43ms - ✓ tests/plugin-store-bounds.test.ts (11 tests) 82ms - ✓ tests/cloud-mirror-live.test.ts (3 tests) 3055ms - ✓ a local run on the Cloud dashboard > registers, publishes its steps and its log, and reports terminal last 688ms - ✓ a local run on the Cloud dashboard > sends nothing at all unless it is asked to 1457ms - ✓ a local run on the Cloud dashboard > publishes a composed authored flow as one connected dashboard DAG 877ms - ❯ tests/local-agent-live.test.ts (7 tests | 7 failed) 3531ms - × built CLI local agent against a real daemon > dispatches through the wrapper and keeps --json stdout report-shaped 521ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-2ffe8381248e.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × built CLI local agent against a real daemon > runs beyond the initial 30-second lease without a second invocation 510ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-19f964cc734b.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × built CLI local agent against a real daemon > renders actual agent completion in text output 506ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be +0 // Object.is equality - × built CLI local agent against a real daemon > returns a failed run when the agent process fails 500ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be 1 // Object.is equality - × built CLI local agent against a real daemon > prints a remedy that runs the parked authored flow to completion 491ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-0eeb4a81fa4b.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × built CLI local agent against a real daemon > prints a remedy that runs, for a run started from an input file too long to be one 492ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-e66e0580aab9.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × built CLI local agent against a real daemon > refuses a workspace it cannot pin before invoking the agent 509ms - → expected 'REFUSED [relayflowd_not_found] RELAYF…' to contain 'stream-only' - ✓ tests/classify-outcome.test.ts (11 tests) 5927ms - ✓ classifyOutcome > gives up and reports when a running run never becomes classifiable 2008ms - ✓ the remedy on a worker park > follows a step through a retry backoff longer than the unclassified bound 3006ms - ✓ the remedy on a worker park > follows a run.start outcome that is already running on a retried attempt 502ms - ✓ tests/backlog-picker-flow.test.ts (6 tests) 246ms - ✓ tests/hosted-extension-protocol-intrinsics.test.ts (6 tests) 13ms - ✓ tests/preflight-permissions-unenforced.test.ts (17 tests) 594ms - ✓ an authored TypeScript body is out of reach, and spec.ts says so > checks clean on a .flow.ts whose body declares permissions 552ms - ❯ tests/budget-unmetered-live.test.ts (4 tests | 4 failed) 20118ms - × unmetered budget spend through the live kernel > runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars 5032ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × unmetered budget spend through the live kernel > journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged 5029ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × unmetered budget spend through the live kernel > still counts an unpriced step toward a token budget 5027ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × unmetered budget spend through the live kernel > accrues a priced step and stops the run when it crosses the dollar budget 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - ✓ tests/stuck-run-triage.test.ts (22 tests) 3109ms - ✓ stuck-run-triage shell text > collects tails with no GNU timeout on PATH, as on a stock macOS 3071ms - ✓ tests/hosted-extension-routing.test.ts (7 tests) 7ms - ✓ tests/webhook.test.ts (9 tests) 908ms - ✓ webhook ingress > checks TS declarations against flows.json without invoking handlers 828ms - ✓ tests/redact.test.ts (54 tests) 10ms - ✓ tests/cli-probe.test.ts (17 tests) 1825ms - ❯ tests/authored-completion-recovery.test.ts (5 tests | 5 failed) 50204ms - × reuses the committed detail after the redaction environment rotates 10039ms - → chain fixture daemon failed to start - × commits the verdict once, and a clean re-execution reads it back 10038ms - → chain fixture daemon failed to start - × recovers a committed verdict when a no-detail retry follows a pre-marker loss 10046ms - → chain fixture daemon failed to start - × reuses the admitted marker when a no-detail retry follows a post-marker loss 10038ms - → chain fixture daemon failed to start - × leaves a one-argument done() writing nothing to the verdict stream 10043ms - → chain fixture daemon failed to start - ❯ tests/webhook-live.test.ts (6 tests | 6 failed) 62576ms - × executes and deduplicates 'app_mention' only for its provider and matching payload 10470ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × executes and deduplicates 'reaction_added' only for its provider and matching payload 10458ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × executes and deduplicates 'pull_request' only for its provider and matching payload 10410ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × flows serve-webhook writes JSON before the daemon starts, then journals and archives exactly once 10428ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × replays a dropped file after SIGKILL before spawn 10386ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × resumes the same journal after SIGKILL after spawn and before acknowledgement 10422ms - → webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ tests/authored-advisory-run-live.test.ts (16 tests | 8 failed) 80331ms - × a recorded nonzero f.run through the live kernel > resolves to the journaled exit code instead of ending the flow 10035ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > resolves a green command through the same policy 10043ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > leaves the default fatal and still resolving to the stdout string 10037ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > still fails a timeout, which recorded no exit code to report 10046ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > still fails a declared named gate on a recorded step whose producer succeeded 10049ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > still fails a declared named gate on a default step whose producer succeeded 10043ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > hands a predicate gate the recorded result, not the stdout string 10045ms - → chain fixture daemon failed to start - × a recorded nonzero f.run through the live kernel > refuses a policy value the kernel enum does not name, before journaling anything 10027ms - → chain fixture daemon failed to start - ❯ tests/human-live.test.ts (3 tests | 3 failed) 1562ms - × f.human against a real daemon > parks with the question, refuses wrong answers, records one, and resumes to success 533ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"ask.flow.ts","socketPath":"/tmp/relayflowd-350b6838c3ee.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × f.human against a real daemon > a "no" is a value the body branches on: declined, exit 0, no effect 520ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be 3 // Object.is equality - × f.human against a real daemon > refuses to answer a run the daemon does not know 508ms - → expected 2 to be 3 // Object.is equality - ✓ tests/check-worker-surface.test.ts (11 tests) 89ms - ✓ tests/authored-step-failed.test.ts (10 tests) 36ms -(node:32007) ExperimentalWarning: SQLite is an experimental feature and might change at any time -(Use `node --trace-warnings ...` to show where the warning was created) - ✓ tests/authored-status-detail.test.ts (20 tests) 80ms - ✓ tests/cli-watch.test.ts (10 tests) 16354ms - ✓ flows check --watch > rechecks syntax errors, clears once, and returns the last refusal on Ctrl-C 1391ms - ✓ flows check --watch > streams JSON lines without ANSI, recovers after atomic saves, and exits zero after repair 1944ms - ✓ flows check --watch > coalesces 20 concurrent saves into at most two rechecks 1871ms - ✓ flows check --watch > watches transitive relative use imports, cycles, and nearest config changes 2376ms - ✓ flows check --watch > refreshes the import graph and notices missing imports being created 2438ms - ✓ flows check --watch > reloads authored TypeScript instead of reusing the first imported definition 1840ms - ✓ flows check --watch > detects a nearer config appearing and falls back after it is deleted 1843ms - ✓ flows check --watch > keeps watching after the target is deleted and recreated 1862ms - ✓ flows check --watch > queues changes during a slow check without overlapping checks 785ms - ✓ tests/budget-preflight.test.ts (25 tests) 16ms - ❯ tests/authored-parallel-agents.test.ts (8 tests | 8 failed) 45253ms - × authored steps under local workers with capacity > runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity 5031ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking 10045ms - → chain fixture daemon failed to start - × authored steps under local workers with capacity > runs agents in distinct working directories side by side (the kernel carries cwd) 5028ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > serializes agents whose cwd is a symlink alias of the same directory 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > serializes agents whose cwd is a directory nested inside the other 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > never starts queued agents once the body has failed 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > never starts a queued agent when the agent holding the only slot fails 5031ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored steps under local workers with capacity > parks the overflow when the body is not told the capacity (the defect this closes) 5027ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - ✓ tests/shipped-source-flow-header-provenance.test.ts (1 test) 2405ms - ✓ shipped-source flow header provenance > fails closed for unsafe authored and declarative headers 2404ms - ✓ tests/provider-trigger-contract.test.ts (7 tests) 984ms - ✓ provider trigger contract > accepts one subscription from each of five providers and refuses a bogus event on any of them 527ms - ✓ provider trigger contract > fails `flows check` before deployment and passes once the event is real 452ms - ✓ tests/work-package-consumer.test.ts (13 tests) 100ms - ❯ tests/authored-retried-child-resume-live.test.ts (2 tests | 2 failed) 40091ms - × an authored step whose child run retried an attempt > resumes after a kill mid-step and reads the terminal completion, not the crashed one 30044ms - → timed out waiting for the second step to start - × an authored step whose child run retried an attempt > reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt 10046ms - → chain fixture daemon failed to start - ✓ tests/helpers-fanout.test.ts (96 tests) 165ms - ❯ tests/yaml-local-agent-live.test.ts (9 tests | 9 failed) 4292ms - × YAML --local-agent through the built CLI and real daemon > runs with the checked step CLI and model and journals done 485ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-XPphJU/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-d131dc67f53a.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > runs with the checked named CLI and model and journals done 461ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-A9B8QR/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-479047aa49e9.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > runs with the checked flow CLI and model and journals done 479ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-2BaqZl/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-4d3a72f013c6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > runs with the checked project CLI and model and journals done 449ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-AN0zA2/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e5fc70a90f54.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > still parks without --local-agent 467ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ssoGrq/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-b1f428096849.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > resumes a parked spec run with --local-agent instead of parking identically again 506ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-xDgERa/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-fbd462b6d354.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > parks a second time with a different message when the attached worker is not eligible 506ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-lRHNia/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-a61e7f69083b.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > reports the agent process failure 471ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rqDlTi/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-388a48a24784.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × YAML --local-agent through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin 467ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-0iQKuc/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-9f60bb118e6d.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - ❯ tests/authored-step-graph-live.test.ts (1 test | 1 failed) 10048ms - × the authored step DAG through the live kernel > carries labels and predecessors on every index record and journal step, ids unchanged 10047ms - → chain fixture daemon failed to start - ✓ tests/generate-triggers.test.ts (7 tests) 1060ms - ✓ discovers new adapters, preserves exact event names, and prefers adapter-local mappings 327ms - ✓ tests/local-agent-remedy.test.ts (16 tests) 17ms - ❯ tests/authored-detail-live.test.ts (3 tests | 3 failed) 30117ms - × carries done("step_failed", { detail }) into the report, the journal and flows status 10044ms - → chain fixture daemon failed to start - × reports a detail a caller sliced through an emoji, instead of hanging on it 10032ms - → chain fixture daemon failed to start - × leaves a one-argument done("step_failed") reporting exactly as it always did 10040ms - → chain fixture daemon failed to start - ✓ tests/yaml-helpers.test.ts (34 tests) 98ms - ✓ tests/direct-run-failure.test.ts (12 tests) 19ms - ✓ tests/authored-agent-permissions.test.ts (27 tests) 1040ms - ❯ tests/named-gate-journal.test.ts (5 tests | 5 failed) 50194ms - × a lowered subprocess_gate journals the gate command's streams > keeps both tails on a FAILING gate, the case the operator has nothing else for 10052ms - → chain fixture daemon failed to start - × a lowered subprocess_gate journals the gate command's streams > keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable 10028ms - → chain fixture daemon failed to start - × a lowered subprocess_gate journals the gate command's streams > journals the diagnostic when the gate never reached the command 10035ms - → chain fixture daemon failed to start - × a lowered subprocess_gate journals the gate command's streams > persists what the gate printed before a timeout killed it 10045ms - → chain fixture daemon failed to start - × a gate on an agent step > journals the command's streams and surfaces them in the authored failure 10033ms - → chain fixture daemon failed to start - ❯ tests/live-event-activities.test.ts (2 tests | 2 failed) 5ms - × runs surface f.on through the local daemon event path and journals its buffered wake 4ms - → relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd - × survives SIGKILL after stream.appended and delivers the frame once after daemon restart 1ms - → relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd - ✓ tests/software-garden-babysitter-composition.test.ts (6 tests | 2 skipped) 41ms - ✓ tests/worker-lease.test.ts (7 tests) 13ms - ✓ tests/worker-lease-lost.test.ts (17 tests) 16ms - ✓ tests/webhook-hardening.test.ts (11 tests) 119ms - ❯ tests/worker-lease-drift-live.test.ts (3 tests | 3 failed) 30109ms - × worker lease under clock skew between worker and daemon > holds the lease when the worker clock runs 45s ahead of the daemon 10040ms - → chain fixture daemon failed to start - × worker lease under clock skew between worker and daemon > renews before the daemon deadline when the worker clock runs 75s behind the daemon 10031ms - → chain fixture daemon failed to start - × attempt accounting after a lost worker > does not report attempt=2/1 when the first attempt died uncharged 10038ms - → chain fixture daemon failed to start - ❯ tests/yaml-declared-streams-live.test.ts (8 tests | 8 failed) 3700ms - × YAML declared streams through the built CLI and real daemon > runs with the checked step CLI and model and journals done 464ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rkv6M2/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-ff23b4decd42.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML declared streams through the built CLI and real daemon > runs with the checked named CLI and model and journals done 469ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-FxxB6c/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-603d51377ea6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML declared streams through the built CLI and real daemon > runs with the checked flow CLI and model and journals done 481ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-iO2dza/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e9db6e3db5d2.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML declared streams through the built CLI and real daemon > runs with the checked project CLI and model and journals done 444ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ZoJCvo/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-5751a62fad72.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × YAML declared streams through the built CLI and real daemon > still parks without --local-agent 464ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-jMlL5U/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-2e161935ff3e.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × YAML declared streams through the built CLI and real daemon > reports the agent process failure 441ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-MIw9Im/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-f52947074200.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - × YAML declared streams through the built CLI and real daemon > resumes the journaled stream declarations after the input YAML changes 469ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-WZBfVD/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-cc9bed13df0e.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - × YAML declared streams through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin 467ms - → WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-1OPPQB/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-c292a85b0ded.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - ✓ tests/human-to.test.ts (8 tests) 12ms - ❯ tests/authored-dispatch-live.test.ts (2 tests | 2 failed) 1204ms - × durable child flow dispatch > runs a declared child in the parent DAG and replays it without repeating effects 638ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-y36SgV/chain.flow.ts","socketPath":"/tmp/relayflowd-523f1a01b765.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - × durable child flow dispatch > lowers a named gate attached to the dispatch receipt 565ms - → REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-1jBtTA/chain.flow.ts","socketPath":"/tmp/relayflowd-dcfcff56ce6e.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - ❯ tests/plugin-loader.test.ts (9 tests | 1 failed) 2141ms - × journals plugin effect input and receipt through the daemon 2036ms - → journal client: connect failed: connect ENOENT /tmp/relayflowd-eb7bb7c4c9a6.sock - ✓ tests/shipped-source-worker-invocations.test.ts (1 test) 582830ms - ✓ shipped-source worker invocation resolution > fails closed across direct, extracted, bound, mutable, and escaped callables 582828ms - ✓ tests/deploy.test.ts (11 tests) 5180ms - ✓ flows deploy file buckets > publishes the full signed layout byte-for-byte and redeploys as a noop 812ms - ✓ flows deploy file buckets > answers --json with one object per outcome 799ms - ✓ flows deploy file buckets > reports a refusal as JSON under --json 371ms - ✓ flows deploy file buckets > refuses a missing local bundle before creating the bucket 398ms - ✓ flows deploy file buckets > refuses an unreachable bucket before copying 400ms - ✓ flows deploy file buckets > refuses an unwritable bucket 403ms - ✓ flows deploy file buckets > refuses local tampering of spec.canonical.json 373ms - ✓ flows deploy file buckets > refuses local tampering of identity.json 369ms - ✓ flows deploy file buckets > refuses asset bundles instead of using daemon-relative files 402ms - ✓ flows deploy file buckets > never labels a corrupt existing deployment as a noop 815ms - ✓ tests/bin.test.ts (12 tests) 5402ms - ✓ built flows binary > prints the installed SDK version for --version 387ms - ✓ built flows binary > prints the installed SDK version for -V 376ms - ✓ built flows binary > keeps version flags strict when extra arguments are supplied 377ms - ✓ built flows binary > prints the installed SDK version from the standalone binary for --version 988ms - ✓ built flows binary > prints the installed SDK version from the standalone binary for -V 976ms - ✓ built flows binary > refuses through a symlink to the built artifact 383ms - ✓ built flows binary > refuses through a symlinked directory component 381ms - ✓ built flows binary > classifies a signal-terminated auth probe as probe_failed 388ms - ✓ built flows binary > classifies an unavailable PATH resolver as probe_failed 382ms - ✓ built flows binary > does not describe a present non-executable CLI as missing 371ms - ✓ built flows binary > runs one auth probe for three steps sharing a flow CLI 391ms - ✓ tests/babysitter-catalog-export.test.ts (14 tests) 763ms - ✓ Babysitter catalog artifact export > CLI refuses an existing output and leaves no file on validation failure 615ms - ✓ tests/communication.test.ts (10 tests) 13ms - ✓ tests/communication-review.test.ts (6 tests) 326ms - ✓ tests/transport-evidence-bounds.test.ts (7 tests) 9ms - ✓ tests/typed-output.test.ts (14 tests) 185ms - ❯ tests/authored-probe-cache.test.ts (5 tests | 5 failed) 50215ms - × authored run CLI probe cache > nine calls have no expired attempts at capacity 1 10041ms - → chain fixture daemon failed to start - × authored run CLI probe cache > nine calls have no expired attempts at capacity 4 10048ms - → chain fixture daemon failed to start - × authored run CLI probe cache > does not serialize nine starts behind nine probes, and probes again on a new run 10033ms - → chain fixture daemon failed to start - × authored run CLI probe cache > caches probe failures while refusing all nine calls 10048ms - → chain fixture daemon failed to start - × authored run CLI probe cache > shares probe results across agent calls too 10044ms - → chain fixture daemon failed to start - ❯ tests/effect-channel.test.ts (5 tests | 4 failed) 11ms - × journals one post across interruption before none 4ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × journals one post across interruption before record 0ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × journals one post across interruption before confirm 0ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - × journals one post across interruption before complete 0ms - → Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - ✓ tests/worker-slots.test.ts (8 tests) 6ms - ✓ tests/json-schema-bound.test.ts (71 tests) 2173ms - ✓ JSON Schema termination bound > walks a deep schema with an explicit stack rather than recursion 1767ms - ✓ tests/communication-worker.test.ts (17 tests) 1719ms - ✓ tests/cloud-mirror-transport.test.ts (5 tests) 7ms - ✓ tests/mcp-lifecycle.test.ts (4 tests) 12ms - ❯ tests/step-lease.test.ts (36 tests | 4 failed) 40242ms - × f.run leases against the live kernel > enforces 10000 ms for 'sleep 5; printf ok' 10056ms - → chain fixture daemon failed to start - × f.run leases against the live kernel > enforces 40000 ms for 'sleep 31; printf ok' 10034ms - → chain fixture daemon failed to start - × f.run leases against the live kernel > enforces 30000 ms for 'sleep 31; printf ok' 10043ms - → chain fixture daemon failed to start - × f.run leases against the live kernel > enforces 100 ms for 'sleep 5' 10032ms - → chain fixture daemon failed to start - ✓ tests/model-selection.test.ts (10 tests) 16ms - ✓ tests/f-memory.test.ts (7 tests) 1109ms - ✓ tests/relayflowd-path.test.ts (10 tests) 6ms - ✓ tests/agent-artifacts.test.ts (9 tests) 57ms - ✓ tests/authored-plugin-effect.test.ts (6 tests) 56ms - ✓ tests/hosted-hardening.test.ts (11 tests) 50ms - ✓ tests/local-dev-ux.test.ts (8 tests) 35ms - ✓ tests/authored-preflight.test.ts (5 tests) 251ms - ✓ tests/deterministic-llm.test.ts (5 tests) 89ms - ↓ tests/relay-cli-surface-live.test.ts (3 tests | 3 skipped) - ✓ tests/shipped-source-models.test.ts (2 tests) 32043ms - ✓ first-party shipped source model pins > gives every TypeScript agent and LLM an explicit supported pair or a pinned named-agent declaration 32007ms - ✓ tests/authored-declined.test.ts (13 tests) 59ms - ✓ tests/resume-failure.test.ts (2 tests) 5ms - ✓ tests/dependency-validation.test.ts (6 tests) 829ms - ✓ dependency validation > accepts a valid 10,000-step reverse chain through every direct public boundary 518ms - ✓ tests/authored-hooks.test.ts (5 tests) 5ms - ✓ tests/input-binding.test.ts (12 tests) 203ms - ✓ tests/yaml-helper-effect.test.ts (4 tests) 79ms - ✓ tests/cloud-mirror-ledger.test.ts (7 tests) 1062ms - ✓ the mirror ledger > keeps the newest entries when the count cap bites 1050ms - ✓ tests/scope-preflight.test.ts (6 tests) 8ms - ✓ tests/run-from-digest.test.ts (6 tests) 4375ms - ✓ flows run digest input > submits the sealed canonical spec through the normal journal path without checkout 433ms - ✓ flows run digest input > uses a verified cache hit even after the bucket is removed 405ms - ✓ flows run digest input > resolves deploy.bucket from flows.json and honors explicit override 1186ms - ✓ flows run digest input > refuses an unconfigured bucket 784ms - ✓ flows run digest input > refuses tampered spec.canonical.json before creating run data 791ms - ✓ flows run digest input > refuses tampered identity.json before creating run data 775ms - ✓ tests/build-gate.test.ts (3 tests) 1173ms - ✓ flows build gates on flows check green (#318) > refuses a flow with an unresolvable named-agent CLI and leaves no artifacts 391ms - ✓ flows build gates on flows check green (#318) > --json emits one CheckReport object on stdout on refusal, exits 2, no artifacts 390ms - ✓ flows build gates on flows check green (#318) > builds the bundle on success (regression: gate must not block valid flows) 392ms - ✓ tests/scope-compiler.test.ts (25 tests) 10ms - ✓ tests/worker-cli-abort.test.ts (3 tests) 3740ms - ✓ stops claude and its process group when lease ownership is lost 1304ms - ✓ stops wrapper.mjs and its process group when lease ownership is lost 1403ms - ✓ fails closed when abort cannot prove the process group is gone 1032ms - ✓ tests/hn-poller.test.ts (6 tests) 6ms - ✓ tests/plugin-add.test.ts (7 tests) 1123ms - ✓ typechecks the augmented verb and rejects unknown namespaces 832ms - ✓ tests/authored-step-failed-exit.test.ts (3 tests) 9ms - ❯ tests/retried-step-failure.test.ts (1 test | 1 failed) 10048ms - × a retried step failing differently through the live kernel > reports both attempts and says the evidence differs 10047ms - → chain fixture daemon failed to start - ✓ tests/dir-watcher-poller.test.ts (6 tests) 4ms - ✓ tests/subscription-report.test.ts (8 tests) 5ms - ✓ tests/model-pricing.test.ts (10 tests) 5ms - ✓ tests/authored-use-loader.test.ts (6 tests) 852ms - ❯ tests/yaml-helper-live.test.ts (1 test | 1 failed) 426ms - × runs compiled YAML helpers through the built CLI and kernel effect journal 425ms - → {"ok":false,"command":"run","path":"/tmp/yaml-helper-live-J1oMCb/notify.yaml","resolutions":[],"diagnostics":[{"severity":"warning","kind":"unprovable_effects","stepId":"before","message":"Step \"before\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"warning","kind":"unprovable_effects","stepId":"after","message":"Step \"after\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-7f7d0b5a9175.sock","subscriptions":[]} -WARNING [unprovable_effects] Step "before" command "true" resolves, but its effects cannot be proven before execution. -WARNING [unprovable_effects] Step "after" command "true" resolves, but its effects cannot be proven before execution. -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be +0 // Object.is equality - ❯ tests/provider-trigger-executor.test.ts (4 tests | 3 failed) 19ms - × the kernel executes compiled 'app_mention' subscriptions with provider isolation and durable dedupe 9ms - → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × the kernel executes compiled 'reaction_added' subscriptions with provider isolation and durable dedupe 4ms - → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - × the kernel executes compiled 'pull_request' subscriptions with provider isolation and durable dedupe 4ms - → spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ✓ tests/journal-client-completion.test.ts (6 tests) 105ms - ❯ tests/worker-lease-lost-live.test.ts (3 tests | 3 failed) 30113ms - × reports journal success after completion rejects with lease_conflict 10043ms - → chain fixture daemon failed to start - × reports journal success after completion rejects with run_terminal 10040ms - → chain fixture daemon failed to start - × reports journal success when a renewal rejects after completion landed 10029ms - → chain fixture daemon failed to start - ✓ tests/wrapper-artifacts-cwd.test.ts (2 tests) 67ms - ✓ tests/hello-deterministic.test.ts (5 tests) 16ms - ✓ tests/worker-lease-sweep.test.ts (4 tests) 16ms - ✓ tests/transcript-tail-close.test.ts (2 tests) 1354ms - ✓ a stalled transcript-tail close > does not hold the spawn open past its bounded window 687ms - ✓ a stalled tail close beside a transcript that finished > still journals the transcript pointer 666ms - ✓ tests/cli-adapter.test.ts (4 tests) 5ms - ✓ tests/transcript-exclusion-timeout.test.ts (1 test) 295ms - ✓ tests/work-package-validator.test.ts (7 tests) 5ms - ❯ tests/communication-mixed-resume.test.ts (1 test | 1 failed) 14ms - × resumes mixed ordinary and linked agents through the real daemon without stealing peer capacity 13ms - → ENOENT: no such file or directory, open '/tmp/communication-resume-UQsaki/data/connection.json' - ✓ tests/activity-preflight.test.ts (10 tests) 18ms - ✓ tests/cli-answer.test.ts (15 tests) 9ms - ✓ tests/bundle-preflight.test.ts (4 tests) 888ms - ✓ bundle execution preflight > ignores surrounding cache configuration on a verified cache hit 431ms - ✓ bundle execution preflight > uses the built alias for a nameless flow even in a digest-only cache directory 434ms - ✓ tests/agent-relay-hardening.test.ts (12 tests) 12ms - ✓ tests/communication-preflight.test.ts (13 tests) 39ms - ↓ tests/real-cli-adapters.test.ts (3 tests | 3 skipped) - ✓ tests/memoization.test.ts (57 tests) 51ms - ✓ tests/shipped-source-call-array-forwarding.test.ts (1 test) 2764ms - ✓ shipped-source call-array forwarding > maps rest indexes and nested same-helper actuals for workers and flows 2763ms - ❯ tests/authored-parallel-llm.test.ts (6 tests | 6 failed) 60237ms - × parallel llm capacity 1 > deduplicates concurrent preflight probes 10032ms - → chain fixture daemon failed to start - × parallel llm capacity 1 > completes nine calls without expired child leases during slow preflight 10043ms - → chain fixture daemon failed to start - × parallel llm capacity 1 > keeps the durable root lease alive across two cold models 10038ms - → chain fixture daemon failed to start - × parallel llm capacity 4 > deduplicates concurrent preflight probes 10057ms - → chain fixture daemon failed to start - × parallel llm capacity 4 > completes nine calls without expired child leases during slow preflight 10038ms - → chain fixture daemon failed to start - × parallel llm capacity 4 > keeps the durable root lease alive across two cold models 10029ms - → chain fixture daemon failed to start - ✓ tests/local-agent-environment.test.ts (8 tests) 6ms - ✓ tests/fs-descriptor.test.ts (1 test) 5ms - ✓ tests/reported-cost.test.ts (4 tests) 14ms - ✓ tests/parse-json-output.test.ts (7 tests) 3ms - ✓ tests/journal-client-subscriptions.test.ts (1 test) 7ms - ✓ tests/runtime-dependencies.test.ts (1 test) 218ms - ✓ tests/communication-environment-preflight.test.ts (6 tests) 5ms - ✓ tests/authored-model-probe-kinds.test.ts (2 tests) 157ms - ✓ tests/slack-writeback.test.ts (1 test) 257ms - ✓ tests/authored-surface-authority.test.ts (2 tests) 16ms - ❯ tests/authored-declined-live.test.ts (1 test | 1 failed) 10045ms - × runs an input guard and resumes its completed declined root without repeated effects 10044ms - → chain fixture daemon failed to start - ✓ tests/adapters/claude.test.ts (7 tests) 4ms - ✓ tests/adapters/codex.test.ts (7 tests) 5ms - ✓ tests/worker-cli-cwd.test.ts (2 tests) 339ms - ✓ runAgentCli — cwd propagation (flows#357) > omits cwd when not provided (inherits parent cwd) 322ms - ✓ tests/slack-block-kit.test.ts (5 tests) 78ms - ✓ tests/communication-history.test.ts (1 test) 3ms - ✓ tests/resume-worker-lease.test.ts (2 tests) 4ms - ✓ tests/adapters/registry.test.ts (4 tests) 4ms - ✓ tests/shipped-source-parameter-provenance.test.ts (1 test) 1581ms - ✓ shipped-source parameter provenance > keeps caller-supplied identifier and destructured keys unknown 1581ms - ✓ tests/direct-run-worker-lease.test.ts (2 tests) 6ms - ✓ tests/authored-declined-report.test.ts (6 tests) 7ms - ✓ tests/promise-ancestry.test.ts (2 tests) 299ms - ✓ tests/communication-refusal.test.ts (1 test) 13ms - ✓ tests/agent-cwd-validation.test.ts (2 tests) 391ms - ✓ declarative agent cwd > is refused by `flows check` on a YAML flow before anything runs 388ms - ✓ tests/cli-cloud-mirror-flag.test.ts (4 tests) 4ms - ✓ tests/catalog-plugins.test.ts (2 tests) 3ms - ✓ tests/check-command-cwd.test.ts (1 test) 21ms - ✓ tests/communication-lazy.test.ts (1 test) 4ms - ✓ tests/cli-progress-wait.test.ts (2 tests) 3ms - ✓ tests/bundle-transport.test.ts (20 tests) 2585ms - ✓ digest references > accepts and deploys the build output for hello 417ms - ✓ digest references > accepts and deploys the build output for Hello 395ms - ✓ digest references > accepts and deploys the build output for hello.world 464ms - ✓ digest references > accepts and deploys the build output for hello_world 413ms - ✓ digest references > accepts and deploys the build output for 123 481ms - ✓ digest references > accepts and deploys the build output for A_b.c-1 410ms - ↓ tests/run-digest-live.test.ts (1 test | 1 skipped) - ✓ tests/placement.test.ts (54 tests) 17ms - ✓ tests/canonical-tree.test.ts (1 test) 2ms - ✓ tests/preflight-run-cache.test.ts (1 test) 5ms - ✓ tests/local-agent-stream-selection.test.ts (1 test) 4ms - ✓ tests/communication-tools.test.ts (1 test) 98ms - ✓ tests/authored-admission.test.ts (2 tests) 4ms - ✓ tests/memory.test.ts (18 tests) 8ms - ✓ tests/worker-platform.test.ts (1 test) 3ms -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs surface /tmp/flows-cli-package-qCfQI4/tarballs - ❯ tests/budget-authored-live.test.ts (2 tests | 2 failed) 10056ms - × authored budgets through the live kernel > retains the first completion and journals refusal of the next authored step 5030ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - × authored budgets through the live kernel > permits done after the last valid step crosses the limit 5026ms - → Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". - ✓ tests/run-digest.test.ts (4 tests) 1578ms - ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {invalid json 401ms - ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{}} 388ms - ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{"bucket":123}} 389ms - ✓ digest run configuration refusals > reports config_invalid before fetching or starting a run for {"deploy":{"bucket":""}} 399ms -PACK_OK @relayflows/surface@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/runtime.js, package/dist/runtime.d.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs sdk /tmp/flows-cli-package-qCfQI4/tarballs -node:internal/modules/run_main:107 - triggerUncaughtException( - ^ - -AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: - -2 !== 4 - - at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) - at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { - generatedMessage: true, - code: 'ERR_ASSERTION', - actual: 2, - expected: 4, - operator: 'strictEqual', - diff: 'simple' -} - -Node.js v25.6.0 - ❯ tests/event-await-cli.test.ts (1 test | 1 failed) 536ms - × parks, restarts, and replays two event wakes through the actual CLI 536ms - → Command failed: /usr/local/share/nvm/versions/node/v25.6.0/bin/node /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs /home/daytona/.relayflow-v2-supervisor/durable/repository -node:internal/modules/run_main:107 - triggerUncaughtException( - ^ - -AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: - -2 !== 4 - - at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) - at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { - generatedMessage: true, - code: 'ERR_ASSERTION', - actual: 2, - expected: 4, - operator: 'strictEqual', - diff: 'simple' -} - -Node.js v25.6.0 - -PACK_OK @relayflows/sdk@2.0.39: package/dist/index.js, package/dist/index.d.ts, package/dist/cli.js -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node scripts/pack-release.mjs relayflows /tmp/flows-cli-package-qCfQI4/tarballs -PACK_OK relayflows@2.0.39: package/bin/flows.js -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz - -added 150 packages in 2s -$ /tmp/flows-cli-package-qCfQI4/local/node_modules/.bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-qCfQI4/local/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ npm install -g --prefix /tmp/flows-cli-package-qCfQI4/prefix --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-sdk-2.0.39.tgz /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz - -added 294 packages in 4s -$ npm install --ignore-scripts --omit=optional --no-audit --no-fund /tmp/flows-cli-package-qCfQI4/tarballs/relayflows-surface-2.0.39.tgz - -added 140 packages in 2s -$ /tmp/flows-cli-package-qCfQI4/prefix/bin/flows check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -$ /usr/local/share/nvm/versions/node/v25.6.0/bin/node /tmp/flows-cli-package-qCfQI4/prefix/lib/node_modules/relayflows/bin/flows.js check examples/dependency-upgrade-bot.flow.ts -REQUIRES claude (agent "upgrader") -CHECK PASSED examples/dependency-upgrade-bot.flow.ts -CLI_PACKAGE_OK: local and global installs - ✓ tests/cli-package-gate.test.ts (1 test) 15553ms - ✓ checks authored flows with locally and globally installed release tarballs 15552ms - -⎯⎯⎯⎯⎯⎯ Failed Suites 2 ⎯⎯⎯⎯⎯⎯⎯ - - FAIL tests/authored-node-runtime.test.ts [ tests/authored-node-runtime.test.ts ] -AssertionError: expected '1.3.6' to be '1.4.0' // Object.is equality - -Expected: "1.4.0" -Received: "1.3.6" - - ❯ tests/authored-node-runtime.test.ts:18:77 - 16| - 17| beforeAll(() => { - 18| expect(spawnSync(bun, ['--version'], { encoding: 'utf8' }).stdout.tr… - | ^ - 19| expect(existsSync(daemon), 'build the current kernel or set RELAYFLO… - 20| stage = mkdtempSync(join(tmpdir(), 'authored-standalone-build-')); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/184]⎯ - - FAIL tests/mcp.test.ts > authored MCP effects against the real kernel -Error: journal client: connect failed: connect ENOENT /tmp/relayflowd-30182afda8b5.sock - ❯ Socket.onError src/journal-client.ts:105:16 - 103| socket.removeAllListeners(); - 104| this.failAll(err); - 105| reject(new Error(`journal client: connect failed: ${err.messag… - | ^ - 106| }; - 107| socket.once('error', onError); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/184]⎯ - -⎯⎯⎯⎯⎯⎯ Failed Tests 182 ⎯⎯⎯⎯⎯⎯ - - FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > journals the files the agent wrote, including under a dot-directory, and every artifact gate passes on that journal -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-818f28a002b6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/agent-artifacts-live.test.ts:136:58 - 134| f.done('success');`); - 135| const result = f.invoke(); - 136| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 137| const report = JSON.parse(result.stdout) as { runId: string; compl… - 138| expect(report.completionReason).toBe('success'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/184]⎯ - - FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run when the artifact_exists gate names a file the agent did not write -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-49a91e18aab6.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-artifacts-live.test.ts:174:58 - 172| f.done('success');`); - 173| const result = f.invoke(); - 174| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 175| const report = JSON.parse(result.stdout) as { runId: string; diagn… - 176| expect(report.diagnostics.map(d => d.kind)).toContain('step_failed… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/184]⎯ - - FAIL tests/agent-artifacts-live.test.ts > agent artifacts and gates through the built CLI, a real daemon and the local agent > fails the run with the author reason when a predicate gate returns false, journaling the verdict -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-203b5b281663.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-artifacts-live.test.ts:191:58 - 189| f.done('success');`); - 190| const result = f.invoke(); - 191| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 192| const report = JSON.parse(result.stdout) as { runId: string; diagn… - 193| const messages = report.diagnostics.map(d => `${d.kind}: ${d.messa… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/184]⎯ - - FAIL tests/agent-artifacts-live.test.ts > review follow-ups > applies a predicate gate on a helper step too, and journals its verdict -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-8b915e830e15.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-artifacts-live.test.ts:214:58 - 212| f.done('success');`); - 213| const result = f.invoke(); - 214| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 215| const report = JSON.parse(result.stdout) as { runId: string; diagn… - 216| expect(report.diagnostics.map(d => d.kind)).toContain('gate_failed… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/184]⎯ - - FAIL tests/agent-artifacts-live.test.ts > review follow-ups > records predicate verdicts on the root run so a resume reuses them instead of re-running the closure -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"review.flow.ts","socketPath":"/tmp/relayflowd-d7317185e75d.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/agent-artifacts-live.test.ts:225:58 - 223| f.done('success');`); - 224| const result = f.invoke(); - 225| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 226| const report = JSON.parse(result.stdout) as { runId: string }; - 227| const client = new JournalClient(socketPathFor(join(f.root, 'data'… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/184]⎯ - - FAIL tests/agent-cwd-live.test.ts > agents drive two checkouts under one run root > runs each CLI in its declared directory, and the run is not refused as an unknown field -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-f5385a489530.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/agent-cwd-live.test.ts:145:58 - 143| // kernel and was accepted, rather than coming back a protocol err… - 144| expect(result.stdout + result.stderr).not.toContain('unknown field… - 145| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 146| const report = JSON.parse(result.stdout) as { runId: string; compl… - 147| expect(report.completionReason).toBe('success'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/184]⎯ - - FAIL tests/agent-cwd-live.test.ts > agents drive two checkouts under one run root > gates on an artifact path relative to the agent directory -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-81e36b029a60.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/agent-cwd-live.test.ts:176:58 - 174| f.done('success');`); - 175| const result = f.invoke(); - 176| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 177| }, 120_000); - 178| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/184]⎯ - - FAIL tests/agent-cwd-live.test.ts > a declaration this contract cannot honour is refused at its own edge > refuses a path that climbs out of the run root without starting a run at all -AssertionError: expected 'RELAYFLOWD_BIN is set to "/home/dayto…' to contain 'f.agent options.cwd: expected a run-r…' - -Expected: "f.agent options.cwd: expected a run-root-relative path" -Received: "RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored." - - ❯ tests/agent-cwd-live.test.ts:192:8 - 190| // option — not the kernel's `unknown field "cwd"` relayed back af… - 191| expect(report.diagnostics.map(d => d.message).join('\n')) - 192| .toContain('f.agent options.cwd: expected a run-root-relative pa… - | ^ - 193| expect(said).not.toContain('unknown field "cwd"'); - 194| // And no run exists to inspect: the declaration was refused befor… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/184]⎯ - - FAIL tests/agent-cwd-live.test.ts > a declaration this contract cannot honour is refused at its own edge > fails the step with the reason when the directory is not there, rather than running somewhere else -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"edit.flow.ts","socketPath":"/tmp/relayflowd-8c4edf8d97fd.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-cwd-live.test.ts:204:58 - 202| f.done('success');`); - 203| const result = f.invoke(); - 204| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 205| const report = JSON.parse(result.stdout) as { - 206| runId: string; diagnostics: Array<{ kind: string; stderrTail?: s… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/184]⎯ - - FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > preserves structured agent failure details and its completed root index -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-84050d4a5bdb.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-transcript-live.test.ts:132:58 - 130| const f = fixture(`await ${operation}; f.done('success');`, 'probe… - 131| const result = f.invoke(); - 132| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 133| const report = JSON.parse(result.stdout) as { runId: string; rootR… - 134| expect(report.rootRunId).toBeTruthy(); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/184]⎯ - - FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > preserves structured llm failure details and its completed root index -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-fca2cd1b809e.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-transcript-live.test.ts:132:58 - 130| const f = fixture(`await ${operation}; f.done('success');`, 'probe… - 131| const result = f.invoke(); - 132| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 133| const report = JSON.parse(result.stdout) as { runId: string; rootR… - 134| expect(report.rootRunId).toBeTruthy(); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/184]⎯ - - FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > journals the digest in trajectory_tail on a successful agent step and writes the file it points at -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-f77a6fe24d83.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/agent-transcript-live.test.ts:159:58 - 157| f.done('success');`, 'probed ok'); - 158| const result = f.invoke(); - 159| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 160| const report = JSON.parse(result.stdout) as { runId: string; compl… - 161| expect(report.completionReason).toBe('success'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/184]⎯ - - FAIL tests/agent-transcript-live.test.ts > the transcript digest through the built CLI, a real daemon and the local agent > on a failed agent step, names the failure and the transcript in the terminal diagnostic, redacted -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"probe.flow.ts","socketPath":"/tmp/relayflowd-3bce1808e9aa.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/agent-transcript-live.test.ts:194:58 - 192| f.done('success');`, `gave up: ${secret}`, 1, secret); - 193| const result = f.invoke(); - 194| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 195| const report = JSON.parse(result.stdout) as { runId: string; diagn… - 196| // An authored step's evidence reaches the root report as the chil… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > resolves to the journaled exit code instead of ending the flow -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:25:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > resolves a green command through the same policy -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:61:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > leaves the default fatal and still resolving to the stdout string -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:79:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a timeout, which recorded no exit code to report -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:97:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a declared named gate on a recorded step whose producer succeeded - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > still fails a declared named gate on a default step whose producer succeeded -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:123:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > hands a predicate gate the recorded result, not the stdout string -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:151:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/184]⎯ - - FAIL tests/authored-advisory-run-live.test.ts > a recorded nonzero f.run through the live kernel > refuses a policy value the kernel enum does not name, before journaling anything -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-advisory-run-live.test.ts:168:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/184]⎯ - - FAIL tests/authored-completion-recovery.test.ts > reuses the committed detail after the redaction environment rotates -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-completion-recovery.test.ts:83:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/184]⎯ - - FAIL tests/authored-completion-recovery.test.ts > commits the verdict once, and a clean re-execution reads it back -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-completion-recovery.test.ts:123:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/184]⎯ - - FAIL tests/authored-completion-recovery.test.ts > recovers a committed verdict when a no-detail retry follows a pre-marker loss -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-completion-recovery.test.ts:156:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/184]⎯ - - FAIL tests/authored-completion-recovery.test.ts > reuses the admitted marker when a no-detail retry follows a post-marker loss -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-completion-recovery.test.ts:197:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/184]⎯ - - FAIL tests/authored-completion-recovery.test.ts > leaves a one-argument done() writing nothing to the verdict stream -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-completion-recovery.test.ts:225:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/184]⎯ - - FAIL tests/authored-declined-live.test.ts > runs an input guard and resumes its completed declined root without repeated effects -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-declined-live.test.ts:11:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/184]⎯ - - FAIL tests/authored-detail-live.test.ts > carries done("step_failed", { detail }) into the report, the journal and flows status -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-detail-live.test.ts:23:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/184]⎯ - - FAIL tests/authored-detail-live.test.ts > reports a detail a caller sliced through an emoji, instead of hanging on it -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-detail-live.test.ts:95:3 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/184]⎯ - - FAIL tests/authored-detail-live.test.ts > leaves a one-argument done("step_failed") reporting exactly as it always did -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-detail-live.test.ts:115:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/184]⎯ - - FAIL tests/authored-dispatch-live.test.ts > durable child flow dispatch > runs a declared child in the parent DAG and replays it without repeating effects -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-y36SgV/chain.flow.ts","socketPath":"/tmp/relayflowd-523f1a01b765.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/authored-dispatch-live.test.ts:49:55 - 47| const first = fixture.invoke('run', '--no-observer-link', '--json'… - 48| fixture.flowPath, '--input', '{}'); - 49| expect(first.status, first.stderr + first.stdout).toBe(0); - | ^ - 50| const report = JSON.parse(first.stdout) as { runId: string; comple… - 51| expect(report.completionReason).toBe('success'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/184]⎯ - - FAIL tests/authored-dispatch-live.test.ts > durable child flow dispatch > lowers a named gate attached to the dispatch receipt -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"/tmp/flows-chain-1jBtTA/chain.flow.ts","socketPath":"/tmp/relayflowd-dcfcff56ce6e.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/authored-dispatch-live.test.ts:127:49 - 125| const run = fixture.invoke('run', '--no-observer-link', '--json', … - 126| fixture.flowPath, '--input', '{}'); - 127| expect(run.status, run.stderr + run.stdout).toBe(1); - | ^ - 128| expect(run.stdout).toContain('dispatch-1.gate'); - 129| expect(run.stdout).toContain('retries_exhausted'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/184]⎯ - - FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > snapshots structured posts into the journal and delivers the same Block Kit body -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-flow-slack.test.ts:48:67 - 46| - 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 50| children.push(daemon); - ❯ tests/authored-flow-slack.test.ts:73:30 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/184]⎯ - - FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > journals exactly one effect with the authored params and typed receipt, without network -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-flow-slack.test.ts:48:67 - 46| - 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 50| children.push(daemon); - ❯ tests/authored-flow-slack.test.ts:104:30 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/184]⎯ - - FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > replays after SIGKILL before confirm with the same token and one successful completion - FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > replays after SIGKILL before complete with the same token and one successful completion -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-flow-slack.test.ts:48:67 - 46| - 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 50| children.push(daemon); - ❯ tests/authored-flow-slack.test.ts:165:25 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/184]⎯ - - FAIL tests/authored-flow-slack.test.ts > authored Slack helper effects > writes two files for two calls and supports dm, reply, and react -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-flow-slack.test.ts:48:67 - 46| - 47| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 48| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 49| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 50| children.push(daemon); - ❯ tests/authored-flow-slack.test.ts:216:30 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/184]⎯ - - FAIL tests/authored-helpers.test.ts > lowers the named acceptance helpers and Slack to confirmed journal effects -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-helpers.test.ts:50:67 - 48| - 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 52| children.push(daemon); - ❯ tests/authored-helpers.test.ts:70:28 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/184]⎯ - - FAIL tests/authored-helpers.test.ts > runs every available provider through the real kernel and resumes completed effects without a second write -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-helpers.test.ts:50:67 - 48| - 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 52| children.push(daemon); - ❯ tests/authored-helpers.test.ts:91:28 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/184]⎯ - - FAIL tests/authored-helpers.test.ts > replays after SIGKILL before confirm with the same token and one successful completion - FAIL tests/authored-helpers.test.ts > replays after SIGKILL before complete with the same token and one successful completion -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-helpers.test.ts:50:67 - 48| - 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 52| children.push(daemon); - ❯ tests/authored-helpers.test.ts:130:25 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/184]⎯ - - FAIL tests/authored-helpers.test.ts > journals provider failure with worker_error and never confirms the effect -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ start tests/authored-helpers.test.ts:50:67 - 48| - 49| async function start(dataDir: string): Promise<{ daemon: ChildProcess;… - 50| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 51| const daemon = spawn(binary, ['--data-dir', dataDir, 'serve'], { std… - 52| children.push(daemon); - ❯ tests/authored-helpers.test.ts:181:57 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/184]⎯ - - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > runs agents in distinct working directories side by side (the kernel carries cwd) - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > serializes agents whose cwd is a symlink alias of the same directory - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > serializes agents whose cwd is a directory nested inside the other - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > never starts queued agents once the body has failed - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > never starts a queued agent when the agent holding the only slot fails - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > parks the overflow when the body is not told the capacity (the defect this closes) - FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > reports the command that failed and what it printed - FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > carries the same facts structurally, not only rendered into the message - FAIL tests/budget-authored-live.test.ts > authored budgets through the live kernel > retains the first completion and journals refusal of the next authored step - FAIL tests/budget-authored-live.test.ts > authored budgets through the live kernel > permits done after the last valid step crosses the limit - FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars - FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged - FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > still counts an unpriced step toward a token budget - FAIL tests/budget-unmetered-live.test.ts > unmetered budget spend through the live kernel > accrues a priced step and stops the run when it crosses the dollar budget - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs a dollar-budgeted authored Claude agent with the same default used by preflight - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > fails invalid LLM output before the next step: not JSON - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > fails invalid LLM output before the next step: {"message":7} - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > retains tagged-template text output - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: null - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: [1,2] - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > preserves JSON values without promoting them to process wrappers: "hello" - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > refuses a model outside flows.json before a run or adapter execution - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > passes a declarative verified value through an agent into a deterministic artifact - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > journals a missing optional field as a failure before the consuming command executes -Error: Test timed out in 5000ms. -If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/184]⎯ - - FAIL tests/authored-parallel-agents.test.ts > authored steps under local workers with capacity > completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ slowAgents tests/authored-parallel-agents.test.ts:38:18 - ❯ tests/authored-parallel-agents.test.ts:82:40 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/184]⎯ - - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > deduplicates concurrent preflight probes - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > deduplicates concurrent preflight probes -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ setup tests/authored-parallel-llm.test.ts:40:18 - ❯ tests/authored-parallel-llm.test.ts:81:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/184]⎯ - - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > completes nine calls without expired child leases during slow preflight - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > completes nine calls without expired child leases during slow preflight -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ setup tests/authored-parallel-llm.test.ts:40:18 - ❯ tests/authored-parallel-llm.test.ts:93:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/184]⎯ - - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 1 > keeps the durable root lease alive across two cold models - FAIL tests/authored-parallel-llm.test.ts > parallel llm capacity 4 > keeps the durable root lease alive across two cold models -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ setup tests/authored-parallel-llm.test.ts:40:18 - ❯ tests/authored-parallel-llm.test.ts:106:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/184]⎯ - - FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > nine calls have no expired attempts at capacity 1 - FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > nine calls have no expired attempts at capacity 4 -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 - ❯ tests/authored-probe-cache.test.ts:76:58 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/184]⎯ - - FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > does not serialize nine starts behind nine probes, and probes again on a new run -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 - ❯ tests/authored-probe-cache.test.ts:96:39 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/184]⎯ - - FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > caches probe failures while refusing all nine calls -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 - ❯ tests/authored-probe-cache.test.ts:111:48 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/184]⎯ - - FAIL tests/authored-probe-cache.test.ts > authored run CLI probe cache > shares probe results across agent calls too -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ slowProbe tests/authored-probe-cache.test.ts:43:18 - ❯ tests/authored-probe-cache.test.ts:129:48 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/184]⎯ - - FAIL tests/authored-retried-child-resume-live.test.ts > an authored step whose child run retried an attempt > resumes after a kill mid-step and reads the terminal completion, not the crashed one -Error: timed out waiting for the second step to start - ❯ until tests/authored-retried-child-resume-live.test.ts:22:38 - 20| const deadline = Date.now() + timeoutMs; - 21| while (!predicate()) { - 22| if (Date.now() > deadline) throw new Error(`timed out waiting for … - | ^ - 23| await new Promise(resolve => setTimeout(resolve, 25)); - 24| } - ❯ tests/authored-retried-child-resume-live.test.ts:57:5 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/184]⎯ - - FAIL tests/authored-retried-child-resume-live.test.ts > an authored step whose child run retried an attempt > reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-retried-child-resume-live.test.ts:107:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/184]⎯ - - FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > names the failing case from the middle of a real test run -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-run-failure-evidence.test.ts:94:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/184]⎯ - - FAIL tests/authored-run-failure-evidence.test.ts > a failing f.run through the live kernel > keeps the evidence when the failure is relabelled as a timeout -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-run-failure-evidence.test.ts:156:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/184]⎯ - - FAIL tests/authored-run-failure-evidence.test.ts > the child index after the process that wrote it is gone > still names every child, with its own run id, after a daemon restart -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-run-failure-evidence.test.ts:231:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/184]⎯ - - FAIL tests/authored-step-graph-live.test.ts > the authored step DAG through the live kernel > carries labels and predecessors on every index record and journal step, ids unchanged -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/authored-step-graph-live.test.ts:53:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/184]⎯ - - FAIL tests/communication-mixed-resume.test.ts > resumes mixed ordinary and linked agents through the real daemon without stealing peer capacity -Error: ENOENT: no such file or directory, open '/tmp/communication-resume-UQsaki/data/connection.json' - ❯ tests/communication-mixed-resume.test.ts:54:35 - 52| } finally { - 53| clearTimeout(timeout); state.release(); client.close(); - 54| try { process.kill(JSON.parse(readFileSync(join(dataDir, 'connecti… - | ^ - 55| finally { rmSync(root, { recursive: true, force: true }); } - 56| } - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/184]⎯ - - FAIL tests/effect-channel.test.ts > journals one post across interruption before none - FAIL tests/effect-channel.test.ts > journals one post across interruption before record - FAIL tests/effect-channel.test.ts > journals one post across interruption before confirm - FAIL tests/effect-channel.test.ts > journals one post across interruption before complete -AssertionError: Build relayflowd first: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd: expected false to be true // Object.is equality - -- Expected -+ Received - -- true -+ false - - ❯ tests/effect-channel.test.ts:63:67 - 61| - 62| it.each(['none', 'record', 'confirm', 'complete'] as const)('journals … - 63| expect(existsSync(binary), `Build relayflowd first: ${binary}`).toBe… - | ^ - 64| const dir = mkdtempSync(join(tmpdir(), 'channel-effect-')); director… - 65| let active = await start(dir); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[58/184]⎯ - - FAIL tests/event-await-cli.test.ts > parks, restarts, and replays two event wakes through the actual CLI -Error: Command failed: /usr/local/share/nvm/versions/node/v25.6.0/bin/node /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs /home/daytona/.relayflow-v2-supervisor/durable/repository -node:internal/modules/run_main:107 - triggerUncaughtException( - ^ - -AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: - -2 !== 4 - - at expectPark (file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:58:10) - at file:///home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/tests/fixtures/event-await-cli-probe.mjs:63:3 { - generatedMessage: true, - code: 'ERR_ASSERTION', - actual: 2, - expected: 4, - operator: 'strictEqual', - diff: 'simple' -} - -Node.js v25.6.0 - - ❯ expectPark tests/fixtures/event-await-cli-probe.mjs:58:10 - ❯ tests/event-await-cli.test.ts:9:18 - 7| - 8| it('parks, restarts, and replays two event wakes through the actual CL… - 9| const output = execFileSync(process.execPath, [resolve(here, 'fixtur… - | ^ - 10| resolve(here, '../../..')], { encoding: 'utf8', timeout: 90_000 }); - 11| expect(output).toContain('E2E_PASS:'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[59/184]⎯ - - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > resumes an interrupted durable authored root without replaying completed flagship effects -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/flow-executor-chain.test.ts:186:20 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[60/184]⎯ - - FAIL tests/flow-executor-chain.test.ts > flow executor LLM and output-binding chain > flows run consumes YAML bindings and resume reuses the original journal output -AssertionError: expected null to be +0 // Object.is equality - -- Expected: -0 - -+ Received: -null - - ❯ tests/flow-executor-chain.test.ts:292:40 - 290| writeFileSync(specPath, JSON.stringify(compiled)); - 291| const first = spawnSync(fixture.binary, ['--data-dir', fixture.dat… - 292| expect(first.status, first.stderr).toBe(0); - | ^ - 293| expect(existsSync(artifact)).toBe(false); - 294| const runId = JSON.parse(first.stdout).run_id; - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[61/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > executes the exact capability-only handler for a queued receipt - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > executes the exact capability-only handler for a duplicate receipt -Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - 501| - 502| function unsupported(message: string): never { - 503| throw new PluginError('plugin_unsupported', message); - | ^ - 504| } - 505| - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:221:26 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[62/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > launches through the captured process primitive after builtin export synchronization -AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:283:11 - 281| input: descriptor(), - 282| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… - 283| })).resolves.toEqual({ completionReason: 'success', capability… - | ^ - 284| } finally { - 285| process.execPath = originalExecPath; - -Caused by: Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:277:22 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[63/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > ignores inherited launcher overrides and decodes manifests with the captured Buffer intrinsic -AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:373:11 - 371| input: descriptor('delivery-options'), - 372| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… - 373| })).resolves.toEqual({ completionReason: 'success', capability… - | ^ - 374| } finally { - 375| Buffer.prototype.toString = bufferToString; - -Caused by: Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:367:22 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[64/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > streams verified bytes when the live store is replaced and no writable staging path exists -AssertionError: promise rejected "Error: Hosted extension sandbox exited wi… { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:431:7 - 429| return { receiptId: 'receipt-1', status: 'queued' }; - 430| } }, - 431| })).resolves.toEqual({ completionReason: 'success', capabilityCall… - | ^ - 432| expect(calls).toBe(1); - 433| expect(readFileSync(join(installed.directory, 'babysitter.flow.ts'… - -Caused by: Error: Hosted extension sandbox exited without a valid completion (exit 1): /tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:20 -if (child.error) throw child.error; - ^ - -Error: spawnSync /usr/bin/bwrap ENOENT - at Object.spawnSync (node:internal/child_process:1103:20) - at spawnSync (node:child_process:911:24) - at Object. (/tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:19:15) - at Module._compile (node:internal/modules/cjs/loader:1809:14) - at Object..js (node:internal/modules/cjs/loader:1940:10) - at Module.load (node:internal/modules/cjs/loader:1530:32) - at Module._load (node:internal/modules/cjs/loader:1332:12) - at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) - at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) - at node:internal/main/run_main_module:33:47 { - errno: -2, - code: 'ENOENT', - syscall: 'spawnSync /usr/bin/bwrap', - path: '/usr/bin/bwrap', - spawnargs: [ - '--unshare-all', - '--die-with-parent', - '--new-session', - '--clearenv', - '--cap-drop', - 'ALL', - '--dir', - '/usr', - '--ro-bind', - '/usr/lib', - '/usr/lib', - '--ro-bind', - '/usr/lib64', - '/usr/lib64', - '--ro-bind', - '/usr/lib', - '/lib', - '--ro-bind', - '/usr/lib64', - '/lib64', - '--proc', - '/proc', - '--dev', - '/dev', - '--tmpfs', - '/tmp', - '--dir', - '/runtime', - '--dir', - '/extension', - '--dir', - '/extension/node_modules', - '--dir', - '/extension/node_modules/@relayflows', - '--dir', - '/extension/node_modules/@relayflows/surface', - '--dir', - '/extension/node_modules/@relayflows/surface/dist', - '--dir', - '/extension/node_modules/@relayflows/surface/dist/helpers', - '--dir', - '/extension/node_modules/@relayflows/surface/dist/triggers', - '--dir', - '/extension/src', - '--perms', - '0500', - '--ro-bind-data', - '4', - '/runtime/node', - '--perms', - '0400', - '--ro-bind-data', - '5', - '/runtime/runner.mjs', - '--perms', - '0400', - '--ro-bind-data', - '6', - '/extension/node_modules/@relayflows/surface/package.json', - '--perms', - '0400', - '--ro-bind-data', - '7', - '/extension/node_modules/@relayflows/surface/index.js', - '--perms', - '0400', - '--ro-bind-data', - '8', - '/extension/node_modules/@relayflows/surface/runtime.js', - '--perms', - '0400', - '--ro-bind-data', - '9', - '/extension/node_modules/@relayflows/surface/dist/flow.js', - '--perms', - '0400', - '--ro-bind-data', - '10', - '/extension/node_modules/@relayflows/surface/dist/helpers/providers.js', - '--perms', - '0400', - '--ro-bind-data', - '11', - '/extension/node_modules/@relayflows/surface/dist/provider-trigger.js', - '--perms', - '0400', - '--ro-bind-data', - '12', - '/extension/node_modules/@relayflows/surface/dist/schedule.js', - '--perms', - '0400', - '--ro-bind-data', - '13', - '/extension/node_modules/@relayflows/surface/dist/triggers.js', - '--perms', - '0400', - '--ro-bind-data', - '14', - '/extension/node_modules/@relayflows/surface/dist/triggers/github.js', - '--perms', - ... 27 more items - ] -} - -Node.js v25.6.0 - - ❯ Object. ../../../../../../../tmp/hosted-bwrap-wrapper-MTmSi6/bwrap-wrapper:19:15 - ❯ refuse src/hosted-extension-protocol.ts:135:21 - ❯ ChildProcess. src/hosted-extension-protocol.ts:234:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[65/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > mounts pinned private Surface bytes when the live package changes before launch -AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:456:7 - 454| return { receiptId: 'receipt-1', status: 'queued' }; - 455| } }, - 456| })).resolves.toEqual({ completionReason: 'success', capabilityCall… - | ^ - 457| expect(calls).toBe(1); - 458| expect(readFileSync(join(surfaceRoot, 'dist/flow.js'), 'utf8')).to… - -Caused by: Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:443:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[66/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > refuses oversized Surface files through the bounded descriptor reader -AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } - -- Expected -+ Received - -- Object { -+ PluginError { - "code": "plugin_unsupported", -- "message": StringContaining "cannot read pinned Surface runtime flow.js", - } - - ❯ tests/hosted-extension-isolation.test.ts:489:5 - 487| }); - 488| let calls = 0; - 489| await expect(runVerifiedNativeExtensionSandbox({ - | ^ - 490| artifact: await artifact(), - 491| manifest: validateFlowExtensionManifest(manifest()), - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[67/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > shields verified Surface files before async settlement -AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:532:9 - 530| surfaceRoot, - 531| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-1'… - 532| })).resolves.toEqual({ completionReason: 'success', capabilityCa… - | ^ - 533| } finally { - 534| if (previous === undefined) delete (Array.prototype as { then?: … - -Caused by: Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:525:20 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[68/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > preserves a typed host refusal while disclosing only a fixed marker to the child -AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to be Error: private Cloud policy detail { code: '…' } // Object.is equality - -- Expected -+ Received - -- [Error: private Cloud policy detail] -+ [Error: bubblewrap is unavailable] - - ❯ tests/hosted-extension-isolation.test.ts:560:5 - 558| provider: 'github', eventType: 'pull_request.labeled', deliveryI… - 559| }); - 560| await expect(runVerifiedNativeExtensionSandbox({ - | ^ - 561| artifact: await artifact(source), manifest: validateFlowExtensio… - 562| babysitterTurn: { queue: async () => { throw refusal; } }, - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[69/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > denies ambient credentials, host files, writes, network, subprocesses, and undeclared context verbs -Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - 501| - 502| function unsupported(message: string): never { - 503| throw new PluginError('plugin_unsupported', message); - | ^ - 504| } - 505| - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:624:13 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[70/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > enforces OS address-space and data bounds on native Buffer allocation -AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_unsupported', …(1) } - -- Expected -+ Received - -- Object { -+ PluginError { - "code": "plugin_unsupported", -- "message": StringMatching /(?:Failed to allocate memory|Array buffer allocation failed)/u, - } - - ❯ tests/hosted-extension-isolation.test.ts:646:5 - 644| }); - 645| let calls = 0; - 646| await expect(runVerifiedNativeExtensionSandbox({ - | ^ - 647| artifact: installed, - 648| manifest: validateFlowExtensionManifest(manifest()), - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[71/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > blocks extra handler fields and authority-bearing receipt fields at the parent port -AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - -- Expected -+ Received - -- Object { -- "code": "plugin_event_unroutable", -+ PluginError { -+ "code": "plugin_unsupported", - } - - ❯ tests/hosted-extension-isolation.test.ts:675:5 - 673| }); - 674| let calls = 0; - 675| await expect(runVerifiedNativeExtensionSandbox({ - | ^ - 676| artifact: await artifact(source), manifest: validateFlowExtensio… - 677| babysitterTurn: { queue: async () => { calls += 1; return { rece… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[72/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > constructs adapter authority with the captured freeze intrinsic -Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - 501| - 502| function unsupported(message: string): never { - 503| throw new PluginError('plugin_unsupported', message); - | ^ - 504| } - 505| - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:745:22 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[73/184]⎯ - - FAIL tests/hosted-extension-isolation.test.ts > hosted extension capability isolation > writes the Surface manifest and protocol without inherited toJSON behavior -AssertionError: promise rejected "Error: bubblewrap is unavailable { code: '…' }" instead of resolving - ❯ tests/hosted-extension-isolation.test.ts:788:11 - 786| babysitterTurn: { queue: async () => ({ receiptId: 'receipt-… - 787| timeoutMs: 3_000, - 788| })).resolves.toEqual({ completionReason: 'success', capability… - | ^ - 789| } finally { - 790| if (previous === undefined) delete (Object.prototype as { toJS… - -Caused by: Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-isolation.test.ts:781:22 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[74/184]⎯ - - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > uses captured JSON intrinsics for the complete parent boundary -Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - 501| - 502| function unsupported(message: string): never { - 503| throw new PluginError('plugin_unsupported', message); - | ^ - 504| } - 505| - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-protocol.test.ts:326:24 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[75/184]⎯ - - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different PR frame with zero adapter calls - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different delivery frame with zero adapter calls - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects an import-time different event frame with zero adapter calls -AssertionError: expected Error: bubblewrap is unavailable { code: '…' } to match object { code: 'plugin_event_unroutable' } - -- Expected -+ Received - -- Object { -- "code": "plugin_event_unroutable", -+ PluginError { -+ "code": "plugin_unsupported", - } - - ❯ tests/hosted-extension-protocol.test.ts:447:5 - 445| ])('rejects an import-time %s frame with zero adapter calls', async … - 446| let calls = 0; - 447| await expect(runVerifiedNativeExtensionSandbox({ - | ^ - 448| artifact: await artifact(hostileImport([frame, { type: 'error', … - 449| manifest: validateFlowExtensionManifest(manifest()), dispatch: d… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[76/184]⎯ - - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > rejects two forged calls after the authoritative first outcome settles - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > waits for a pending adapter to reject after a forged child error - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > waits for a pending adapter to resolve after a forged child error - FAIL tests/hosted-extension-protocol.test.ts > hosted extension hostile protocol > returns a typed adapter rejection even when the hostile child hangs -Error: hostile child did not invoke the adapter - ❯ Timeout._onTimeout tests/hosted-extension-protocol.test.ts:135:45 - 133| async function waitForInvocation(invoked: Promise): Promise((resolve, reject) => { - 135| const timeout = setTimeout(() => reject(new Error('hostile child d… - | ^ - 136| void invoked.then(() => { clearTimeout(timeout); resolve(); }, rej… - 137| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[77/184]⎯ - - FAIL tests/human-live.test.ts > f.human against a real daemon > parks with the question, refuses wrong answers, records one, and resumes to success -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"ask.flow.ts","socketPath":"/tmp/relayflowd-350b6838c3ee.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/human-live.test.ts:83:55 - 81| const f = fixture(); - 82| const first = f.run(); - 83| expect(first.status, first.stderr + first.stdout).toBe(3); - | ^ - 84| const parked = JSON.parse(first.stdout); - 85| expect(parked).toMatchObject({ ok: false, status: 'parked', - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[78/184]⎯ - - FAIL tests/human-live.test.ts > f.human against a real daemon > a "no" is a value the body branches on: declined, exit 0, no effect -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/human-live.test.ts:146:55 - 144| const f = fixture(); - 145| const first = f.text('run', 'ask.flow.ts', '--input', '{"plan":"v2… - 146| expect(first.status, first.stderr + first.stdout).toBe(3); - | ^ - 147| // The question is rendered as a park, never as a failed step. - 148| expect(first.stderr).toContain('⏸ human-2 (human)'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[79/184]⎯ - - FAIL tests/human-live.test.ts > f.human against a real daemon > refuses to answer a run the daemon does not know -AssertionError: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/human-live.test.ts:166:28 - 164| const f = fixture(); - 165| // Start the daemon with a real run first so the refusal is the ru… - 166| expect(f.run().status).toBe(3); - | ^ - 167| const missing = f.answer('01UNKNOWNRUN00000000000000', 'human-1', … - 168| expect(missing.status, missing.stderr + missing.stdout).toBe(2); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[80/184]⎯ - - FAIL tests/live-event-activities.test.ts > runs surface f.on through the local daemon event path and journals its buffered wake -Error: relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd - ❯ startDaemon tests/live-event-activities.test.ts:121:38 - 119| - 120| async function startDaemon(dataDir: string): Promise { - 121| if (!existsSync(RELAYFLOWD)) throw new Error(`relayflowd binary is m… - | ^ - 122| const daemon = spawn(RELAYFLOWD, ['--data-dir', dataDir, 'serve'], {… - 123| daemons.push(daemon); - ❯ tests/live-event-activities.test.ts:39:9 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[81/184]⎯ - - FAIL tests/live-event-activities.test.ts > survives SIGKILL after stream.appended and delivers the frame once after daemon restart -Error: relayflowd binary is missing: /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd - ❯ startDaemon tests/live-event-activities.test.ts:121:38 - 119| - 120| async function startDaemon(dataDir: string): Promise { - 121| if (!existsSync(RELAYFLOWD)) throw new Error(`relayflowd binary is m… - | ^ - 122| const daemon = spawn(RELAYFLOWD, ['--data-dir', dataDir, 'serve'], {… - 123| daemons.push(daemon); - ❯ tests/live-event-activities.test.ts:88:29 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[82/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > runs hn-monitor analyze-story end-to-end via a stub agent CLI (gate 2 clause 2 demo) -AssertionError: expected { …(12) } to match object { output: { …(3) }, …(1) } -(22 matching properties omitted from actual) - -- Expected -+ Received - - Object { -- "output": Object { -- "reasoning": "stub agent runtime — deterministic output for gate-2 clause-2 demo", -- "relevance_score": 5, -- "story_title": "stub", -- }, -+ "output": null, - "verification": Object { -- "gate": "json_schema", -- "verdict": "pass", -+ "gate": "execution", -+ "verdict": "fail", - }, - } - - ❯ tests/live-kernel.test.ts:657:36 - 655| && (entry as { step_id?: string }).step_id === 'analyze-story', - 656| ) as { payload: { output: unknown; verification: unknown } } | und… - 657| expect(stepCompleted?.payload).toMatchObject({ - | ^ - 658| output: { - 659| story_title: 'stub', - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[83/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > hn-monitor analyze-story FAILS verification when the CLI omits required schema fields -AssertionError: expected { …(12) } to match object { …(3) } -(21 matching properties omitted from actual) - -- Expected -+ Received - - Object { -- "completionReason": "retries_exhausted", -+ "completionReason": "worker_error", - "output": null, - "verification": Object { -- "gate": "json_schema", -+ "gate": "execution", - "verdict": "fail", - }, - } - - ❯ tests/live-kernel.test.ts:752:36 - 750| // its verification record names the json_schema rejection. The re… - 751| // parsed value is nulled before the completion is persisted. - 752| expect(stepCompleted?.payload).toMatchObject({ - | ^ - 753| completionReason: 'retries_exhausted', - 754| output: null, - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[84/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > agent step preserves the CliResult wrapper as output when the CLI emits non-JSON text -AssertionError: expected null not to be null - ❯ tests/live-kernel.test.ts:823:24 - 821| // here (parseJsonOutput returned null on non-JSON stdout) and - 822| // these assertions would all fail. - 823| expect(output).not.toBeNull(); - | ^ - 824| expect(output.exit_code).toBe(0); - 825| expect(output.stdout_tail).toContain('looked at the story'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[85/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker exposes wake_context to the CLI via RELAYFLOW_WAKE_CONTEXT env var (real analyzer prerequisite) -TypeError: Cannot read properties of null (reading 'story_title') - ❯ tests/live-kernel.test.ts:891:42 - 889| ) as { payload: { output: { story_title: string; reasoning: string… - 890| expect(stepCompleted).toBeDefined(); - 891| expect(stepCompleted!.payload.output.story_title).toBe(`echoed:${s… - | ^ - 892| expect(stepCompleted!.payload.output.reasoning).toContain(String(s… - 893| - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[86/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_WAKE_CONTEXT UNSET when the run has no wake_context (undefined-vs-null pin) -TypeError: Cannot read properties of null (reading 'env_present') - ❯ tests/live-kernel.test.ts:958:38 - 956| ) as { payload: { output: { env_present: boolean } } } | undefined; - 957| expect(completed).toBeDefined(); - 958| expect(completed!.payload.output.env_present).toBe(false); - | ^ - 959| - 960| delete process.env.RELAYFLOW_WAKE_CONTEXT; - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[87/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > AgentWorker leaves RELAYFLOW_MODEL UNSET when the step declares no model -TypeError: Cannot read properties of null (reading 'story_title') - ❯ tests/live-kernel.test.ts:1194:38 - 1192| expect(completed).toBeDefined(); - 1193| // UNSET, not EMPTY and not the leaked parent value. - 1194| expect(completed!.payload.output.story_title).toBe('model:UNSET'); - | ^ - 1195| - 1196| delete process.env.RELAYFLOW_MODEL; - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[88/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > hn-monitor analyze-story reaches done through the real Claude analyzer CLI -Error: LIVE_ANALYZER_UNAVAILABLE: "/home/daytona/.relayflow-v2-supervisor/durable/repository/testdata/preflight/analyze-story-claude-cli" does not identify as relayflows-agent-cli-v1 — failing because gate-2 acceptance requires the real analyzer to execute. Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is not gate evidence. - ❯ tests/live-kernel.test.ts:1223:15 - 1221| const notice = `LIVE_ANALYZER_UNAVAILABLE: ${readiness.detail}`; - 1222| if (process.env['RELAYFLOWS_ALLOW_ANALYZER_SKIP'] !== '1') { - 1223| throw new Error( - | ^ - 1224| `${notice} — failing because gate-2 acceptance requires the … - 1225| + 'Set RELAYFLOWS_ALLOW_ANALYZER_SKIP=1 only if this run is … - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[89/184]⎯ - - FAIL tests/live-kernel.test.ts > built flows CLI against live relayflowd > starts exactly one daemon when two runs race for one empty data dir -AssertionError: WARNING [unprovable_effects] Step "greet" command "echo" resolves, but its effects cannot be proven before execution. -WARNING [unprovable_effects] Step "shout" command "echo" resolves, but its effects cannot be proven before execution. -WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] No relayflowd binary could be found. Install the runtime package for this host (@relayflows/runtime-linux-x64), or set RELAYFLOWD_BIN to a relayflowd executable. Tried: /home/daytona/.relayflow-v2-supervisor/durable/repository/packages/sdk/dist/relayflowd. -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/live-kernel.test.ts:1388:40 - 1386| ]); - 1387| - 1388| expect(first.status, first.stderr).toBe(0); - | ^ - 1389| expect(second.status, second.stderr).toBe(0); - 1390| expect(first.stdout).toContain('completionReason: success'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[90/184]⎯ - - FAIL tests/live-kernel.test.ts > a relayflow can be scheduled: tick source against live relayflowd > a tick spawns a real run whose step reports the SCHEDULED instant -AssertionError: expected null to deeply equal { schedule_id: 'heartbeat-1m', …(3) } - -- Expected: -Object { - "lag_ms": 43000, - "schedule_id": "heartbeat-1m", - "scheduled_for_ms": 1764000000000, - "slot": 29400000, -} - -+ Received: -null - - ❯ tests/live-kernel.test.ts:1739:39 - 1737| // The bound: the run reports the grid instant and its own lag, so… - 1738| // backfilled run can tell it is running for a slot from the past. - 1739| expect(completed!.payload.output).toEqual({ - | ^ - 1740| schedule_id: 'heartbeat-1m', - 1741| slot: 29_400_000, - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[91/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > dispatches through the wrapper and keeps --json stdout report-shaped -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-2ffe8381248e.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/local-agent-live.test.ts:87:58 - 85| const f = fixture(); - 86| const result = f.invoke('--json'); - 87| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 88| expect(JSON.parse(result.stdout)).toMatchObject({ ok: true, status… - 89| expect(readFileSync(f.marker, 'utf8')).toBe('hello'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[92/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > runs beyond the initial 30-second lease without a second invocation -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-19f964cc734b.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/local-agent-live.test.ts:95:58 - 93| const f = fixture(0, undefined, 35_000); - 94| const result = f.invoke('--json'); - 95| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 96| expect(JSON.parse(result.stdout)).toMatchObject({ ok: true, comple… - 97| expect(readFileSync(f.marker, 'utf8')).toBe('hello'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[93/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > renders actual agent completion in text output -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/local-agent-live.test.ts:101:58 - 99| it('renders actual agent completion in text output', () => { - 100| const result = fixture().invoke(); - 101| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 102| expect(result.stderr).toContain('✓ agent-1 (agent) [agent: complet… - 103| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[94/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > returns a failed run when the agent process fails -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/local-agent-live.test.ts:106:58 - 104| it('returns a failed run when the agent process fails', () => { - 105| const result = fixture(7).invoke(); - 106| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 107| expect(result.stderr).toContain('✗ agent-1'); - 108| expect(result.stderr).not.toContain('[agent: completed]'); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[95/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > prints a remedy that runs the parked authored flow to completion -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-0eeb4a81fa4b.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/local-agent-live.test.ts:129:58 - 127| const parked = f.park(input, '--json', '--no-observer-link'); - 128| - 129| expect(parked.status, parked.stderr + parked.stdout).toBe(3); - | ^ - 130| expect(JSON.parse(parked.stdout)).toMatchObject({ status: 'parked'… - 131| const message = JSON.parse(parked.stdout).diagnostics.at(-1).messa… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[96/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > prints a remedy that runs, for a run started from an input file too long to be one -AssertionError: REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","resolutions":[],"diagnostics":[{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"path":"hello.flow.ts","socketPath":"/tmp/relayflowd-e66e0580aab9.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/local-agent-live.test.ts:166:58 - 164| const parked = f.park(inputPath, '--json', '--no-observer-link'); - 165| - 166| expect(parked.status, parked.stderr + parked.stdout).toBe(3); - | ^ - 167| const rootRunId = JSON.parse(parked.stdout).rootRunId as string; - 168| - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[97/184]⎯ - - FAIL tests/local-agent-live.test.ts > built CLI local agent against a real daemon > refuses a workspace it cannot pin before invoking the agent -AssertionError: expected 'REFUSED [relayflowd_not_found] RELAYF…' to contain 'stream-only' - -- Expected -+ Received - -- stream-only -+ REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -+ - - ❯ tests/local-agent-live.test.ts:194:27 - 192| const result = f.invoke(); - 193| expect(result.status, result.stderr + result.stdout).toBe(2); - 194| expect(result.stderr).toContain('stream-only'); - | ^ - 195| expect(existsSync(f.marker)).toBe(false); - 196| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[98/184]⎯ - - FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > keeps both tails on a FAILING gate, the case the operator has nothing else for -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/named-gate-journal.test.ts:53:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[99/184]⎯ - - FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/named-gate-journal.test.ts:70:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[100/184]⎯ - - FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > journals the diagnostic when the gate never reached the command -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/named-gate-journal.test.ts:87:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[101/184]⎯ - - FAIL tests/named-gate-journal.test.ts > a lowered subprocess_gate journals the gate command's streams > persists what the gate printed before a timeout killed it -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/named-gate-journal.test.ts:109:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[102/184]⎯ - - FAIL tests/named-gate-journal.test.ts > a gate on an agent step > journals the command's streams and surfaces them in the authored failure -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/named-gate-journal.test.ts:134:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[103/184]⎯ - - FAIL tests/plugin-loader.test.ts > journals plugin effect input and receipt through the daemon -Error: journal client: connect failed: connect ENOENT /tmp/relayflowd-eb7bb7c4c9a6.sock - ❯ Socket.onError src/journal-client.ts:105:16 - 103| socket.removeAllListeners(); - 104| this.failAll(err); - 105| reject(new Error(`journal client: connect failed: ${err.messag… - | ^ - 106| }; - 107| socket.once('error', onError); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[104/184]⎯ - - FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'app_mention' subscriptions with provider isolation and durable dedupe - FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'reaction_added' subscriptions with provider isolation and durable dedupe - FAIL tests/provider-trigger-executor.test.ts > the kernel executes compiled 'pull_request' subscriptions with provider isolation and durable dedupe -Error: spawnSync /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ submit tests/provider-trigger-executor.test.ts:43:89 - 41| steps: [{ id: 'effect', type: 'deterministic', command: `printf ac… - 42| })))); - 43| const submit = (envelope: unknown, key: string, executor = source.na… - | ^ - 44| '--data-dir', dir, 'run', spec, '--event', JSON.stringify({ type: … - 45| ], { encoding: 'utf8', stdio: 'pipe' })) as { matched: boolean; dedu… - ❯ tests/provider-trigger-executor.test.ts:50:12 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[105/184]⎯ - - FAIL tests/retried-step-failure.test.ts > a retried step failing differently through the live kernel > reports both attempts and says the evidence differs -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/retried-step-failure.test.ts:28:19 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[106/184]⎯ - - FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 10000 ms for 'sleep 5; printf ok' - FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 40000 ms for 'sleep 31; printf ok' - FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 30000 ms for 'sleep 31; printf ok' - FAIL tests/step-lease.test.ts > f.run leases against the live kernel > enforces 100 ms for 'sleep 5' -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/step-lease.test.ts:104:23 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[107/184]⎯ - - FAIL tests/webhook-live.test.ts > executes and deduplicates 'app_mention' only for its provider and matching payload - FAIL tests/webhook-live.test.ts > executes and deduplicates 'reaction_added' only for its provider and matching payload - FAIL tests/webhook-live.test.ts > executes and deduplicates 'pull_request' only for its provider and matching payload -Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ until tests/webhook-live.test.ts:39:9 - 37| const deadline = Date.now() + 10_000; - 38| while (Date.now() < deadline) { if (await predicate()) return; await… - 39| throw new Error(`webhook integration timed out: ${detail()}`); - | ^ - 40| } - 41| async function daemon(dir: string): Promise { - ❯ daemon tests/webhook-live.test.ts:43:3 - ❯ tests/webhook-live.test.ts:100:3 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[108/184]⎯ - - FAIL tests/webhook-live.test.ts > flows serve-webhook writes JSON before the daemon starts, then journals and archives exactly once -Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ until tests/webhook-live.test.ts:39:9 - 37| const deadline = Date.now() + 10_000; - 38| while (Date.now() < deadline) { if (await predicate()) return; await… - 39| throw new Error(`webhook integration timed out: ${detail()}`); - | ^ - 40| } - 41| async function daemon(dir: string): Promise { - ❯ daemon tests/webhook-live.test.ts:43:3 - ❯ tests/webhook-live.test.ts:121:3 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[109/184]⎯ - - FAIL tests/webhook-live.test.ts > replays a dropped file after SIGKILL before spawn -Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ until tests/webhook-live.test.ts:39:9 - 37| const deadline = Date.now() + 10_000; - 38| while (Date.now() < deadline) { if (await predicate()) return; await… - 39| throw new Error(`webhook integration timed out: ${detail()}`); - | ^ - 40| } - 41| async function daemon(dir: string): Promise { - ❯ daemon tests/webhook-live.test.ts:43:3 - ❯ tests/webhook-live.test.ts:137:17 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[110/184]⎯ - - FAIL tests/webhook-live.test.ts > resumes the same journal after SIGKILL after spawn and before acknowledgement -Error: webhook integration timed out: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/debug/relayflowd ENOENT - ❯ until tests/webhook-live.test.ts:39:9 - 37| const deadline = Date.now() + 10_000; - 38| while (Date.now() < deadline) { if (await predicate()) return; await… - 39| throw new Error(`webhook integration timed out: ${detail()}`); - | ^ - 40| } - 41| async function daemon(dir: string): Promise { - ❯ daemon tests/webhook-live.test.ts:43:3 - ❯ tests/webhook-live.test.ts:150:17 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[111/184]⎯ - - FAIL tests/worker-lease-drift-live.test.ts > worker lease under clock skew between worker and daemon > holds the lease when the worker clock runs 45s ahead of the daemon -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ leasedAgentRun tests/worker-lease-drift-live.test.ts:41:21 - ❯ tests/worker-lease-drift-live.test.ts:73:50 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[112/184]⎯ - - FAIL tests/worker-lease-drift-live.test.ts > worker lease under clock skew between worker and daemon > renews before the daemon deadline when the worker clock runs 75s behind the daemon -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ leasedAgentRun tests/worker-lease-drift-live.test.ts:41:21 - ❯ tests/worker-lease-drift-live.test.ts:84:50 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[113/184]⎯ - - FAIL tests/worker-lease-drift-live.test.ts > attempt accounting after a lost worker > does not report attempt=2/1 when the first attempt died uncharged -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/worker-lease-drift-live.test.ts:105:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[114/184]⎯ - - FAIL tests/worker-lease-lost-live.test.ts > reports journal success after completion rejects with lease_conflict - FAIL tests/worker-lease-lost-live.test.ts > reports journal success after completion rejects with run_terminal -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/worker-lease-lost-live.test.ts:15:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[115/184]⎯ - - FAIL tests/worker-lease-lost-live.test.ts > reports journal success when a renewal rejects after completion landed -Error: chain fixture daemon failed to start - ❯ Object.connect tests/flow-chain-fixture.ts:53:13 - 51| } catch { client.close(); await new Promise(resolve => setTime… - 52| } - 53| throw new Error('chain fixture daemon failed to start'); - | ^ - 54| }, - 55| /** - ❯ tests/worker-lease-lost-live.test.ts:59:18 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[116/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked step CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rkv6M2/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-ff23b4decd42.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:63:58 - 61| const f = fixture(source); - 62| const result = f.invoke(); - 63| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 64| const report = JSON.parse(result.stdout); - 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[117/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked named CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-FxxB6c/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-603d51377ea6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:63:58 - 61| const f = fixture(source); - 62| const result = f.invoke(); - 63| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 64| const report = JSON.parse(result.stdout); - 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[118/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked flow CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-iO2dza/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e9db6e3db5d2.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:63:58 - 61| const f = fixture(source); - 62| const result = f.invoke(); - 63| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 64| const report = JSON.parse(result.stdout); - 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[119/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > runs with the checked project CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ZoJCvo/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-5751a62fad72.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:63:58 - 61| const f = fixture(source); - 62| const result = f.invoke(); - 63| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 64| const report = JSON.parse(result.stdout); - 65| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[120/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > still parks without --local-agent -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-jMlL5U/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-2e161935ff3e.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:94:58 - 92| it('still parks without --local-agent', () => { - 93| const result = fixture().invoke(false); - 94| expect(result.status, result.stderr + result.stdout).toBe(3); - | ^ - 95| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… - 96| expect(result.stderr).toContain("flows run --local-agent 'flows/he… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[121/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > reports the agent process failure -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-MIw9Im/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-f52947074200.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:101:58 - 99| it('reports the agent process failure', () => { - 100| const result = fixture('step', 'fail').invoke(); - 101| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 102| expect(JSON.parse(result.stdout)).toMatchObject({ ok: false, statu… - 103| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[122/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > resumes the journaled stream declarations after the input YAML changes -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-WZBfVD/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-cc9bed13df0e.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:108:58 - 106| const f = fixture(); - 107| const parked = f.invoke(false); - 108| expect(parked.status, parked.stderr + parked.stdout).toBe(3); - | ^ - 109| const first = JSON.parse(parked.stdout); - 110| const client = new JournalClient(first.socketPath); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[123/184]⎯ - - FAIL tests/yaml-declared-streams-live.test.ts > YAML declared streams through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-1OPPQB/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-c292a85b0ded.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-declared-streams-live.test.ts:126:58 - 124| it('preserves declared workspace surfaces that the local worker cann… - 125| const result = fixture('step', 'hello', true).invoke(); - 126| expect(result.status, result.stderr + result.stdout).toBe(3); - | ^ - 127| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… - 128| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[124/184]⎯ - - FAIL tests/yaml-helper-live.test.ts > runs compiled YAML helpers through the built CLI and kernel effect journal -AssertionError: {"ok":false,"command":"run","path":"/tmp/yaml-helper-live-J1oMCb/notify.yaml","resolutions":[],"diagnostics":[{"severity":"warning","kind":"unprovable_effects","stepId":"before","message":"Step \"before\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"warning","kind":"unprovable_effects","stepId":"after","message":"Step \"after\" command \"true\" resolves, but its effects cannot be proven before execution."},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-7f7d0b5a9175.sock","subscriptions":[]} -WARNING [unprovable_effects] Step "before" command "true" resolves, but its effects cannot be proven before execution. -WARNING [unprovable_effects] Step "after" command "true" resolves, but its effects cannot be proven before execution. -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-helper-live.test.ts:58:56 - 56| }); - 57| const result = invoke('run', path, '--local-agent'); - 58| expect(result.status, result.stdout + result.stderr).toBe(0); - | ^ - 59| const report = JSON.parse(result.stdout); - 60| expect(report).toMatchObject({ status: 'completed', completionReason… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[125/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked step CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-XPphJU/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-d131dc67f53a.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:75:58 - 73| const f = fixture(source); - 74| const result = f.invoke(); - 75| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 76| const report = JSON.parse(result.stdout); - 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[126/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked named CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-A9B8QR/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"named","model":"yaml-test-model","modelSource":"named"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-479047aa49e9.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:75:58 - 73| const f = fixture(source); - 74| const result = f.invoke(); - 75| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 76| const report = JSON.parse(result.stdout); - 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[127/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked flow CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-2BaqZl/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"flow","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-4d3a72f013c6.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:75:58 - 73| const f = fixture(source); - 74| const result = f.invoke(); - 75| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 76| const report = JSON.parse(result.stdout); - 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[128/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > runs with the checked project CLI and model and journals done -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-AN0zA2/flows.json","resolutions":[{"stepId":"greet","cli":"./agent.mjs","source":"project","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-e5fc70a90f54.sock","subscriptions":[]} -: expected 2 to be +0 // Object.is equality - -- Expected -+ Received - -- 0 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:75:58 - 73| const f = fixture(source); - 74| const result = f.invoke(); - 75| expect(result.status, result.stderr + result.stdout).toBe(0); - | ^ - 76| const report = JSON.parse(result.stdout); - 77| expect(report).toMatchObject({ ok: true, status: 'completed', comp… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[129/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > still parks without --local-agent -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-ssoGrq/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-b1f428096849.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:96:58 - 94| it('still parks without --local-agent', () => { - 95| const result = fixture().invoke(false); - 96| expect(result.status, result.stderr + result.stdout).toBe(3); - | ^ - 97| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… - 98| expect(result.stderr).toContain("flows run --local-agent 'flows/he… - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[130/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > resumes a parked spec run with --local-agent instead of parking identically again -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-xDgERa/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-fbd462b6d354.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:114:58 - 112| const f = fixture(); - 113| const parked = f.invoke(false); - 114| expect(parked.status, parked.stderr + parked.stdout).toBe(3); - | ^ - 115| const { runId } = JSON.parse(parked.stdout); - 116| const first = parkMessage(parked); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[131/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > parks a second time with a different message when the attached worker is not eligible -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-lRHNia/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-a61e7f69083b.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:139:58 - 137| const f = fixture('step', 'hello', true); - 138| const parked = f.invoke(false); - 139| expect(parked.status, parked.stderr + parked.stdout).toBe(3); - | ^ - 140| const { runId } = JSON.parse(parked.stdout); - 141| - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[132/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > reports the agent process failure -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-rqDlTi/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-388a48a24784.sock","subscriptions":[]} -: expected 2 to be 1 // Object.is equality - -- Expected -+ Received - -- 1 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:153:58 - 151| it('reports the agent process failure', () => { - 152| const result = fixture('step', 'fail').invoke(); - 153| expect(result.status, result.stderr + result.stdout).toBe(1); - | ^ - 154| expect(JSON.parse(result.stdout)).toMatchObject({ ok: false, statu… - 155| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[133/184]⎯ - - FAIL tests/yaml-local-agent-live.test.ts > YAML --local-agent through the built CLI and real daemon > preserves declared workspace surfaces that the local worker cannot pin -AssertionError: WARNING [editor_schema_missing] For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json -REFUSED [relayflowd_not_found] RELAYFLOWD_BIN is set to "/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored. -{"ok":false,"command":"run","path":"flows/hello.flow.yaml","projectConfigPath":"/tmp/flows-yaml-local-0iQKuc/flows.json","resolutions":[{"stepId":"greet","cli":"../agent.mjs","source":"step","model":"yaml-test-model","modelSource":"step"}],"diagnostics":[{"severity":"warning","kind":"editor_schema_missing","message":"For editor validation, add this first line: # yaml-language-server: $schema=https://schema.relayflows.dev/v0.1/flows.schema.json"},{"severity":"refusal","kind":"relayflowd_not_found","message":"RELAYFLOWD_BIN is set to \"/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd\", which is not an executable file. Point it at a relayflowd binary or unset it; it is not ignored."}],"socketPath":"/tmp/relayflowd-9f60bb118e6d.sock","subscriptions":[]} -: expected 2 to be 3 // Object.is equality - -- Expected -+ Received - -- 3 -+ 2 - - ❯ tests/yaml-local-agent-live.test.ts:159:58 - 157| it('preserves declared workspace surfaces that the local worker cann… - 158| const result = fixture('step', 'hello', true).invoke(); - 159| expect(result.status, result.stderr + result.stdout).toBe(3); - | ^ - 160| expect(JSON.parse(result.stdout)).toMatchObject({ status: 'parked'… - 161| }); - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[134/184]⎯ - -⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ - -Vitest caught 81 unhandled errors during the test run. -This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. - -⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ -Error: bubblewrap is unavailable - ❯ unsupported src/hosted-extension-sandbox.ts:503:9 - 501| - 502| function unsupported(message: string): never { - 503| throw new PluginError('plugin_unsupported', message); - | ^ - 504| } - 505| - ❯ executable src/hosted-extension-sandbox.ts:484:18 - ❯ Module.runHostedExtensionSandbox src/hosted-extension-sandbox.ts:176:17 - ❯ Module.runVerifiedNativeExtensionSandbox src/hosted-extension-isolation.ts:209:16 - ❯ tests/hosted-extension-protocol.test.ts:471:17 - ❯ node_modules/@vitest/runner/dist/index.js:533:5 - ❯ runTest node_modules/@vitest/runner/dist/index.js:1056:11 - ❯ runSuite node_modules/@vitest/runner/dist/index.js:1205:15 - ❯ runSuite node_modules/@vitest/runner/dist/index.js:1205:15 - ❯ runFiles node_modules/@vitest/runner/dist/index.js:1262:5 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { code: 'plugin_unsupported' } -This error originated in "tests/hosted-extension-protocol.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "rejects two forged calls after the authoritative first outcome settles". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd', path: '/home/daytona/.relayflow-v2-supervisor/durable/repository/kernel/target/release/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-mcp-daemon-5wlbr4', 'serve' ] } -This error originated in "tests/mcp.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "authored MCP effects against the real kernel". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-xvpslp/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs f.llm -> f.agent -> f.run with schema-verified journal output and the exact allowed model". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-IFpT2Q/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs a dollar-budgeted authored Claude agent with the same default used by preflight". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-6jrlkC/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "fails invalid LLM output before the next step: not JSON". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-4XDEdQ/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "fails invalid LLM output before the next step: {"message":7}". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-JsPNYc/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "retains tagged-template text output". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-fzw5uD/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: null". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Y4QWu7/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: [1,2]". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-b4TCqm/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "preserves JSON values without promoting them to process wrappers: "hello"". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-oREBW2/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "refuses a model outside flows.json before a run or adapter execution". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-qcE7k6/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs the exact authored flagship f.llm -> f.agent -> f.run path through the durable CLI root". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - ❯ runNextTicks node:internal/process/task_queues:69:3 - ❯ processTimers node:internal/timers:538:9 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-FupV7R/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "resumes an interrupted durable authored root without replaying completed flagship effects". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-M7J3pX/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "passes a declarative verified value through an agent into a deterministic artifact". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-9BB2i5/data', 'serve' ] } -This error originated in "tests/flow-executor-chain.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "journals a missing optional field as a failure before the consuming command executes". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dqIUZW/data', 'serve' ] } -This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports the command that failed and what it printed". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-uhNgHm/data', 'serve' ] } -This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "names the failing case from the middle of a real test run". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-zJ1b8A/data', 'serve' ] } -This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "carries the same facts structurally, not only rendered into the message". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-CkyoJK/data', 'serve' ] } -This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "keeps the evidence when the failure is relabelled as a timeout". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-U9XRo2/data', 'serve' ] } -This error originated in "tests/authored-run-failure-evidence.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "still names every child, with its own run id, after a daemon restart". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-yPgPYv/data', 'serve' ] } -This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reuses the committed detail after the redaction environment rotates". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-PRn9w7/data', 'serve' ] } -This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs an unpriced step under a dollar budget without tripping it, journaling unknown dollars". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-D9a9Oq/data', 'serve' ] } -This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "commits the verdict once, and a clean re-execution reads it back". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-owjUcH/data', 'serve' ] } -This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "journals an unpriced claude step's reported cost beside unchanged metered usage, and the verdict is unchanged". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-pSanTJ/data', 'serve' ] } -This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "still counts an unpriced step toward a token budget". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Nns61Q/data', 'serve' ] } -This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "recovers a committed verdict when a no-detail retry follows a pre-marker loss". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-bA6ll3/data', 'serve' ] } -This error originated in "tests/budget-unmetered-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "accrues a priced step and stops the run when it crosses the dollar budget". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-m5sMU1/data', 'serve' ] } -This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reuses the admitted marker when a no-detail retry follows a post-marker loss". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-2ELg5Y/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "resolves to the journaled exit code instead of ending the flow". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nj69I2/data', 'serve' ] } -This error originated in "tests/authored-completion-recovery.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "leaves a one-argument done() writing nothing to the verdict stream". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-b8Ad8d/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "resolves a green command through the same policy". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-WtLBUR/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "leaves the default fatal and still resolving to the stdout string". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-eMk37b/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "still fails a timeout, which recorded no exit code to report". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-24Ikyd/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "still fails a declared named gate on a recorded step whose producer succeeded". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-mDnJzV/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "still fails a declared named gate on a default step whose producer succeeded". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-jvaNRB/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "hands a predicate gate the recorded result, not the stdout string". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dYvj0p/data', 'serve' ] } -This error originated in "tests/authored-advisory-run-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "refuses a policy value the kernel enum does not name, before journaling anything". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-jiqcDp/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs more concurrent f.llm calls than the worker holds side by side, never more than its capacity". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-UdkuFa/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "completes more concurrent f.agent calls than the worker holds: the overflow waits for a slot instead of parking". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-fTRrrG/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs agents in distinct working directories side by side (the kernel carries cwd)". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-KJKa7m/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "serializes agents whose cwd is a symlink alias of the same directory". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-QVUycL/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "serializes agents whose cwd is a directory nested inside the other". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nmYBtf/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "never starts queued agents once the body has failed". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-NkgYsK/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "never starts a queued agent when the agent holding the only slot fails". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-0cMFDA/data', 'serve' ] } -This error originated in "tests/authored-parallel-agents.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "parks the overflow when the body is not told the capacity (the defect this closes)". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-faLVTU/data', 'serve' ] } -This error originated in "tests/authored-retried-child-resume-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reads the terminal completion with no daemon restart or flows resume, when a worker died mid-attempt". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-JNkv2g/data', 'serve' ] } -This error originated in "tests/authored-step-graph-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "carries labels and predecessors on every index record and journal step, ids unchanged". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-CHClSY/data', 'serve' ] } -This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "keeps both tails on a FAILING gate, the case the operator has nothing else for". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-3Tbot5/data', 'serve' ] } -This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "keeps both tails on a PASSING gate, so a gate that passed for the wrong reason is inspectable". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Mo1Ujv/data', 'serve' ] } -This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "carries done("step_failed", { detail }) into the report, the journal and flows status". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ATZsAn/data', 'serve' ] } -This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "journals the diagnostic when the gate never reached the command". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-FeuqLB/data', 'serve' ] } -This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports a detail a caller sliced through an emoji, instead of hanging on it". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-dUQXuW/data', 'serve' ] } -This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "persists what the gate printed before a timeout killed it". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-8hfXNR/data', 'serve' ] } -This error originated in "tests/authored-detail-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "leaves a one-argument done("step_failed") reporting exactly as it always did". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-DMidJl/data', 'serve' ] } -This error originated in "tests/named-gate-journal.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "journals the command's streams and surfaces them in the authored failure". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-MvAkYy/data', 'serve' ] } -This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "holds the lease when the worker clock runs 45s ahead of the daemon". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Cl9Bgl/data', 'serve' ] } -This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "nine calls have no expired attempts at capacity 1". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-LvI4Rv/data', 'serve' ] } -This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "renews before the daemon deadline when the worker clock runs 75s behind the daemon". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ynhAT3/data', 'serve' ] } -This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "nine calls have no expired attempts at capacity 4". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ZQIi8r/data', 'serve' ] } -This error originated in "tests/worker-lease-drift-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "does not report attempt=2/1 when the first attempt died uncharged". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-cY6K4L/data', 'serve' ] } -This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "does not serialize nine starts behind nine probes, and probes again on a new run". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/plugin-load-s9hTQw/data', 'serve' ] } -This error originated in "tests/plugin-loader.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "journals plugin effect input and receipt through the daemon". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-sCRrSn/data', 'serve' ] } -This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "enforces 10000 ms for 'sleep 5; printf ok'". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Xs671t/data', 'serve' ] } -This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "caches probe failures while refusing all nine calls". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-356w83/data', 'serve' ] } -This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "enforces 40000 ms for 'sleep 31; printf ok'". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-nCxLVY/data', 'serve' ] } -This error originated in "tests/authored-probe-cache.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "shares probe results across agent calls too". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-AxcrXd/data', 'serve' ] } -This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "enforces 30000 ms for 'sleep 31; printf ok'". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-l2XnQy/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "deduplicates concurrent preflight probes". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-6KhNI6/data', 'serve' ] } -This error originated in "tests/step-lease.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "enforces 100 ms for 'sleep 5'". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-LXeJoy/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "completes nine calls without expired child leases during slow preflight". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-5537Yz/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "keeps the durable root lease alive across two cold models". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-RbQo8K/data', 'serve' ] } -This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports journal success after completion rejects with lease_conflict". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-ffeuku/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "deduplicates concurrent preflight probes". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-tqKnTV/data', 'serve' ] } -This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports journal success after completion rejects with run_terminal". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-3XgXEk/data', 'serve' ] } -This error originated in "tests/retried-step-failure.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports both attempts and says the evidence differs". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-AX91iS/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "completes nine calls without expired child leases during slow preflight". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-mhAM3p/data', 'serve' ] } -This error originated in "tests/worker-lease-lost-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "reports journal success when a renewal rejects after completion landed". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-Tq1iTN/data', 'serve' ] } -This error originated in "tests/authored-parallel-llm.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "keeps the durable root lease alive across two cold models". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-vBnjzq/data', 'serve' ] } -This error originated in "tests/authored-declined-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "runs an input guard and resumes its completed declined root without repeated effects". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-2FEoG2/data', 'serve' ] } -This error originated in "tests/budget-authored-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "retains the first completion and journals refusal of the next authored step". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. - -⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯ -Error: spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd ENOENT - ❯ Process.ChildProcess._handle.onexit node:internal/child_process:285:19 - ❯ onErrorNT node:internal/child_process:483:16 - ❯ processTicksAndRejections node:internal/process/task_queues:90:21 - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'spawn /home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', path: '/home/daytona/.relayflows-toolchain/target/2962130851/debug/relayflowd', spawnargs: [ '--data-dir', '/tmp/flows-chain-zAREiM/data', 'serve' ] } -This error originated in "tests/budget-authored-live.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. -The latest test that might've caused the error is "permits done after the last valid step crosses the limit". It might mean one of the following: -- The error was thrown, while Vitest was running this test. -- If the error occurred after the test had been completed, this was the last documented test before it was thrown. -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ - - Test Files 41 failed | 202 passed | 3 skipped (246) - Tests 182 failed | 3530 passed | 30 skipped (3742) - Errors 81 errors - Start at 07:01:21 - Duration 698.51s (transform 6.61s, setup 1.04s, collect 70.87s, tests 1957.35s, environment 29ms, prepare 9.67s) - - -exit=1 diff --git a/evidence/cli-runtime-dependencies/surface-build.txt b/evidence/cli-runtime-dependencies/surface-build.txt deleted file mode 100644 index dd6b923f..00000000 --- a/evidence/cli-runtime-dependencies/surface-build.txt +++ /dev/null @@ -1,7 +0,0 @@ -$ npm run build --prefix packages/surface - -> @relayflows/surface@2.0.39 build -> tsc - - -exit=0 diff --git a/evidence/cli-runtime-dependencies/typecheck-tests.txt b/evidence/cli-runtime-dependencies/typecheck-tests.txt deleted file mode 100644 index c43886d9..00000000 --- a/evidence/cli-runtime-dependencies/typecheck-tests.txt +++ /dev/null @@ -1,7 +0,0 @@ -$ npm run typecheck:tests --prefix packages/sdk - -> @relayflows/sdk@2.0.39 typecheck:tests -> tsc -p tsconfig.tests.json - - -exit=0 diff --git a/evidence/cli-runtime-dependencies/typecheck.txt b/evidence/cli-runtime-dependencies/typecheck.txt deleted file mode 100644 index 7e62c885..00000000 --- a/evidence/cli-runtime-dependencies/typecheck.txt +++ /dev/null @@ -1,7 +0,0 @@ -$ npm run typecheck --prefix packages/sdk - -> @relayflows/sdk@2.0.39 typecheck -> tsc --noEmit && tsc -p tsconfig.type-tests.json - - -exit=0