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: 19.136121 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case2-unit.test.mjs:127:1' failureType: 'testCodeFailure' error: |- case2-unit: unknown serve flag: --tester-socket 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:129: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 137.083147 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: 17.043201 type: 'test' location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:230:1' failureType: 'testCodeFailure' error: |- case1-accept: refusing: /etc/mosaic-stack/dev.args lacks a numeric --port or --tester-port after -- 2 !== 0 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 0 actual: 2 operator: 'strictEqual' stack: |- TestContext. (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:235: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 112.522923 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: 277.275886 type: 'test' ... # Subtest: row253 installer refuses unsafe location and query facts before unit writes ok 2 - row253 installer refuses unsafe location and query facts before unit writes --- duration_ms: 2677.775828 type: 'test' ... # Subtest: row253 query timeout kills its process group and leaves no running child ok 3 - row253 query timeout kills its process group and leaves no running child --- duration_ms: 7043.066081 type: 'test' ... # Subtest: row253 protected homes refuse before any filesystem access ok 4 - row253 protected homes refuse before any filesystem access --- duration_ms: 9.127235 type: 'test' ... # Subtest: row253 C4 sleep query has exact inner reason and cleans all members ok 5 - row253 C4 sleep query has exact inner reason and cleans all members --- duration_ms: 10575.943978 type: 'test' ... # Subtest: row253 C4 signals query has exact inner reason and cleans all members ok 6 - row253 C4 signals query has exact inner reason and cleans all members --- duration_ms: 10587.079696 type: 'test' ... # Subtest: row253 C4 member query has exact inner reason and cleans all members ok 7 - row253 C4 member query has exact inner reason and cleans all members --- duration_ms: 10589.49712 type: 'test' ... # Subtest: row253 C4 overflow is output-limit in both sudo modes ok 8 - row253 C4 overflow is output-limit in both sudo modes --- duration_ms: 393.929044 type: 'test' ... # Subtest: row253 C4 stalled supervisor uses the outer reason and explicit residual cleanup ok 9 - row253 C4 stalled supervisor uses the outer reason and explicit residual cleanup --- duration_ms: 14126.599268 type: 'test' ... # Subtest: row253 C4 inline supervisor is byte-identical in both host scripts ok 10 - row253 C4 inline supervisor is byte-identical in both host scripts --- duration_ms: 0.351693 type: 'test' ... # Subtest: row253 C4 cleanup budget starts after inventory pass one ok 11 - row253 C4 cleanup budget starts after inventory pass one --- duration_ms: 30.727664 type: 'test' ... # Subtest: row253 query reaps its group even when a child closes stdout before the query returns ok 12 - row253 query reaps its group even when a child closes stdout before the query returns --- duration_ms: 121.05393 type: 'test' ... # Subtest: row253 config parser is strict ok 13 - row253 config parser is strict --- duration_ms: 8.549991 type: 'test' ... # Subtest: a clean library render writes both units 0644 with the fixed lines, and enables both then starts the bus then the Console ok 14 - a clean library render writes both units 0644 with the fixed lines, and enables both then starts the bus then the Console --- duration_ms: 92.982414 type: 'test' ... # Subtest: PATH starts with the --node directory, for a node outside the default list and for /usr/bin/node ok 15 - PATH starts with the --node directory, for a node outside the default list and for /usr/bin/node --- duration_ms: 101.970909 type: 'test' ... # Subtest: a failed bus start refuses with the Console not started ok 16 - a failed bus start refuses with the Console not started --- duration_ms: 92.125532 type: 'test' ... # Subtest: the script never links a unit file ok 17 - the script never links a unit file --- duration_ms: 0.164599 type: 'test' ... # Subtest: factory renders --pm once and one MOSAIC_CLAUDE_BIN line, and without them both tokens render empty ok 18 - factory renders --pm once and one MOSAIC_CLAUDE_BIN line, and without them both tokens render empty --- duration_ms: 511.445081 type: 'test' ... # Subtest: a re-install over running units says they are still on the old copy and must restart together, never that it started them ok 19 - a re-install over running units says they are still on the old copy and must restart together, never that it started them --- duration_ms: 406.755168 type: 'test' ... # Subtest: a re-install to another copy re-renders both units, and an edited installed unit refuses ok 20 - a re-install to another copy re-renders both units, and an edited installed unit refuses --- duration_ms: 972.999045 type: 'test' ... # Subtest: a template with a namespace, user or system call restriction refuses ok 21 - a template with a namespace, user or system call restriction refuses --- duration_ms: 260.585134 type: 'test' ... # Subtest: the bus template's EnvironmentFile line must be there and point at the session env, and the Console template must have none ok 22 - the bus template's EnvironmentFile line must be there and point at the session env, and the Console template must have none --- duration_ms: 177.873793 type: 'test' ... # Subtest: a template holding an unknown token, PermissionsStartOnly or a privileged Exec prefix refuses ok 23 - a template holding an unknown token, PermissionsStartOnly or a privileged Exec prefix refuses --- duration_ms: 135.246073 type: 'test' ... # Subtest: a symlink at either unit path refuses ok 24 - a symlink at either unit path refuses --- duration_ms: 162.466393 type: 'test' ... # Subtest: a --node that is relative, not root-owned or under refuses ok 25 - a --node that is relative, not root-owned or under refuses --- duration_ms: 18.545791 type: 'test' ... # Subtest: a re-install with a different --node or different serve flags refuses ok 26 - a re-install with a different --node or different serve flags refuses --- duration_ms: 447.05474 type: 'test' ... # Subtest: an installed pair whose units name different copies refuses ok 27 - an installed pair whose units name different copies refuses --- duration_ms: 239.112066 type: 'test' ... # Subtest: a copy id that is short, uppercase, holds / or .., or names no directory refuses ok 28 - a copy id that is short, uppercase, holds / or .., or names no directory refuses --- duration_ms: 26.698509 type: 'test' ... # Subtest: library refuses a privileged-floor miss, a bad proof pair and every flag outside its set ok 29 - library refuses a privileged-floor miss, a bad proof pair and every flag outside its set --- duration_ms: 265.771265 type: 'test' ... # Subtest: library refuses a proof file not owned by 's uid ok 30 - library refuses a proof file not owned by 's uid --- duration_ms: 16.10933 type: 'test' ... # Subtest: factory refuses duplicate socket, a missing --port or --business, and each proxy flag ok 31 - factory refuses duplicate socket, a missing --port or --business, and each proxy flag --- duration_ms: 173.570119 type: 'test' ... # Subtest: row253 factory refuses retired TCP and a value after the socket marker ok 32 - row253 factory refuses retired TCP and a value after the socket marker --- duration_ms: 25.781793 type: 'test' ... # Subtest: factory refuses a --claude that is relative, not root-owned or under , and a re-install with another --pm or --claude ok 33 - factory refuses a --claude that is relative, not root-owned or under , and a re-install with another --pm or --claude --- duration_ms: 1102.381323 type: 'test' ... # Subtest: the precheck passes on a good host and prints free memory, without the key ok 34 - the precheck passes on a good host and prints free memory, without the key --- duration_ms: 102.860753 type: 'test' ... # Subtest: the precheck refuses each failed host check ok 35 - the precheck refuses each failed host check --- duration_ms: 930.129004 type: 'test' ... # Subtest: the precheck refuses a user missing from passwd, a business file that does not load, and a symlinked run root ok 36 - the precheck refuses a user missing from passwd, a business file that does not load, and a symlinked run root --- duration_ms: 457.331537 type: 'test' ... # Subtest: a bwrap that fails refuses and prints the sysctl and where bwrap is ok 37 - a bwrap that fails refuses and prints the sysctl and where bwrap is --- duration_ms: 101.773742 type: 'test' ... # Subtest: an unprivileged port floor at or below the Console's port refuses, and so does a missing Console unit ok 38 - an unprivileged port floor at or below the Console's port refuses, and so does a missing Console unit --- duration_ms: 491.319884 type: 'test' ... # Subtest: bus.tester: library refuses it on, factory needs it on, and factory refuses a library business ok 39 - bus.tester: library refuses it on, factory needs it on, and factory refuses a library business --- duration_ms: 390.352981 type: 'test' ... # Subtest: the claude check runs only for a claude-code instance, and refuses a claude that appends or answers wrong ok 40 - the claude check runs only for a claude-code instance, and refuses a claude that appends or answers wrong --- duration_ms: 852.001001 type: 'test' ... # Subtest: the claude check runs the bus unit's MOSAIC_CLAUDE_BIN over claude on PATH ok 41 - the claude check runs the bus unit's MOSAIC_CLAUDE_BIN over claude on PATH --- duration_ms: 265.065356 type: 'test' ... # Subtest: the session env file refuses when missing, open to others, a symlink, empty, or emptied by a later line ok 42 - the session env file refuses when missing, open to others, a symlink, empty, or emptied by a later line --- duration_ms: 587.199315 type: 'test' ... # Subtest: inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds ok 43 - inside a session's sandbox a bind below 1024 fails with EACCES, and a bind on a free high port succeeds --- duration_ms: 80.541395 type: 'test' ... 1..43 # tests 43 # suites 0 # pass 43 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 66036.882799 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: 632.155055 type: 'test' ... # Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure ok 2 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure --- duration_ms: 8254.391536 type: 'test' ... # Subtest: row253 acceptance rejects bad config and unsupported copies before talk ok 3 - row253 acceptance rejects bad config and unsupported copies before talk --- duration_ms: 1252.424228 type: 'test' ... # Subtest: row253 stalled peer observation ends within its bound without leaving a reader ok 4 - row253 stalled peer observation ends within its bound without leaving a reader --- duration_ms: 2738.089921 type: 'test' ... # Subtest: row253 P8 refuses both retired TCP and board listeners ok 5 - row253 P8 refuses both retired TCP and board listeners --- duration_ms: 1255.185003 type: 'test' ... # Subtest: row253 C4 acceptance query inner reason holds under both sudo models ok 6 - row253 C4 acceptance query inner reason holds under both sudo models --- duration_ms: 10630.407938 type: 'test' ... # Subtest: row253 C4 acceptance query outer reason discards stdout and names residual cleanup ok 7 - row253 C4 acceptance query outer reason discards stdout and names residual cleanup --- duration_ms: 14181.936262 type: 'test' ... # Subtest: row253 C4 acceptance query overflow is output-limit in both models ok 8 - row253 C4 acceptance query overflow is output-limit in both models --- duration_ms: 431.483952 type: 'test' ... # Subtest: row253 C4 P10 inner reason holds under both sudo models ok 9 - row253 C4 P10 inner reason holds under both sudo models --- duration_ms: 5478.512773 type: 'test' ... # Subtest: row253 C4 P10 outer reason holds under both sudo models ok 10 - row253 C4 P10 outer reason holds under both sudo models --- duration_ms: 9024.658368 type: 'test' ... # Subtest: row253 C4 P10 overflow reason holds under both sudo models ok 11 - row253 C4 P10 overflow reason holds under both sudo models --- duration_ms: 1024.931529 type: 'test' ... # Subtest: row 195 accept: every check passing exits 0, with each P mark and counts that match the lines ok 12 - row 195 accept: every check passing exits 0, with each P mark and counts that match the lines --- duration_ms: 616.370815 type: 'test' ... # Subtest: row 195 accept: exits 1 with each F check failing alone, and its line names it ok 13 - row 195 accept: exits 1 with each F check failing alone, and its line names it --- duration_ms: 6821.666689 type: 'test' ... # Subtest: row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error ok 14 - row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error --- duration_ms: 1244.547641 type: 'test' ... # Subtest: row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic ok 15 - row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic --- duration_ms: 1076.458016 type: 'test' ... # Subtest: row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port ok 16 - row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port --- duration_ms: 1252.593241 type: 'test' ... # Subtest: row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space ok 17 - row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space --- duration_ms: 2464.606945 type: 'test' ... # Subtest: row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone ok 18 - row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone --- duration_ms: 1239.784344 type: 'test' ... # Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude- and on a .. segment ok 19 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude- and on a .. segment --- duration_ms: 1832.560304 type: 'test' ... # Subtest: row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by ok 20 - row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by --- duration_ms: 1879.774381 type: 'test' ... # Subtest: row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential ok 21 - row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential --- duration_ms: 1845.271515 type: 'test' ... # Subtest: row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag ok 22 - row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag --- duration_ms: 1777.161131 type: 'test' ... # Subtest: row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it ok 23 - row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it --- duration_ms: 1723.15598 type: 'test' ... # Subtest: row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory ok 24 - row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory --- duration_ms: 1292.159703 type: 'test' ... # Subtest: row 195 accept: each P check reports unnamed on its fault, and the exit stays 0 ok 25 - row 195 accept: each P check reports unnamed on its fault, and the exit stays 0 --- duration_ms: 5502.806554 type: 'test' ... # Subtest: row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker ok 26 - row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker --- duration_ms: 1249.238642 type: 'test' ... # Subtest: row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys ok 27 - row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys --- duration_ms: 613.647617 type: 'test' ... # Subtest: row 195 accept: P9 is unnamed once for each item missing ok 28 - row 195 accept: P9 is unnamed once for each item missing --- duration_ms: 3109.747265 type: 'test' ... # Subtest: row253 accept: P10 fails its observation with another peer; P11 with the unit disabled ok 29 - row253 accept: P10 fails its observation with another peer; P11 with the unit disabled --- duration_ms: 1256.861987 type: 'test' ... # Subtest: row 195 accept: every P check unnamed together still exits 0 ok 30 - row 195 accept: every P check unnamed together still exits 0 --- duration_ms: 441.574071 type: 'test' ... # Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason ok 31 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason --- duration_ms: 100.605176 type: 'test' ... # Subtest: row 195 accept: usage errors and a run without --root as a user exit 2 ok 32 - row 195 accept: usage errors and a run without --root as a user exit 2 --- duration_ms: 10.913068 type: 'test' ... # Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=:... ok 33 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=:... --- duration_ms: 641.101818 type: 'test' ... # Subtest: row 195 accept: the host check runs with --check and never --enforce ok 34 - row 195 accept: the host check runs with --check and never --enforce --- duration_ms: 648.2199 type: 'test' ... 1..34 # tests 34 # suites 0 # pass 34 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 93646.311499 { "grant": "sage-2737", "stage": "focused", "steps": [ { "code": 1, "timeout": false, "seconds": 0.214, "log": "agents/gander/work/queue-253/run3-gate/focused/installer-red.log", "name": "installer-red", "expected_red": true, "counts": { "tests": 1, "pass": 0, "fail": 1, "skipped": 0 } }, { "code": 1, "timeout": false, "seconds": 0.164, "log": "agents/gander/work/queue-253/run3-gate/focused/acceptance-red.log", "name": "acceptance-red", "expected_red": true, "counts": { "tests": 1, "pass": 0, "fail": 1, "skipped": 0 } }, { "code": 0, "timeout": false, "seconds": 66.112, "log": "agents/gander/work/queue-253/run3-gate/focused/focused-1.log", "name": "focused-1", "expected_red": false, "counts": { "tests": 43, "pass": 43, "fail": 0, "skipped": 0 } }, { "code": 0, "timeout": false, "seconds": 93.721, "log": "agents/gander/work/queue-253/run3-gate/focused/focused-2.log", "name": "focused-2", "expected_red": false, "counts": { "tests": 34, "pass": 34, "fail": 0, "skipped": 0 } } ] }