✖ row253 factory socket uses actual config and target-uid query without widening hardening (24.390664ms) ℹ tests 1 ℹ suites 0 ℹ pass 0 ℹ fail 1 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 186.876891 ✖ failing tests: test at packages/cli/tests/case2-unit.test.mjs:125:1 ✖ row253 factory socket uses actual config and target-uid query without widening hardening (24.390664ms) AssertionError [ERR_ASSERTION]: case2-unit: unknown serve flag: --tester-socket 1 !== 0 at TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:127:45) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1402:25) at Test.start (node:internal/test_runner/test:1262:17) at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) { generatedMessage: false, code: 'ERR_ASSERTION', actual: 1, expected: 0, operator: 'strictEqual', diff: 'simple' } ✖ row253 socket observation uses configured root, metadata and the Console peer without sending bytes (23.551007ms) ℹ tests 1 ℹ suites 0 ℹ pass 0 ℹ fail 1 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 127.494174 ✖ failing tests: test at packages/cli/tests/case1-accept.test.mjs:220:1 ✖ row253 socket observation uses configured root, metadata and the Console peer without sending bytes (23.551007ms) AssertionError [ERR_ASSERTION]: case1-accept: refusing: /etc/mosaic-stack/dev.args lacks a numeric --port or --tester-port after -- 2 !== 0 at TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:225:10) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1402:25) at Test.start (node:internal/test_runner/test:1262:17) at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) { generatedMessage: false, code: 'ERR_ASSERTION', actual: 2, expected: 0, operator: 'strictEqual', diff: 'simple' } ✔ row253 factory socket uses actual config and target-uid query without widening hardening (145.450807ms) ✔ row253 installer refuses unsafe location and query facts before unit writes (819.380714ms) ✔ row253 query timeout kills its process group and leaves no running child (5018.363626ms) ✔ row253 protected homes refuse before any filesystem access (14.424895ms) ✔ row253 query reaps its group even when a child closes stdout before the query returns (111.74091ms) ✔ row253 config parser is strict and output capture is bounded (16.596636ms) ✔ a clean library render writes both units 0644 with the fixed lines, and enables both then starts the bus then the Console (104.769986ms) ✔ PATH starts with the --node directory, for a node outside the default list and for /usr/bin/node (104.638101ms) ✔ a failed bus start refuses with the Console not started (129.922739ms) ✔ the script never links a unit file (0.334047ms) ✔ factory renders --pm once and one MOSAIC_CLAUDE_BIN line, and without them both tokens render empty (288.329982ms) ✔ a re-install over running units says they are still on the old copy and must restart together, never that it started them (484.024882ms) ✔ a re-install to another copy re-renders both units, and an edited installed unit refuses (1069.731966ms) ✔ a template with a namespace, user or system call restriction refuses (273.736385ms) ✔ the bus template's EnvironmentFile line must be there and point at the session env, and the Console template must have none (226.707075ms) ✔ a template holding an unknown token, PermissionsStartOnly or a privileged Exec prefix refuses (166.978341ms) ✔ a symlink at either unit path refuses (179.013605ms) ✔ a --node that is relative, not root-owned or under refuses (20.685359ms) ✔ a re-install with a different --node or different serve flags refuses (515.577009ms) ✔ an installed pair whose units name different copies refuses (290.162793ms) ✔ a copy id that is short, uppercase, holds / or .., or names no directory refuses (35.795128ms) ✖ library refuses a privileged-floor miss, a bad proof pair and every flag outside its set (295.169858ms) ✔ library refuses a proof file not owned by 's uid (18.009672ms) ✔ factory refuses duplicate socket, a missing --port or --business, and each proxy flag (228.440728ms) ✔ row253 factory refuses retired TCP and a value after the socket marker (28.788793ms) ✔ factory refuses a --claude that is relative, not root-owned or under , and a re-install with another --pm or --claude (1087.25876ms) ✔ the precheck passes on a good host and prints free memory, without the key (124.607105ms) ✔ the precheck refuses each failed host check (1066.073149ms) ✔ the precheck refuses a user missing from passwd, a business file that does not load, and a symlinked run root (587.108114ms) ✔ a bwrap that fails refuses and prints the sysctl and where bwrap is (123.872451ms) ✔ an unprivileged port floor at or below the Console's port refuses, and so does a missing Console unit (606.804292ms) ✔ bus.tester: library refuses it on, factory needs it on, and factory refuses a library business (547.428698ms) ✔ the claude check runs only for a claude-code instance, and refuses a claude that appends or answers wrong (1099.09849ms) ✔ the claude check runs the bus unit's MOSAIC_CLAUDE_BIN over claude on PATH (387.023764ms) ✔ the session env file refuses when missing, open to others, a symlink, empty, or emptied by a later line (796.938259ms) ✔ inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds (97.958541ms) ℹ tests 36 ℹ suites 0 ℹ pass 35 ℹ fail 1 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 17231.019695 ✖ failing tests: test at packages/cli/tests/case2-unit.test.mjs:427:1 ✖ library refuses a privileged-floor miss, a bad proof pair and every flag outside its set (295.169858ms) Error: EEXIST: file already exists, mkdir '/mnt/storage/scratch/tmp/glFUYC2/case2-unit-LimIRr/home/mosaic/.mosaic-dev' at mkdirSync (node:fs:1734:26) at TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:465:3) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1402:25) at Test.processPendingSubtests (node:internal/test_runner/test:974:18) at Test.postRun (node:internal/test_runner/test:1542:19) at Test.run (node:internal/test_runner/test:1467:12) at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) { errno: -17, code: 'EEXIST', syscall: 'mkdir', path: '/mnt/storage/scratch/tmp/glFUYC2/case2-unit-LimIRr/home/mosaic/.mosaic-dev' } Traceback (most recent call last): File "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-253/window.py", line 76, in main() File "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-253/window.py", line 64, in main step('focused-'+str(i+1),['node','--test',test]) File "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-253/window.py", line 47, in step raise RuntimeError('unexpected failure: report before continuing') RuntimeError: unexpected failure: report before continuing