TAP version 13 # Subtest: row253 factory refuses retired TCP and a value after the socket marker ok 1 - row253 factory refuses retired TCP and a value after the socket marker --- duration_ms: 29.223639 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 141.584967 TAP version 13 # Subtest: row253 factory refuses retired TCP and a value after the socket marker not ok 1 - row253 factory refuses retired TCP and a value after the socket marker --- duration_ms: 17.019714 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:494:1' failureType: 'testCodeFailure' error: |- The input did not match the regular expression /case2-unit.sh retires tester TCP; use --tester-socket/. Input: 'case2-unit: unknown serve flag: --tester-port\n' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- case2-unit: unknown serve flag: --tester-port operator: 'match' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:219:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:496:3) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 127.863578 TAP version 13 # Subtest: library refuses a privileged-floor miss, a bad proof pair and every flag outside its set ok 1 - library refuses a privileged-floor miss, a bad proof pair and every flag outside its set --- duration_ms: 283.54782 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 396.947233 TAP version 13 # Subtest: library refuses a privileged-floor miss, a bad proof pair and every flag outside its set not ok 1 - library refuses a privileged-floor miss, a bad proof pair and every flag outside its set --- duration_ms: 263.486555 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:427:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-rCATvD/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-rCATvD/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:452:5) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 374.276814 TAP version 13 # Subtest: factory refuses duplicate socket, a missing --port or --business, and each proxy flag ok 1 - factory refuses duplicate socket, a missing --port or --business, and each proxy flag --- duration_ms: 179.152253 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 292.532419 TAP version 13 # Subtest: factory refuses duplicate socket, a missing --port or --business, and each proxy flag not ok 1 - factory refuses duplicate socket, a missing --port or --business, and each proxy flag --- duration_ms: 148.376561 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:480:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-LvQyh8/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-LvQyh8/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:482:3) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 269.52288 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 737.76089 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 848.593013 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 1002.228824 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Ervs02/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Ervs02/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 1115.046018 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 751.388897 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Vp5Yfr/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Vp5Yfr/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 856.638903 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 152.033039 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-yqEaQt/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-yqEaQt/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 255.804009 TAP version 13 # Subtest: row253 protected homes refuse before any filesystem access ok 1 - row253 protected homes refuse before any filesystem access --- duration_ms: 12.15372 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 126.128325 TAP version 13 # Subtest: row253 protected homes refuse before any filesystem access not ok 1 - row253 protected homes refuse before any filesystem access --- duration_ms: 3.992043 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:179:1' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: 99 !== 0 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0 actual: 99 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:183:10) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 106.16688 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 581.133525 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Iq2KOh/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-Iq2KOh/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 701.093843 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 697.032103 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-yzI2mX/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-yzI2mX/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 838.420622 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 820.638371 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-eR5it3/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-eR5it3/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 937.440456 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 840.318392 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-CGGJnM/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-CGGJnM/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 962.598357 TAP version 13 # Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason ok 1 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason --- duration_ms: 160.205676 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 276.702477 TAP version 13 # Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason not ok 1 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason --- duration_ms: 141.954375 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:587:1' failureType: 'testCodeFailure' error: 'retired TCP' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: 'case1-accept: refusing: unknown serve flag --tester-port' operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:608:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 298.371364 TAP version 13 # Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason not ok 1 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason --- duration_ms: 419.508161 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:587:1' failureType: 'testCodeFailure' error: |- no tester socket: F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-511942f73671 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos 0 !== 2 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 2 actual: 0 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:606:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 532.619824 TAP version 13 # Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason not ok 1 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason --- duration_ms: 445.63961 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:587:1' failureType: 'testCodeFailure' error: |- socket value: F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-fed0bb351858 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos 0 !== 2 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 2 actual: 0 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:606:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 550.692311 TAP version 13 # Subtest: row253 acceptance rejects bad config and unsupported copies before talk ok 1 - row253 acceptance rejects bad config and unsupported copies before talk --- duration_ms: 323.110026 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 423.527216 TAP version 13 # Subtest: row253 acceptance rejects bad config and unsupported copies before talk not ok 1 - row253 acceptance rejects bad config and unsupported copies before talk --- duration_ms: 687.049369 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:263:1' failureType: 'testCodeFailure' error: |- failed: F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-e4b5e2852bf0 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos 0 !== 2 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 2 actual: 0 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:274:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 808.7987 TAP version 13 # Subtest: row253 P8 refuses both retired TCP and board listeners ok 1 - row253 P8 refuses both retired TCP and board listeners --- duration_ms: 721.532961 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 829.227296 TAP version 13 # Subtest: row253 P8 refuses both retired TCP and board listeners not ok 1 - row253 P8 refuses both retired TCP and board listeners --- duration_ms: 331.920117 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:294:1' failureType: 'testCodeFailure' error: |- Expected values to be strictly deep-equal: + actual - expected [ + 'closed' - 'unnamed' ] code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0: 'unnamed' actual: 0: 'closed' operator: 'deepStrictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:297:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 436.160921 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 6033.541448 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 6163.295312 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 365.277582 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'parent-mode' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-e2c81d87c9ad F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 456.731571 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 1114.429559 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'socket-mode' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-3dfa29c347db F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 1218.086888 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 2723.404154 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'peer-pid' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-03e5279e0659 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=555 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 2817.344607 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 2040.364423 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'peer' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-3f452d95b932 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=998 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 2137.533797 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 3470.827374 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'peer-malformed' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-e141fcddc5fe F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 3570.767703 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 3652.173017 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'python-not-elf' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-0b7706b37e56 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 3752.833252 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 5420.784703 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'changed-inode' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-df3dd7da99dd F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=1024 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 5534.524184 TAP version 13 # Subtest: row253 factory socket uses actual config and target-uid query without widening hardening ok 1 - row253 factory socket uses actual config and target-uid query without widening hardening --- duration_ms: 157.642582 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 282.839864 TAP version 13 # Subtest: row253 factory socket uses actual config and target-uid query without widening hardening not ok 1 - row253 factory socket uses actual config and target-uid query without widening hardening --- duration_ms: 25.1268 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:125:1' failureType: 'testCodeFailure' error: |- case2-unit: tester config query failed 1 !== 0 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0 actual: 1 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:127:45) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 145.997307 TAP version 13 # Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes --- duration_ms: 391.973008 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 509.073844 TAP version 13 # Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes not ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes --- duration_ms: 404.191055 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:222:1' failureType: 'testCodeFailure' error: |- The input did not match the regular expression /P10 tester-socket-squat unnamed boundary=observed path=\/srv\/mosaic\/custom-data\/console\/tester.sock/. Input: 'F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997)\n' + 'F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200\n' + 'F3 tester-reply pass chief replied to case1-accept-1cbca2d166b5\n' + 'F4 precheck pass case2-precheck.sh --profile factory exits 0\n' + "F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)'\n" + "F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)'\n" + 'F7 pm-live pass one live launch: pm run r-0002\n' + "F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file'\n" + 'F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1"\n' + 'F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0\n' + 'F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent\n' + 'P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53.\n' + "P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent\n" + 'P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines\n' + "P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve\n" + 'P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis)\n' + 'P6 group-members closed sudo holds only localadmin, and docker and lxd have no members\n' + 'P7 sudoers-d closed no file under /etc/sudoers.d names mosaic\n' + 'P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/custom-data/console/tester.sock\n' + 'P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member\n' + 'P10 tester-socket-squat unnamed boundary=failed reason=probe path=/srv/mosaic/custom-data/console/tester.sock MainPID=200; hostile same-uid substitution remains\n' + 'P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service\n' + 'count pass 11\n' + 'count FAIL 0\n' + 'count closed 7\n' + 'count accepted Q182+Q183 1\n' + 'count accepted Q183 1\n' + 'count accepted mos-1096 1\n' + 'count unnamed 1\n' + 'case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos\n' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-1cbca2d166b5 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/custom-data/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=failed reason=probe path=/srv/mosaic/custom-data/console/tester.sock MainPID=200; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:228:10) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 514.820178 TAP version 13 # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure not ok 1 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 5572.93195 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235:1' failureType: 'testCodeFailure' error: 'floor' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-70a1a38a887d F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=observed path=/srv/mosaic/.mosaic-dev/console/tester.sock parent=0700 owner=997 socket=0600 peer_pid=200 peer_uid=997 floor=700 port=732; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:258:12) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 5679.97534 TAP version 13 # Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes not ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes --- duration_ms: 428.873018 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:222:1' failureType: 'testCodeFailure' error: |- The input did not match the regular expression /P10 tester-socket-squat unnamed boundary=observed path=\/srv\/mosaic\/custom-data\/console\/tester.sock/. Input: 'F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997)\n' + 'F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200\n' + 'F3 tester-reply pass chief replied to case1-accept-024f94e9d741\n' + 'F4 precheck pass case2-precheck.sh --profile factory exits 0\n' + "F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)'\n" + "F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)'\n" + 'F7 pm-live pass one live launch: pm run r-0002\n' + "F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file'\n" + 'F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1"\n' + 'F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0\n' + 'F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent\n' + 'P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53.\n' + "P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent\n" + 'P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines\n' + "P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve\n" + 'P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis)\n' + 'P6 group-members closed sudo holds only localadmin, and docker and lxd have no members\n' + 'P7 sudoers-d closed no file under /etc/sudoers.d names mosaic\n' + 'P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/custom-data/console/tester.sock\n' + 'P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member\n' + 'P10 tester-socket-squat unnamed boundary=failed reason=peer path=/srv/mosaic/custom-data/console/tester.sock MainPID=200; hostile same-uid substitution remains\n' + 'P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service\n' + 'count pass 11\n' + 'count FAIL 0\n' + 'count closed 7\n' + 'count accepted Q182+Q183 1\n' + 'count accepted Q183 1\n' + 'count accepted mos-1096 1\n' + 'count unnamed 1\n' + 'case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos\n' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- F1 units-user pass mosaic-bus@mosaic-stack.service and mosaic-webui.service are active as mosaic (uid 997) F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200 F3 tester-reply pass chief replied to case1-accept-024f94e9d741 F4 precheck pass case2-precheck.sh --profile factory exits 0 F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)' F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)' F7 pm-live pass one live launch: pm run r-0002 F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file' F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1" F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0 F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53. P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis) P6 group-members closed sudo holds only localadmin, and docker and lxd have no members P7 sudoers-d closed no file under /etc/sudoers.d names mosaic P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/custom-data/console/tester.sock P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member P10 tester-socket-squat unnamed boundary=failed reason=peer path=/srv/mosaic/custom-data/console/tester.sock MainPID=200; hostile same-uid substitution remains P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names mosaic-bus@mosaic-stack.service count pass 11 count FAIL 0 count closed 7 count accepted Q182+Q183 1 count accepted Q183 1 count accepted mos-1096 1 count unnamed 1 case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos operator: 'match' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:228:10) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 526.984533 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 534.093046 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- The input did not match the regular expression /symlink/. Input: 'case2-unit: tester path refuses parent-mode\n' code: 'ERR_ASSERTION' name: 'AssertionError' expected: actual: |- case2-unit: tester path refuses parent-mode operator: 'match' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:219:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 635.83252 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 593.30111 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-2BFoyS/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-2BFoyS/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 730.485367 TAP version 13 # Subtest: row253 installer refuses unsafe location and query facts before unit writes not ok 1 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 217.933488 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:134:1' failureType: 'testCodeFailure' error: |- expected a refusal, got 0: case2-unit: wrote /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-A4dIao/units/mosaic-bus@.service and /mnt/storage/scratch/tmp/gR3d8dO/case2-unit-A4dIao/units/mosaic-webui.service from copy aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; enabled and started mosaic-bus@acme.service, then mosaic-webui.service 0 !== 1 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 1 actual: 0 operator: 'strictEqual' stack: |- refuses (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:218:10) TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:157:39) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 333.269816 TAP version 13 # Subtest: row253 config parser is strict and output capture is bounded ok 1 - row253 config parser is strict and output capture is bounded --- duration_ms: 21.390039 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 137.608023 TAP version 13 # Subtest: row253 config parser is strict and output capture is bounded not ok 1 - row253 config parser is strict and output capture is bounded --- duration_ms: 6.759471 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:204:1' failureType: 'testCodeFailure' error: '{"dataRoot":"/srv/mosaic/data","socket":true,"extra":1}' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0 actual: 0 operator: 'notStrictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:211:10) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 140.68039 TAP version 13 # Subtest: row253 config parser is strict and output capture is bounded not ok 1 - row253 config parser is strict and output capture is bounded --- duration_ms: 25.857282 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:204:1' failureType: 'testCodeFailure' error: 'Expected "actual" to be strictly unequal to: 0' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0 actual: 0 operator: 'notStrictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:214:9) Test.runInAsyncScope (node:async_hooks:226:14) Test.run (node:internal/test_runner/test:1402:25) Test.start (node:internal/test_runner/test:1262:17) startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 164.452147 TAP version 13 # Subtest: row253 query reaps its group even when a child closes stdout before the query returns ok 1 - row253 query reaps its group even when a child closes stdout before the query returns --- duration_ms: 136.940126 type: 'test' ... 1..1 # tests 1 # suites 0 # pass 1 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 267.726596 TAP version 13 # Subtest: row253 query reaps its group even when a child closes stdout before the query returns not ok 1 - row253 query reaps its group even when a child closes stdout before the query returns --- duration_ms: 717.025612 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:187:1' failureType: 'testCodeFailure' error: 'query descendant 220087 still S' code: 'ERR_ASSERTION' name: 'AssertionError' expected: true actual: false operator: '==' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:201:9) async Test.run (node:internal/test_runner/test:1409:7) async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) ... 1..1 # tests 1 # suites 0 # pass 0 # fail 1 # cancelled 0 # skipped 0 # todo 0 # duration_ms 887.16243 { "grant": "sage-2297", "static": [ { "id": "M1", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "c25003c6fea2c7693d6b3e38e1986b8397886a8a47b5c6d7c0ddb535e676171b" }, { "id": "M2", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "977ef3f63de87cd260bc4fa44c2695b56880066d722681fa5d9e0f45786474f3" }, { "id": "M3", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "9dca577302011b11fc0459517420a4862dedb792e11eba6e06a975b9978c2db9" }, { "id": "M4", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "538ec4d9aaa942052b62628040445103128b8894ba5b2dafdf5d6c9a52b3b4d7" }, { "id": "M5", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "6632ebedee012f299ff5b5b36eaa2fd7c0bcae371b8f7b11c1bfd28bce0dde80" }, { "id": "M6", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "4f9cfb1b87ab33c39fe2ed77286296ad1047581afca8138722ddad6dddc938d8" }, { "id": "M7", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "00fa60f1d341ee67622d1f89be9c5062ebe45af3c49cc82ae004670f653097a3" }, { "id": "M8", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "92d8b45baf861d0a12327897d6fe09f87db867b1d875d39e9769fa46242826ea" }, { "id": "M9", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "3ba9e143b76ab0c37c575f8a446acf69e611e604074296a176bef1b5b84aa6ea" }, { "id": "M10", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "6eacec588684a0ccc0a1cc009f5ec0f27b1f38341f1fb72fec37c710de38b2a9" }, { "id": "M11", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "dc4c4d3d4761cc8976c7b813bdcc9dd9c56fc35cf03aadf3a19d4cfec6a32233" }, { "id": "M12", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "6ec5c79f0a0d19f5d642dffc79a7e39815f907071fae14df0cfd66b64ebaf221" }, { "id": "M13", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "2af786adc1269fde529b68b7dc121bead9c8b82e2615b4dbb18207aab60e72c8" }, { "id": "M14", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "f3411f4887e009e1b8cc38664be6eb5e1a34379472311284b726466171572758" }, { "id": "M15", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "148f30346fcbfd473ca0b4a717846a2d9743af9a046d5cc009271392d958d812" }, { "id": "M16", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "ec27d778b49a8e5ff0b356e6b27973db8eb97a078a571cf9720ab43f15781b01" }, { "id": "M17", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "4c7cd4c62d2137626158091c478d20e8ace5617c5e96b258478317e57bc808f3" }, { "id": "M18", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "4372a2e392054f80d491fc04b328303339a57cd4c72030abf3ccdae1e0dfb024" }, { "id": "M19", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "766524ec13b960bace472671aa62cfb3ea69f6bdb31d27c2427758e8d8ea53ae" }, { "id": "M20", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "4e653a809eaa504024d57c0af132222a374c0c26313942f6f0a68b3e8d099632" }, { "id": "M21", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "1067c1400870258f663e7e6bdb911e9623a9c666765e86cc7ec0bda4131852f3" }, { "id": "M22", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "f19cc06bf32c491bdfbea56888353fcc985e10298d8416892993e0757c429421" }, { "id": "M23", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "f1c7326e60d5ed26d55f43107939d775d6c81dfc45398a36274bac380f95e9b3" }, { "id": "M24", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "be8c6cb451c4d30b621c9eb38cf2c63629bd8ae5b6d30d5d91d365e4911ca964" }, { "id": "M25", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "53ee61ac53156707aa11bbad35b41a0bf21f0093a5fb6d03aff215940ed023ad" }, { "id": "M26", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "fc9cbfc3eaa0df6adb84b67dc9cf4fb9f773b89c16597703dbebc03559977b5f" }, { "id": "M27", "file": "scripts/case1-accept.sh", "occurrences": 1, "before": "1302cfc659ff9073035b99d7b4071aa2c75070da142bb201d2f58a66e113d71f", "after": "e727c63e45bb5a3a767c5e60870658d2a8d1cc970bfa3d6c2b8f439cb27fcbda" }, { "id": "M28", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "238b6bc3b2feb64de614aa2e9471dcc58867a3e44ebfad7130917d43101fd6bd" }, { "id": "M29", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "f7c5e06f46aea4d5c3fde288eebd732a3265583faef2d38c2b293a7364e299b7" }, { "id": "M30", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "d6ceb8529fa508eb48534000666f02fd4bf949dbeeeff03490c51c8d1e4ecf1f" }, { "id": "M31", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "c028760cf45fbae6b127b203f32ce208eeb77ea9dd646fee5af9e6e58661a6ec" }, { "id": "M32", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "f047a7024b67c1f7a7af503c3cb525b07c83a0e413b845818d3ea9cd0e6f9ea9" }, { "id": "M33", "file": "scripts/case2-unit.sh", "occurrences": 1, "before": "a84bb266d52a5c078171582e2f9a511becf56421ae218266e3238d704727f6dd", "after": "a197452abed015e81d0620730b95292a89cff84f8f52ea679111b0b71b17ae1d" } ], "bases": { "packages/cli/tests/case2-unit.test.mjs|row253 factory refuses retired TCP": { "code": 0, "timeout": false, "seconds": 0.214, "log": "agents/gander/work/queue-253/run2/changes/M1-base.log" }, "packages/cli/tests/case2-unit.test.mjs|library refuses a privileged-floor miss": { "code": 0, "timeout": false, "seconds": 0.465, "log": "agents/gander/work/queue-253/run2/changes/M2-base.log" }, "packages/cli/tests/case2-unit.test.mjs|factory refuses duplicate socket": { "code": 0, "timeout": false, "seconds": 0.365, "log": "agents/gander/work/queue-253/run2/changes/M3-base.log" }, "packages/cli/tests/case2-unit.test.mjs|row253 installer refuses unsafe location and query facts": { "code": 0, "timeout": false, "seconds": 0.916, "log": "agents/gander/work/queue-253/run2/changes/M4-base.log" }, "packages/cli/tests/case2-unit.test.mjs|row253 protected homes": { "code": 0, "timeout": false, "seconds": 0.214, "log": "agents/gander/work/queue-253/run2/changes/M7-base.log" }, "packages/cli/tests/case1-accept.test.mjs|a bad args file refuses": { "code": 0, "timeout": false, "seconds": 0.365, "log": "agents/gander/work/queue-253/run2/changes/M12-base.log" }, "packages/cli/tests/case1-accept.test.mjs|row253 acceptance rejects bad config": { "code": 0, "timeout": false, "seconds": 0.515, "log": "agents/gander/work/queue-253/run2/changes/M15-base.log" }, "packages/cli/tests/case1-accept.test.mjs|row253 P8 refuses": { "code": 0, "timeout": false, "seconds": 0.916, "log": "agents/gander/work/queue-253/run2/changes/M16-base.log" }, "packages/cli/tests/case1-accept.test.mjs|row253 P10 refuses unsafe metadata": { "code": 0, "timeout": false, "seconds": 6.279, "log": "agents/gander/work/queue-253/run2/changes/M17-base.log" }, "packages/cli/tests/case2-unit.test.mjs|row253 factory socket uses actual config": { "code": 0, "timeout": false, "seconds": 0.365, "log": "agents/gander/work/queue-253/run2/changes/M24-base.log" }, "packages/cli/tests/case1-accept.test.mjs|row253 socket observation uses configured root": { "code": 0, "timeout": false, "seconds": 0.615, "log": "agents/gander/work/queue-253/run2/changes/M25-base.log" }, "packages/cli/tests/case2-unit.test.mjs|row253 config parser is strict": { "code": 0, "timeout": false, "seconds": 0.214, "log": "agents/gander/work/queue-253/run2/changes/M31-base.log" }, "packages/cli/tests/case2-unit.test.mjs|row253 query reaps its group": { "code": 0, "timeout": false, "seconds": 0.365, "log": "agents/gander/work/queue-253/run2/changes/M33-base.log" } }, "changes": [ { "code": 1, "timeout": false, "seconds": 0.214, "log": "agents/gander/work/queue-253/run2/changes/M1.log", "id": "M1", "base_seconds": 0.214, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.465, "log": "agents/gander/work/queue-253/run2/changes/M2.log", "id": "M2", "base_seconds": 0.465, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.365, "log": "agents/gander/work/queue-253/run2/changes/M3.log", "id": "M3", "base_seconds": 0.365, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 1.217, "log": "agents/gander/work/queue-253/run2/changes/M4.log", "id": "M4", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.916, "log": "agents/gander/work/queue-253/run2/changes/M5.log", "id": "M5", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.315, "log": "agents/gander/work/queue-253/run2/changes/M6.log", "id": "M6", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.164, "log": "agents/gander/work/queue-253/run2/changes/M7.log", "id": "M7", "base_seconds": 0.214, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.766, "log": "agents/gander/work/queue-253/run2/changes/M8.log", "id": "M8", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.916, "log": "agents/gander/work/queue-253/run2/changes/M9.log", "id": "M9", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 1.016, "log": "agents/gander/work/queue-253/run2/changes/M10.log", "id": "M10", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 1.067, "log": "agents/gander/work/queue-253/run2/changes/M11.log", "id": "M11", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.415, "log": "agents/gander/work/queue-253/run2/changes/M12.log", "id": "M12", "base_seconds": 0.365, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.615, "log": "agents/gander/work/queue-253/run2/changes/M13.log", "id": "M13", "base_seconds": 0.365, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.615, "log": "agents/gander/work/queue-253/run2/changes/M14.log", "id": "M14", "base_seconds": 0.365, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.916, "log": "agents/gander/work/queue-253/run2/changes/M15.log", "id": "M15", "base_seconds": 0.515, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.515, "log": "agents/gander/work/queue-253/run2/changes/M16.log", "id": "M16", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.515, "log": "agents/gander/work/queue-253/run2/changes/M17.log", "id": "M17", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 1.317, "log": "agents/gander/work/queue-253/run2/changes/M18.log", "id": "M18", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 2.92, "log": "agents/gander/work/queue-253/run2/changes/M19.log", "id": "M19", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 2.218, "log": "agents/gander/work/queue-253/run2/changes/M20.log", "id": "M20", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 3.672, "log": "agents/gander/work/queue-253/run2/changes/M21.log", "id": "M21", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 3.822, "log": "agents/gander/work/queue-253/run2/changes/M22.log", "id": "M22", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 5.626, "log": "agents/gander/work/queue-253/run2/changes/M23.log", "id": "M23", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.215, "log": "agents/gander/work/queue-253/run2/changes/M24.log", "id": "M24", "base_seconds": 0.365, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.615, "log": "agents/gander/work/queue-253/run2/changes/M25.log", "id": "M25", "base_seconds": 0.615, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 5.776, "log": "agents/gander/work/queue-253/run2/changes/M26.log", "id": "M26", "base_seconds": 6.279, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.615, "log": "agents/gander/work/queue-253/run2/changes/M27.log", "id": "M27", "base_seconds": 0.615, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.716, "log": "agents/gander/work/queue-253/run2/changes/M28.log", "id": "M28", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.816, "log": "agents/gander/work/queue-253/run2/changes/M29.log", "id": "M29", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.415, "log": "agents/gander/work/queue-253/run2/changes/M30.log", "id": "M30", "base_seconds": 0.916, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.215, "log": "agents/gander/work/queue-253/run2/changes/M31.log", "id": "M31", "base_seconds": 0.214, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.265, "log": "agents/gander/work/queue-253/run2/changes/M32.log", "id": "M32", "base_seconds": 0.214, "outcome": "killed" }, { "code": 1, "timeout": false, "seconds": 0.967, "log": "agents/gander/work/queue-253/run2/changes/M33.log", "id": "M33", "base_seconds": 0.365, "outcome": "killed" } ] }