# Independent mutation assertion receipts Verified proposed commit: 230647c7367df102de1e1c025dc6acf00e5d605b Each mutation runs against an isolated copy; the shared candidate files are unchanged. ## mutation-receipts.json [ { "label": "isolated-baseline", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/run-utils/vitest.config.ts", "packages/run-utils/tests/options.test.ts", "packages/git-utils/tests/filenames.test.ts" ], "exit": 0, "summary": [ "Test Files 2 passed (2)", "Tests 9 passed (9)" ] }, { "label": "mutant-command-defaults", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/run-utils/vitest.config.ts", "packages/run-utils/tests/options.test.ts" ], "exit": 1, "summary": [ "\u23af\u23af\u23af\u23af\u23af\u23af\u23af Failed Tests 1 \u23af\u23af\u23af\u23af\u23af\u23af\u23af", "Test Files 1 failed (1)", "Tests 1 failed | 1 passed (2)" ] }, { "label": "mutant-omitted-argv", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/run-utils/vitest.config.ts", "packages/run-utils/tests/options.test.ts" ], "exit": 1, "summary": [ "\u23af\u23af\u23af\u23af\u23af\u23af\u23af Failed Tests 1 \u23af\u23af\u23af\u23af\u23af\u23af\u23af", "Test Files 1 failed (1)", "Tests 1 failed | 1 passed (2)" ] }, { "label": "mutant-explicit-prefer-local-false", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/run-utils/vitest.config.ts", "packages/run-utils/tests/options.test.ts" ], "exit": 1, "summary": [ "\u23af\u23af\u23af\u23af\u23af\u23af\u23af Failed Tests 1 \u23af\u23af\u23af\u23af\u23af\u23af\u23af", "Test Files 1 failed (1)", "Tests 1 failed | 1 passed (2)" ] }, { "label": "mutant-original-line-parser", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/git-utils/vitest.config.ts", "packages/git-utils/tests/filenames.test.ts" ], "exit": 1, "summary": [ "\u23af\u23af\u23af\u23af\u23af\u23af\u23af Failed Tests 6 \u23af\u23af\u23af\u23af\u23af\u23af\u23af", "Test Files 1 failed (1)", "Tests 6 failed | 1 passed (7)" ] }, { "label": "mutant-space-filename", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/git-utils/vitest.config.ts", "packages/git-utils/tests/filenames.test.ts" ], "exit": 1, "summary": [ "\u23af\u23af\u23af\u23af\u23af\u23af\u23af Failed Tests 1 \u23af\u23af\u23af\u23af\u23af\u23af\u23af", "Test Files 1 failed (1)", "Tests 1 failed | 6 passed (7)" ] }, { "label": "isolated-restored-green", "command": [ "node", "/tmp/netliloop-work/build/node_modules/vitest/vitest.mjs", "run", "--config", "packages/run-utils/vitest.config.ts", "packages/run-utils/tests/options.test.ts", "packages/git-utils/tests/filenames.test.ts" ], "exit": 0, "summary": [ "Test Files 2 passed (2)", "Tests 9 passed (9)" ] } ] ## verified-source.sha256 14fa1d15e6b037d5badfbcf6f75e7a86fbfb23bee8071d4cd01c17466daaec49 packages/run-utils/src/main.ts 5b142c1e642f254c559b764b2336d4d171541ece7483cf0f7262205d164991bc packages/run-utils/tests/options.test.ts d929bfa2a1d82c364c20a4ec90c3cd9b1b2a6fb6b74384b9be45113dda25a8b4 packages/git-utils/src/diff.ts 65dc3891151d7584a91b95e17a32d19c70de8d9d2f277a0c2f52ee1bead392fb packages/git-utils/tests/filenames.test.ts ## isolated-baseline.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ✓ packages/run-utils/tests/options.test.ts (2 tests) 57ms ✓ packages/git-utils/tests/filenames.test.ts (7 tests) 410ms Test Files 2 passed (2) Tests 9 passed (9) Start at 04:13:33 Duration 620ms (transform 61ms, setup 0ms, collect 118ms, tests 466ms, environment 0ms, prepare 85ms) ## mutant-command-defaults.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ❯ packages/run-utils/tests/options.test.ts (2 tests | 1 failed) 34ms × runCommand resolves project-local binaries by default and honors preferLocal: false 9ms → Command failed with ENOENT: netlify-run-utils-local-fixture spawn netlify-run-utils-local-fixture ENOENT ✓ run preserves options when the arguments array is omitted 25ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL packages/run-utils/tests/options.test.ts > runCommand resolves project-local binaries by default and honors preferLocal: false Error: Command failed with ENOENT: netlify-run-utils-local-fixture spawn netlify-run-utils-local-fixture ENOENT ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 1 passed (2) Start at 04:13:34 Duration 210ms (transform 25ms, setup 0ms, collect 37ms, tests 34ms, environment 0ms, prepare 44ms) ## mutant-omitted-argv.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations {"cwd":"/tmp/netliloop-work/independent-verification/mutations"} ❯ packages/run-utils/tests/options.test.ts (2 tests | 1 failed) 61ms ✓ runCommand resolves project-local binaries by default and honors preferLocal: false 31ms × run preserves options when the arguments array is omitted 29ms → expected { Object (cwd) } to deeply equal { …(2) } ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL packages/run-utils/tests/options.test.ts > run preserves options when the arguments array is omitted AssertionError: expected { Object (cwd) } to deeply equal { …(2) } - Expected + Received { - "cwd": "/tmp/run-utils-options-Lj8wRo", - "value": "child-value", + "cwd": "/tmp/netliloop-work/independent-verification/mutations", } ❯ packages/run-utils/tests/options.test.ts:44:30 42| child.stdin!.end('console.log(JSON.stringify({ cwd: process.cwd(), v… 43| const { stdout } = await child 44| expect(JSON.parse(stdout)).toEqual({ cwd: await realpath(cwd), value… | ^ 45| }) 46| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 1 passed (2) Start at 04:13:34 Duration 238ms (transform 25ms, setup 0ms, collect 39ms, tests 61ms, environment 0ms, prepare 42ms) ## mutant-explicit-prefer-local-false.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ❯ packages/run-utils/tests/options.test.ts (2 tests | 1 failed) 82ms × runCommand resolves project-local binaries by default and honors preferLocal: false 56ms → promise resolved "{ …(10) }" instead of rejecting ✓ run preserves options when the arguments array is omitted 25ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL packages/run-utils/tests/options.test.ts > runCommand resolves project-local binaries by default and honors preferLocal: false AssertionError: promise resolved "{ …(10) }" instead of rejecting - Expected + Received - Error { - "message": "rejected promise", + { + "all": undefined, + "command": "netlify-run-utils-local-fixture", + "escapedCommand": "netlify-run-utils-local-fixture", + "exitCode": 0, + "failed": false, + "isCanceled": false, + "killed": false, + "stderr": "", + "stdout": "project-local", + "timedOut": false, } ❯ packages/run-utils/tests/options.test.ts:34:79 32| const { stdout } = await runCommand(command, { cwd, stdio: 'pipe' }) 33| expect(stdout).toBe('project-local') 34| await expect(runCommand(command, { cwd, stdio: 'pipe', preferLocal: … | ^ 35| code: 'ENOENT', 36| }) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 1 passed (2) Start at 04:13:35 Duration 259ms (transform 25ms, setup 0ms, collect 37ms, tests 82ms, environment 0ms, prepare 44ms) ## mutant-original-line-parser.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ❯ packages/git-utils/tests/filenames.test.ts (7 tests | 6 failed) 284ms × preserves the filename "café.txt" across changes and fileMatch 45ms → expected [ '"caf\303\251.txt"' ] to deeply equal [ 'café.txt' ] ✓ preserves the filename "space name.txt" across changes and fileMatch 60ms × preserves the filename "tab\tname.txt" across changes and fileMatch 35ms → expected [ '"tab\tname.txt"' ] to deeply equal [ 'tab\tname.txt' ] × preserves the filename "line\nbreak.txt" across changes and fileMatch 36ms → expected [ '"line\nbreak.txt"' ] to deeply equal [ 'line\nbreak.txt' ] × preserves the filename "quote\"name.txt" across changes and fileMatch 36ms → expected [ '"quote\"name.txt"' ] to deeply equal [ 'quote"name.txt' ] × preserves the filename "back\\slash.txt" across changes and fileMatch 36ms → expected [ '"back\\slash.txt"' ] to deeply equal [ 'back\slash.txt' ] × preserves the filename "trailing\n" across changes and fileMatch 35ms → expected [ '"trailing\n"' ] to deeply equal [ 'trailing\n' ] ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 6 ⎯⎯⎯⎯⎯⎯⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "café.txt" across changes and fileMatch AssertionError: expected [ '"caf\303\251.txt"' ] to deeply equal [ 'café.txt' ] - Expected + Received [ - "café.txt", + "\"caf\\303\\251.txt\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/6]⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "tab\tname.txt" across changes and fileMatch AssertionError: expected [ '"tab\tname.txt"' ] to deeply equal [ 'tab\tname.txt' ] - Expected + Received [ - "tab name.txt", + "\"tab\\tname.txt\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/6]⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "line\nbreak.txt" across changes and fileMatch AssertionError: expected [ '"line\nbreak.txt"' ] to deeply equal [ 'line\nbreak.txt' ] - Expected + Received [ - "line - break.txt", + "\"line\\nbreak.txt\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/6]⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "quote\"name.txt" across changes and fileMatch AssertionError: expected [ '"quote\"name.txt"' ] to deeply equal [ 'quote"name.txt' ] - Expected + Received [ - "quote\"name.txt", + "\"quote\\\"name.txt\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/6]⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "back\\slash.txt" across changes and fileMatch AssertionError: expected [ '"back\\slash.txt"' ] to deeply equal [ 'back\slash.txt' ] - Expected + Received [ - "back\\slash.txt", + "\"back\\\\slash.txt\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/6]⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "trailing\n" across changes and fileMatch AssertionError: expected [ '"trailing\n"' ] to deeply equal [ 'trailing\n' ] - Expected + Received [ - "trailing - ", + "\"trailing\\n\"", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/6]⎯ Test Files 1 failed (1) Tests 6 failed | 1 passed (7) Start at 04:13:35 Duration 492ms (transform 42ms, setup 0ms, collect 65ms, tests 284ms, environment 0ms, prepare 46ms) ## mutant-space-filename.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ❯ packages/git-utils/tests/filenames.test.ts (7 tests | 1 failed) 398ms ✓ preserves the filename "café.txt" across changes and fileMatch 64ms × preserves the filename "space name.txt" across changes and fileMatch 41ms → expected [ 'space_name.txt' ] to deeply equal [ 'space name.txt' ] ✓ preserves the filename "tab\tname.txt" across changes and fileMatch 57ms ✓ preserves the filename "line\nbreak.txt" across changes and fileMatch 59ms ✓ preserves the filename "quote\"name.txt" across changes and fileMatch 58ms ✓ preserves the filename "back\\slash.txt" across changes and fileMatch 59ms ✓ preserves the filename "trailing\n" across changes and fileMatch 59ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL packages/git-utils/tests/filenames.test.ts > preserves the filename "space name.txt" across changes and fileMatch AssertionError: expected [ 'space_name.txt' ] to deeply equal [ 'space name.txt' ] - Expected + Received [ - "space name.txt", + "space_name.txt", ] ❯ packages/git-utils/tests/filenames.test.ts:44:36 42| 43| const additions = getGitUtils({ base, head: created, cwd }) 44| expect(additions.createdFiles).toEqual([filename]) | ^ 45| expect(additions.fileMatch(filename).created).toEqual([filename]) 46| const modifications = getGitUtils({ base: created, head: modified,… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 6 passed (7) Start at 04:13:36 Duration 610ms (transform 42ms, setup 0ms, collect 68ms, tests 398ms, environment 0ms, prepare 45ms) ## isolated-restored-green.log RUN v3.2.6 /tmp/netliloop-work/independent-verification/mutations ✓ packages/run-utils/tests/options.test.ts (2 tests) 59ms ✓ packages/git-utils/tests/filenames.test.ts (7 tests) 422ms Test Files 2 passed (2) Tests 9 passed (9) Start at 04:13:37 Duration 645ms (transform 67ms, setup 0ms, collect 131ms, tests 482ms, environment 0ms, prepare 89ms)