2394 lines
87 KiB
Plaintext
2394 lines
87 KiB
Plaintext
{
|
||
"grant": "sage-3023",
|
||
"head": "4e76bd6fc50bb64512dbbd38be550df97387c794",
|
||
"base": "0cbe2e9b3",
|
||
"manifest": "8f30c19a530789df8b22a77bed24250a5ccd94f9eb0a38534f512d3dd0e82189",
|
||
"scope": {
|
||
"whole_files": [
|
||
"packages/cli/tests/case1-accept.test.mjs",
|
||
"packages/cli/tests/case2-unit.test.mjs"
|
||
],
|
||
"shells": [
|
||
"scripts/test-auth.sh",
|
||
"scripts/test-conductor.sh",
|
||
"scripts/test-config.sh",
|
||
"scripts/test-discord.sh",
|
||
"scripts/test-extension-package.sh",
|
||
"scripts/test-foundation.sh",
|
||
"scripts/test-land-work.sh",
|
||
"scripts/test-queue.sh",
|
||
"scripts/test-release.sh",
|
||
"scripts/test-task.sh"
|
||
],
|
||
"mutants": [
|
||
"M1",
|
||
"M2",
|
||
"M3",
|
||
"M4",
|
||
"M5",
|
||
"M6",
|
||
"M7",
|
||
"M8",
|
||
"M9",
|
||
"M10",
|
||
"M11",
|
||
"M12",
|
||
"M13",
|
||
"M14",
|
||
"M15",
|
||
"M16",
|
||
"M17"
|
||
],
|
||
"red_pattern": "row276 talk legacy inner timeout",
|
||
"node_seconds": 900,
|
||
"estimate_minutes": "12-18; no row276 measured runtime yet"
|
||
},
|
||
"limits": {
|
||
"files": {
|
||
"packages/cli/tests/case1-accept.test.mjs": 900,
|
||
"packages/cli/tests/case2-unit.test.mjs": 900
|
||
},
|
||
"basis": "No row276 timing yet; initial900s per whole file; Sage may adjust before CLEAR."
|
||
},
|
||
"shell_limits": {
|
||
"authority": [
|
||
"mos-1275",
|
||
"sage-2659"
|
||
],
|
||
"scope": "Own Gander row196 receipt set documented for row278, plus the complete row278 run3 shell phase. Row253 old C4 results do not carry. Receipts choose timeouts only.",
|
||
"consulted_records": [
|
||
"ec1e7fad8:agents/gander/work/queue-196/evidence/suite-results-run1.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/evidence/suite-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r2/mutants/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r2/run2/base-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r2/run2/killers/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r3/gate/base-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r3/gate/killers/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r3/gate/sso-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r4/gate/base-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r4/gate/killers/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r4/gate/sso-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r4/gate/whole-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r5/gate/whole-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r5/resume/summary.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r6/base-results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r6/first-attempt/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r6/killers/results.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r6/summary.json",
|
||
"ec1e7fad8:agents/gander/work/queue-196/r6/whole-results.json",
|
||
"385a7194c:agents/gander/work/queue-278/run3/whole/results.json"
|
||
],
|
||
"scripts": {
|
||
"scripts/test-auth.sh": {
|
||
"recorded_duration_seconds": 1.9081228229999543,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 126,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "dd4720cb0cbecd2fc523a318f2222d21d257c8c5889996a3d69e522ee971a707",
|
||
"previous_maximum_seconds": 1.9081228229999543,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r6/whole-results.json",
|
||
"row278_run3_seconds": 0.816
|
||
},
|
||
"scripts/test-conductor.sh": {
|
||
"recorded_duration_seconds": 8.057173820000026,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 145,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "da84150467494a4c979759f400854411bd93a7efce981139757bf526d688a23b",
|
||
"previous_maximum_seconds": 8.057173820000026,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r6/whole-results.json",
|
||
"row278_run3_seconds": 6.078
|
||
},
|
||
"scripts/test-config.sh": {
|
||
"recorded_duration_seconds": 3.1678915339999367,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 130,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "3301c1fabf616bb961d62f6decd0a46dadb0f399b8ba7f3c2ca60023d2b24c78",
|
||
"previous_maximum_seconds": 3.1678915339999367,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r6/whole-results.json",
|
||
"row278_run3_seconds": 1.868
|
||
},
|
||
"scripts/test-discord.sh": {
|
||
"recorded_duration_seconds": 8.776727847000002,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 147,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "a5dcf783c51a5d5d184a357f91ebf9fa1c4e054f0cb84a3d1d7668f6156e025e",
|
||
"previous_maximum_seconds": 8.776727847000002,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 7.431
|
||
},
|
||
"scripts/test-extension-package.sh": {
|
||
"recorded_duration_seconds": 3.01285702399991,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 130,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "5d7b687f16fd1a9414b229501177d530ba3af4eadd3cac319b33f38fdba9bf99",
|
||
"previous_maximum_seconds": 3.01285702399991,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 1.366
|
||
},
|
||
"scripts/test-foundation.sh": {
|
||
"recorded_duration_seconds": 49.367,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 269,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "2e11038e7f784ec4f539eb768f63bab0fab9c9940334388a1fe2d47ab9e2b008",
|
||
"previous_maximum_seconds": 39.70872647900006,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 39.901
|
||
},
|
||
"scripts/test-land-work.sh": {
|
||
"recorded_duration_seconds": 16.854,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 171,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "c9d1d5c9b006d5c12e5f796a9828361059f8e0410846fc55c070c0148b15cef4",
|
||
"previous_maximum_seconds": 12.623263413000037,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 11.338
|
||
},
|
||
"scripts/test-queue.sh": {
|
||
"recorded_duration_seconds": 35.155,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 226,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "c270f181d1fa8b6d42ff4131c339beba786a8fd620bb66f8afdcec05e8b10868",
|
||
"previous_maximum_seconds": 23.443742031000088,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 21.158
|
||
},
|
||
"scripts/test-release.sh": {
|
||
"recorded_duration_seconds": 12.168674453999964,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 157,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "be706dff832257bd4781abeabd19faa4ac16edf9a4af0c96457e33cf3bb6deb3",
|
||
"previous_maximum_seconds": 12.168674453999964,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 2.67
|
||
},
|
||
"scripts/test-task.sh": {
|
||
"recorded_duration_seconds": 36.783798266,
|
||
"receipt": "3b91cfdaf:agents/gander/work/queue-253/run5-gate/SUMMARY.json (with earlier maximum retained)",
|
||
"limit_seconds": 231,
|
||
"derivation": "ceil(3 * longest successful whole-file receipt) + 120s headroom",
|
||
"script_sha256": "10c4abb70bf9b83e617089b06a5436cc7fa6b866a176458b22128c3a15163f94",
|
||
"previous_maximum_seconds": 36.783798266,
|
||
"previous_receipt": "ec1e7fad8:agents/gander/work/queue-196/r5/resume/whole-results.json",
|
||
"row278_run3_seconds": 13.843
|
||
}
|
||
}
|
||
},
|
||
"carry": "NONE; fresh run5 after clean10x timing proof"
|
||
}
|
||
|
||
START whole-1
|
||
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: 1884.195252
|
||
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: 29724.482076
|
||
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: 1481.005917
|
||
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: 3950.519546
|
||
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: 3761.053074
|
||
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: 10710.177651
|
||
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: 14178.693831
|
||
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: 493.94819
|
||
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: 11750.073283
|
||
type: 'test'
|
||
...
|
||
# {"fault":"inner","mode":"exec","baselineSeconds":1.8457114119999896,"faultSeconds":4.0058177409999915,"probeSeconds":2.160106329000002}
|
||
# {"fault":"inner","mode":"hop","baselineSeconds":1.854464009000003,"faultSeconds":3.98279024100001,"probeSeconds":2.1283262320000067}
|
||
# 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: 15217.26471
|
||
type: 'test'
|
||
...
|
||
# {"fault":"outer","mode":"exec","baselineSeconds":1.8522728860000062,"faultSeconds":5.6763905539999975,"probeSeconds":3.8241176679999915}
|
||
# {"fault":"outer","mode":"hop","baselineSeconds":1.9324154960000015,"faultSeconds":5.701172953000001,"probeSeconds":3.7687574569999995}
|
||
# 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: 3690.911036
|
||
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: 1851.487032
|
||
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: 20883.697173
|
||
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: 3645.492091
|
||
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: 3527.944708
|
||
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: 3720.807316
|
||
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: 8639.417648
|
||
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: 4019.194222
|
||
type: 'test'
|
||
...
|
||
# Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
|
||
ok 19 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
|
||
---
|
||
duration_ms: 5201.134461
|
||
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: 5675.420389
|
||
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: 5840.600009
|
||
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: 5543.907707
|
||
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: 5263.523951
|
||
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: 3688.254273
|
||
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: 16777.233948
|
||
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: 3664.221999
|
||
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: 1830.135608
|
||
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: 9142.255667
|
||
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: 3678.224358
|
||
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: 1622.545993
|
||
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: 93.539947
|
||
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: 9.824418
|
||
type: 'test'
|
||
...
|
||
# Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
|
||
ok 33 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
|
||
---
|
||
duration_ms: 1831.27001
|
||
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: 1853.415159
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 legacy call inventory pins every production bound and the conversation contract
|
||
ok 35 - row276 legacy call inventory pins every production bound and the conversation contract
|
||
---
|
||
duration_ms: 0.372906
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 talk legacy inner timeout cleans both sudo models
|
||
ok 36 - row276 talk legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1651.805289
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 precheck legacy inner timeout cleans both sudo models
|
||
ok 37 - row276 precheck legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1682.074719
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 claude-version legacy inner timeout cleans both sudo models
|
||
ok 38 - row276 claude-version legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1651.678574
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 pm-list legacy inner timeout cleans both sudo models
|
||
ok 39 - row276 pm-list legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1690.998673
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 node-version legacy inner timeout cleans both sudo models
|
||
ok 40 - row276 node-version legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1638.061018
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 legacy streams and display status preserve failures without granting success
|
||
ok 41 - row276 legacy streams and display status preserve failures without granting success
|
||
---
|
||
duration_ms: 2471.748869
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 trailer grammar cannot make supervisor failure pass
|
||
ok 42 - row276 trailer grammar cannot make supervisor failure pass
|
||
---
|
||
duration_ms: 1993.507037
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 earlier forged trailer and appended zero remain failures
|
||
ok 43 - row276 earlier forged trailer and appended zero remain failures
|
||
---
|
||
duration_ms: 504.031734
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
|
||
ok 44 - row276 precheck outer bound discards success status and fixture cleans residual
|
||
---
|
||
duration_ms: 2170.082104
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
|
||
ok 45 - row276 case1 capture and legacy tools refuse unsafe system tools
|
||
---
|
||
duration_ms: 73.160182
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
|
||
ok 46 - row276 stderr retention is bounded and keeps the final diagnostic
|
||
---
|
||
duration_ms: 244.179199
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
ok 47 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
---
|
||
duration_ms: 16.161736
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 full acceptance keeps all five healthy calls in both sudo models
|
||
ok 48 - row276 full acceptance keeps all five healthy calls in both sudo models
|
||
---
|
||
duration_ms: 3664.792254
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
ok 49 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
---
|
||
duration_ms: 13.162444
|
||
type: 'test'
|
||
...
|
||
# Subtest: row276 legacy stdout snapshot preserves exact bytes on success and command failure
|
||
ok 50 - row276 legacy stdout snapshot preserves exact bytes on success and command failure
|
||
---
|
||
duration_ms: 3211.003138
|
||
type: 'test'
|
||
...
|
||
1..50
|
||
# tests 50
|
||
# suites 0
|
||
# pass 50
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 237630.5628
|
||
END whole-1
|
||
START whole-2
|
||
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: 278.169614
|
||
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: 2772.439256
|
||
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: 7048.048773
|
||
type: 'test'
|
||
...
|
||
# Subtest: row253 protected homes refuse before any filesystem access
|
||
ok 4 - row253 protected homes refuse before any filesystem access
|
||
---
|
||
duration_ms: 9.013219
|
||
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: 10600.723055
|
||
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: 10581.311523
|
||
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: 10599.798384
|
||
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: 390.877419
|
||
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: 14132.397213
|
||
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.302673
|
||
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.060154
|
||
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.101622
|
||
type: 'test'
|
||
...
|
||
# Subtest: row253 config parser is strict
|
||
ok 13 - row253 config parser is strict
|
||
---
|
||
duration_ms: 8.543713
|
||
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: 94.685103
|
||
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: 93.85558
|
||
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: 90.339124
|
||
type: 'test'
|
||
...
|
||
# Subtest: the script never links a unit file
|
||
ok 17 - the script never links a unit file
|
||
---
|
||
duration_ms: 0.166585
|
||
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: 525.524679
|
||
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: 408.666965
|
||
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: 994.927262
|
||
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: 257.438195
|
||
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.781216
|
||
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.757712
|
||
type: 'test'
|
||
...
|
||
# Subtest: a symlink at either unit path refuses
|
||
ok 24 - a symlink at either unit path refuses
|
||
---
|
||
duration_ms: 164.421136
|
||
type: 'test'
|
||
...
|
||
# Subtest: a --node that is relative, not root-owned or under <home> refuses
|
||
ok 25 - a --node that is relative, not root-owned or under <home> refuses
|
||
---
|
||
duration_ms: 18.428744
|
||
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: 445.511775
|
||
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: 238.324989
|
||
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.882576
|
||
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: 262.559723
|
||
type: 'test'
|
||
...
|
||
# Subtest: library refuses a proof file not owned by <user>'s uid
|
||
ok 30 - library refuses a proof file not owned by <user>'s uid
|
||
---
|
||
duration_ms: 15.609194
|
||
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: 175.500211
|
||
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: 26.473214
|
||
type: 'test'
|
||
...
|
||
# Subtest: factory refuses a --claude that is relative, not root-owned or under <home>, and a re-install with another --pm or --claude
|
||
ok 33 - factory refuses a --claude that is relative, not root-owned or under <home>, and a re-install with another --pm or --claude
|
||
---
|
||
duration_ms: 1116.584585
|
||
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: 105.31252
|
||
type: 'test'
|
||
...
|
||
# Subtest: the precheck refuses each failed host check
|
||
ok 35 - the precheck refuses each failed host check
|
||
---
|
||
duration_ms: 875.507711
|
||
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: 460.60088
|
||
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: 104.836485
|
||
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: 488.567198
|
||
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: 388.911645
|
||
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: 858.874041
|
||
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: 267.434874
|
||
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: 578.147135
|
||
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.375463
|
||
type: 'test'
|
||
...
|
||
1..43
|
||
# tests 43
|
||
# suites 0
|
||
# pass 43
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 66174.499323
|
||
END whole-2
|
||
START changes-controller
|
||
TAP version 13
|
||
# Subtest: row276 talk legacy inner timeout cleans both sudo models
|
||
ok 1 - row276 talk legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 1685.440641
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 1789.846639
|
||
TAP version 13
|
||
# Subtest: row276 talk legacy inner timeout cleans both sudo models
|
||
not ok 1 - row276 talk legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 2079.957342
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:791:33'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
case1-accept: talk outer-timeout
|
||
|
||
|
||
82 !== 81
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: 81
|
||
actual: 82
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:798: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 2182.586031
|
||
TAP version 13
|
||
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
|
||
ok 1 - row276 precheck outer bound discards success status and fixture cleans residual
|
||
---
|
||
duration_ms: 2184.044327
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 2279.36042
|
||
TAP version 13
|
||
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
|
||
not ok 1 - row276 precheck outer bound discards success status and fixture cleans residual
|
||
---
|
||
duration_ms: 4536.644448
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:831:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
case1-accept: precheck inner-command
|
||
|
||
|
||
87 !== 82
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: 82
|
||
actual: 87
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:836: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 4636.294956
|
||
TAP version 13
|
||
# Subtest: row276 talk legacy inner timeout cleans both sudo models
|
||
not ok 1 - row276 talk legacy inner timeout cleans both sudo models
|
||
---
|
||
duration_ms: 2161.53711
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:791:33'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
hop
|
||
+ actual - expected
|
||
|
||
+ [
|
||
+ 54736,
|
||
+ 54736
|
||
+ ]
|
||
- []
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected:
|
||
actual:
|
||
0: 54736
|
||
1: 54736
|
||
operator: 'deepStrictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:801:10)
|
||
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 2263.591697
|
||
TAP version 13
|
||
# Subtest: row276 earlier forged trailer and appended zero remain failures
|
||
ok 1 - row276 earlier forged trailer and appended zero remain failures
|
||
---
|
||
duration_ms: 502.066046
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 606.133522
|
||
TAP version 13
|
||
# Subtest: row276 earlier forged trailer and appended zero remain failures
|
||
not ok 1 - row276 earlier forged trailer and appended zero remain failures
|
||
---
|
||
duration_ms: 261.080892
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:823:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
|
||
MOSAIC_LEGACY_STATUS=0
|
||
|
||
|
||
7 !== 87
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: 87
|
||
actual: 7
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:828: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 359.349585
|
||
TAP version 13
|
||
# Subtest: row276 legacy streams and display status preserve failures without granting success
|
||
ok 1 - row276 legacy streams and display status preserve failures without granting success
|
||
---
|
||
duration_ms: 2501.346465
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 2601.506438
|
||
TAP version 13
|
||
# Subtest: row276 legacy streams and display status preserve failures without granting success
|
||
not ok 1 - row276 legacy streams and display status preserve failures without granting success
|
||
---
|
||
duration_ms: 507.498517
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:804:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
original diagnostic
|
||
|
||
|
||
0 !== 87
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: 87
|
||
actual: 0
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:808: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 605.071499
|
||
TAP version 13
|
||
# Subtest: row276 trailer grammar cannot make supervisor failure pass
|
||
ok 1 - row276 trailer grammar cannot make supervisor failure pass
|
||
---
|
||
duration_ms: 1983.792172
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 2081.898213
|
||
TAP version 13
|
||
# Subtest: row276 trailer grammar cannot make supervisor failure pass
|
||
not ok 1 - row276 trailer grammar cannot make supervisor failure pass
|
||
---
|
||
duration_ms: 507.340357
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:813:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
|
||
'256\n' !== '87\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
87
|
||
|
||
actual: |-
|
||
256
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:819: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 603.003311
|
||
TAP version 13
|
||
# Subtest: row276 trailer grammar cannot make supervisor failure pass
|
||
not ok 1 - row276 trailer grammar cannot make supervisor failure pass
|
||
---
|
||
duration_ms: 978.637412
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:813:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
|
||
'01\n' !== '87\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
87
|
||
|
||
actual: |-
|
||
01
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:819: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 1076.355294
|
||
TAP version 13
|
||
# Subtest: row276 trailer grammar cannot make supervisor failure pass
|
||
not ok 1 - row276 trailer grammar cannot make supervisor failure pass
|
||
---
|
||
duration_ms: 1739.061192
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:813:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
|
||
'1\n' !== '87\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
87
|
||
|
||
actual: |-
|
||
1
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:819: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 1835.288102
|
||
TAP version 13
|
||
# Subtest: row276 legacy streams and display status preserve failures without granting success
|
||
not ok 1 - row276 legacy streams and display status preserve failures without granting success
|
||
---
|
||
duration_ms: 257.906986
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:804:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
+ actual - expected
|
||
|
||
+ ''
|
||
- 'original diagnostic\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
original diagnostic
|
||
|
||
actual: ''
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:809:67)
|
||
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 359.112083
|
||
TAP version 13
|
||
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
|
||
ok 1 - row276 case1 capture and legacy tools refuse unsafe system tools
|
||
---
|
||
duration_ms: 85.855667
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 183.82177
|
||
TAP version 13
|
||
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
|
||
not ok 1 - row276 case1 capture and legacy tools refuse unsafe system tools
|
||
---
|
||
duration_ms: 105.593706
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:841:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
|
||
85 !== 84
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: 84
|
||
actual: 85
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:846: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 235.807684
|
||
TAP version 13
|
||
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
|
||
ok 1 - row253 C4 acceptance query overflow is output-limit in both models
|
||
---
|
||
duration_ms: 483.77617
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 581.721262
|
||
TAP version 13
|
||
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
|
||
not ok 1 - row253 C4 acceptance query overflow is output-limit in both models
|
||
---
|
||
duration_ms: 242.576664
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:359:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
Expected values to be strictly equal:
|
||
+ actual - expected
|
||
|
||
+ 'case1-accept: refusing: tester config query has invalid facts\n'
|
||
- 'case1-accept: refusing: tester config query output-limit\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
case1-accept: refusing: tester config query output-limit
|
||
|
||
actual: |-
|
||
case1-accept: refusing: tester config query has invalid facts
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:363:72)
|
||
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 345.685316
|
||
TAP version 13
|
||
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
ok 1 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
---
|
||
duration_ms: 20.656315
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 119.076534
|
||
TAP version 13
|
||
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
not ok 1 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
---
|
||
duration_ms: 11.277479
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:855:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
check_f6
|
||
|
||
'PASS\n' !== 'FAIL\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
FAIL
|
||
|
||
actual: |-
|
||
PASS
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:861:44)
|
||
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.096878
|
||
TAP version 13
|
||
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
not ok 1 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
---
|
||
duration_ms: 15.350617
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:855:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
check_f7
|
||
|
||
'PASS\n' !== 'FAIL\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
FAIL
|
||
|
||
actual: |-
|
||
PASS
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:861:44)
|
||
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 114.611873
|
||
TAP version 13
|
||
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
not ok 1 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
|
||
---
|
||
duration_ms: 20.669392
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:855:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
check_f10
|
||
|
||
'PASS\n' !== 'FAIL\n'
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: |-
|
||
FAIL
|
||
|
||
actual: |-
|
||
PASS
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:861:44)
|
||
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 123.226191
|
||
TAP version 13
|
||
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
|
||
ok 1 - row276 stderr retention is bounded and keeps the final diagnostic
|
||
---
|
||
duration_ms: 266.287479
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 366.473467
|
||
TAP version 13
|
||
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
|
||
not ok 1 - row276 stderr retention is bounded and keeps the final diagnostic
|
||
---
|
||
duration_ms: 271.463779
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:851:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
The expression evaluated to a falsy value:
|
||
|
||
assert.ok(Buffer.byteLength(r.stderr)<=65536)
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: true
|
||
actual: false
|
||
operator: '=='
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:853:43)
|
||
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.15982
|
||
TAP version 13
|
||
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
ok 1 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
---
|
||
duration_ms: 6.411146
|
||
type: 'test'
|
||
...
|
||
1..1
|
||
# tests 1
|
||
# suites 0
|
||
# pass 1
|
||
# fail 0
|
||
# cancelled 0
|
||
# skipped 0
|
||
# todo 0
|
||
# duration_ms 104.932317
|
||
TAP version 13
|
||
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
not ok 1 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
|
||
---
|
||
duration_ms: 4.612773
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:876:1'
|
||
failureType: 'testCodeFailure'
|
||
error: |-
|
||
/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/scripts/case1-accept.sh
|
||
+ actual - expected
|
||
|
||
+ '--: line 4: /proc/2147483647/stat: No such file or directory\n'
|
||
- ''
|
||
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: ''
|
||
actual: |-
|
||
--: line 4: /proc/2147483647/stat: No such file or directory
|
||
|
||
operator: 'strictEqual'
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:885: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 103.231795
|
||
TAP version 13
|
||
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
|
||
not ok 1 - row276 precheck outer bound discards success status and fixture cleans residual
|
||
---
|
||
duration_ms: 5639.845628
|
||
type: 'test'
|
||
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:831:1'
|
||
failureType: 'testCodeFailure'
|
||
error: 'hop:4.543492367s'
|
||
code: 'ERR_ASSERTION'
|
||
name: 'AssertionError'
|
||
expected: true
|
||
actual: false
|
||
operator: '=='
|
||
stack: |-
|
||
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:837:10)
|
||
process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||
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 5743.705203
|
||
{
|
||
"grant": "sage-3023",
|
||
"static": [
|
||
{
|
||
"id": "M1",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "f7994147a5eefb924630063cb3bba17bd8ed0b65e7c24d913ee1580f4a9a0b47"
|
||
},
|
||
{
|
||
"id": "M2",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "8a93c378b1f91238a32c885180e70d7d33b6201d9a2f63f8dea8e39ad577ad01"
|
||
},
|
||
{
|
||
"id": "M3",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "d3dadb97ca9a1ee26b92af01bd7451804e9b80346bf0673cf63dbad7e7bb5e78"
|
||
},
|
||
{
|
||
"id": "M4",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "d6754f354b59135f377e8cabdd211553257722fe8298e7d1e65f0a3a5a0de113"
|
||
},
|
||
{
|
||
"id": "M5",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "3ade5f4cbba5fa7bb2427ef7c5166033efe86231e4479c72a7a1f1b2186f4a73"
|
||
},
|
||
{
|
||
"id": "M6",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "1a7cd233c86b9ed4bd05d57adb5e6b9c35b537e698615870523429f21dcf3170"
|
||
},
|
||
{
|
||
"id": "M7",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "bdf3a911e8d287d2459f6b5d8ceb51d5202499b8091e97cf31b3c9c4dbe76058"
|
||
},
|
||
{
|
||
"id": "M8",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "c0c21ac1bde823f28d5fd3937973128fa59eee042ba4a1e675b4dc7957713f2b"
|
||
},
|
||
{
|
||
"id": "M9",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "bddfa558b71c12d5fd04782a746382d817008b7cc4cdb0b831afb9c5ec82a251"
|
||
},
|
||
{
|
||
"id": "M10",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "9bd7b50361ef7b3cef92b02e206711418d831ebf7c6c46073a102991433c3f66"
|
||
},
|
||
{
|
||
"id": "M11",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "db7c45d67d05f03fea863f50bb167c6d25ebcc2cf47c9f9e79aff07f41c73a64"
|
||
},
|
||
{
|
||
"id": "M12",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "49e03600ed40deefa1389e50451d353c59f3493175f077e76d511bbabfb33987"
|
||
},
|
||
{
|
||
"id": "M13",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "788cdbbe10f8056c94d4e9816388509cd1069f328c4e12e3ade8d7c706bcbc16"
|
||
},
|
||
{
|
||
"id": "M14",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "7e6f382c9e51e67eb173d42ddb402178a6af49822c3c37d36332c08bd65c98a5"
|
||
},
|
||
{
|
||
"id": "M15",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "a81acad889e36e7b405ac622fc8a75276d3933e07c490637d77007ad43cd6552"
|
||
},
|
||
{
|
||
"id": "M16",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "a6956292666b7ef35bac215b8213344b29d48a969da60c075fa7c331bbb4e2e0"
|
||
},
|
||
{
|
||
"id": "M16",
|
||
"file": "scripts/case2-unit.sh",
|
||
"occurrences": 1,
|
||
"before": "f615d09cd0998bd3a109faff9a16a78ac3f414686300fadc282a7773ec08491a",
|
||
"after": "d2709a1da6c9a03f4c8b31bf57ad00df4c0ae62a5cbc0e7588cdceb9dc0e2aa1"
|
||
},
|
||
{
|
||
"id": "M17",
|
||
"file": "scripts/case1-accept.sh",
|
||
"occurrences": 1,
|
||
"before": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
|
||
"after": "98f65d07e80b4bfd593e56c0d4a8dc693dc886bbe7296bc60cc278c5d1188e7c"
|
||
}
|
||
],
|
||
"bases": {
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 talk legacy inner timeout": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 1.868,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M1-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 precheck outer bound": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 2.369,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M2-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 earlier forged trailer": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.665,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M4-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 legacy streams and display status": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 2.67,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M5-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 trailer grammar": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 2.168,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M6-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 case1 capture and legacy tools": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.264,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M10-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row253 C4 acceptance query overflow": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.665,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M11-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 version and PM checks": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.214,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M12-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 stderr retention is bounded": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.465,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M15-base.log"
|
||
},
|
||
"packages/cli/tests/case1-accept.test.mjs|row276 vanished pid stat read": {
|
||
"code": 0,
|
||
"timeout": false,
|
||
"seconds": 0.164,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M16-base.log"
|
||
}
|
||
},
|
||
"changes": [
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 2.269,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M1.log",
|
||
"id": "M1",
|
||
"base_seconds": 1.868,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 4.724,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M2.log",
|
||
"id": "M2",
|
||
"base_seconds": 2.369,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 2.369,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M3.log",
|
||
"id": "M3",
|
||
"base_seconds": 1.868,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.415,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M4.log",
|
||
"id": "M4",
|
||
"base_seconds": 0.665,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.665,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M5.log",
|
||
"id": "M5",
|
||
"base_seconds": 2.67,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.665,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M6.log",
|
||
"id": "M6",
|
||
"base_seconds": 2.168,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 1.166,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M7.log",
|
||
"id": "M7",
|
||
"base_seconds": 2.168,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 1.918,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M8.log",
|
||
"id": "M8",
|
||
"base_seconds": 2.168,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.415,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M9.log",
|
||
"id": "M9",
|
||
"base_seconds": 2.67,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.315,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M10.log",
|
||
"id": "M10",
|
||
"base_seconds": 0.264,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.415,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M11.log",
|
||
"id": "M11",
|
||
"base_seconds": 0.665,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.214,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M12.log",
|
||
"id": "M12",
|
||
"base_seconds": 0.214,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.164,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M13.log",
|
||
"id": "M13",
|
||
"base_seconds": 0.214,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.214,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M14.log",
|
||
"id": "M14",
|
||
"base_seconds": 0.214,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.465,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M15.log",
|
||
"id": "M15",
|
||
"base_seconds": 0.465,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 0.164,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M16.log",
|
||
"id": "M16",
|
||
"base_seconds": 0.164,
|
||
"outcome": "killed"
|
||
},
|
||
{
|
||
"code": 1,
|
||
"timeout": false,
|
||
"seconds": 5.827,
|
||
"log": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/agents/gander/work/queue-276/run5/changes/M17.log",
|
||
"id": "M17",
|
||
"base_seconds": 2.369,
|
||
"outcome": "killed"
|
||
}
|
||
]
|
||
}
|
||
END changes-controller
|
||
START shell-1
|
||
OK status with missing harness credential exits 3 and still lists accounts
|
||
OK status reports harness credential (read-only) + mosaic accounts
|
||
OK api key material never reaches output
|
||
OK oauth token material never reaches output
|
||
OK unparseable credential file exits 2
|
||
OK symlinked credential file exits 4
|
||
OK env-side credential names reported
|
||
OK env var values never reach output
|
||
OK accounts without an accounts dir reports none and creates nothing
|
||
OK accounts lists files and marks the active one
|
||
OK loose account perms flagged in listing
|
||
OK agent --auth with missing account file refuses (exit 4)
|
||
OK agent --auth with non-0600 account file refuses
|
||
OK agent --auth with invalid account name refuses
|
||
OK auth.sh without valid config refuses
|
||
|
||
selftest: 15 passed, 0 failed
|
||
END shell-1
|
||
START shell-2
|
||
On branch gander/row276-0cbe
|
||
Your branch is up to date with 'origin/gander/row276-0cbe'.
|
||
|
||
nothing to commit, working tree clean
|
||
OK dry-run: allowed change, exit 0, nothing committed (exit 0)
|
||
OK dry-run committed nothing
|
||
OK apply: allowed change exits 0 (exit 0)
|
||
OK apply: attribution in commit subject
|
||
OK apply: target tree clean after commit
|
||
OK disallowed path refused (exit 1)
|
||
OK disallowed path: target untouched
|
||
OK syntax gate refused broken .mjs (exit 1)
|
||
OK syntax gate: target untouched
|
||
OK suite failure refused (exit 1)
|
||
OK suite failure: target reverted to clean
|
||
OK disabled policy refused (exit 2)
|
||
OK disabled policy: target untouched
|
||
OK failed run refused (exit 1)
|
||
OK failed run: target untouched
|
||
OK missing run exits 4 (exit 4)
|
||
OK invalid policy exits 2 (exit 2)
|
||
|
||
selftest: 17 passed, 0 failed
|
||
END shell-2
|
||
START shell-3
|
||
OK absent adapter defaults to pi
|
||
OK adapter mock validates (exit 0)
|
||
OK unsupported adapter exits 2 (exit 2)
|
||
OK env exports adapter
|
||
OK bootstrap creates default when absent (exit 0)
|
||
OK bootstrap wrote config file
|
||
OK bootstrap is idempotent on existing config (exit 0)
|
||
OK bootstrap did not rewrite existing config
|
||
OK validate missing config exits 3 (exit 3)
|
||
OK malformed JSON exits 2 (exit 2)
|
||
OK unsupported configVersion exits 2 (exit 2)
|
||
OK unknown top-level key exits 2 (exit 2)
|
||
OK unknown execution key exits 2 (exit 2)
|
||
OK unsupported backend exits 2 (exit 2)
|
||
OK unsupported environment exits 2 (exit 2)
|
||
OK relative dataRoot exits 2 (exit 2)
|
||
OK non-canonical dataRoot exits 2 (exit 2)
|
||
OK filesystem root dataRoot exits 2 (exit 2)
|
||
OK home directory dataRoot exits 2 (exit 2)
|
||
OK dataRoot containing config dir exits 2 (exit 2)
|
||
OK control character in provider exits 2 (exit 2)
|
||
OK symlinked config file exits 2 (exit 2)
|
||
OK env exports resolve correctly
|
||
OK valid console.sso loads and is in the output
|
||
OK console.sso HS256 alg exits 2 naming the path (exit 2)
|
||
OK console.sso alg none exits 2 naming the path (exit 2)
|
||
OK console.sso missing slot field exits 2 naming the path (exit 2)
|
||
OK console.sso slot name outside the pattern exits 2 naming the path (exit 2)
|
||
OK unknown key under console exits 2 naming the path (exit 2)
|
||
OK config without console loads with unchanged output
|
||
OK failed validation modified nothing
|
||
|
||
selftest: 31 passed, 0 failed
|
||
END shell-3
|
||
START shell-4
|
||
toolchain: node v26.8.1
|
||
|
||
OK syntax: packages/discord/src/approvals.mjs
|
||
OK syntax: packages/discord/src/authorize.mjs
|
||
OK syntax: packages/discord/src/binding.mjs
|
||
OK syntax: packages/discord/src/cli.mjs
|
||
OK syntax: packages/discord/src/connector.mjs
|
||
OK syntax: packages/discord/src/context.mjs
|
||
OK syntax: packages/discord/src/engine-pi.mjs
|
||
OK syntax: packages/discord/src/errors.mjs
|
||
OK syntax: packages/discord/src/gateway.mjs
|
||
OK syntax: packages/discord/src/git.mjs
|
||
OK syntax: packages/discord/src/journal.mjs
|
||
OK syntax: packages/discord/src/notify.mjs
|
||
OK syntax: packages/discord/src/processing.mjs
|
||
OK syntax: packages/discord/src/rest.mjs
|
||
OK syntax: packages/discord/src/setspark.mjs
|
||
OK syntax: packages/discord/src/tools.mjs
|
||
OK syntax: packages/discord/src/web.mjs
|
||
OK syntax: packages/discord/bin/git-credential.mjs
|
||
OK syntax: packages/discord/extension/tools.mjs
|
||
OK syntax: packages/discord/tests/approvals.test.mjs
|
||
OK syntax: packages/discord/tests/authorize.test.mjs
|
||
OK syntax: packages/discord/tests/binding.test.mjs
|
||
OK syntax: packages/discord/tests/connector.test.mjs
|
||
OK syntax: packages/discord/tests/context.test.mjs
|
||
OK syntax: packages/discord/tests/copy-service.test.mjs
|
||
OK syntax: packages/discord/tests/engine.test.mjs
|
||
OK syntax: packages/discord/tests/fake-pi.mjs
|
||
OK syntax: packages/discord/tests/gateway.test.mjs
|
||
OK syntax: packages/discord/tests/git.test.mjs
|
||
OK syntax: packages/discord/tests/helpers.mjs
|
||
OK syntax: packages/discord/tests/journal.test.mjs
|
||
OK syntax: packages/discord/tests/notify.test.mjs
|
||
OK syntax: packages/discord/tests/offline-check.test.mjs
|
||
OK syntax: packages/discord/tests/processing-stop.test.mjs
|
||
OK syntax: packages/discord/tests/processing.test.mjs
|
||
OK syntax: packages/discord/tests/recover.test.mjs
|
||
OK syntax: packages/discord/tests/rest.test.mjs
|
||
OK syntax: packages/discord/tests/setspark.test.mjs
|
||
OK syntax: packages/discord/tests/tools.test.mjs
|
||
OK syntax: packages/discord/tests/web.test.mjs
|
||
OK syntax: packages/discord/fixtures/claim-worker.mjs
|
||
OK syntax: packages/discord/fixtures/legacy-owner-worker.mjs
|
||
OK syntax: scripts/discord.sh
|
||
OK syntax: scripts/discord-service.sh
|
||
OK packages/discord declares no dependencies
|
||
OK no bot-token-shaped string in packages/discord
|
||
OK fixture binding uses placeholder ids only
|
||
OK fixture binding validates
|
||
OK real pi with the extension exposes exactly list_dir, read_file, search and no built-in tool
|
||
OK real pi with a writable root exposes exactly the three reads plus write_file and edit_file, and writes nothing at start
|
||
OK real pi with a web key exposes the three reads plus web_fetch and web_search, and no write tool without a writable root
|
||
OK real pi with a git root exposes the reads, writes and the four git verbs, commits nothing at start, and never shows the token
|
||
OK real pi with protocol vault adds reserve_id to the git verbs
|
||
OK real pi with a setspark key exposes the reads and the eight record verbs, no counters, and never shows the key
|
||
OK real pi refuses a git key on a read-only root (fail closed)
|
||
OK real pi with the pilot flags (--no-tools) exposes no tool at all
|
||
OK real pi exits non-zero without MOSAIC_DISCORD_TOOLS: no session, no tools (fail closed)
|
||
OK a failing nested test fails the run under a parent runner's NODE_TEST_CONTEXT
|
||
OK node --test packages/discord/tests/ (ℹ pass 192)
|
||
OK scripts/discord.sh --help exits 0
|
||
OK scripts/discord.sh check without a binding exits 4
|
||
OK scripts/discord.sh recover without a binding exits 4
|
||
OK scripts/discord.sh reload without a binding exits 4
|
||
OK scripts/discord-service.sh without a command exits 4
|
||
OK service unit renders with the repository path, a supervised run as the main process, exit 3 never retried, and reload as SIGHUP
|
||
OK service install writes the rendered unit (0644) and leaves no temp file
|
||
OK service install a second time reports unchanged
|
||
OK systemd-analyze verify accepts the rendered unit
|
||
OK service uninstall removes the unit file
|
||
OK service install with an unknown flag exits 4
|
||
OK service install with USER unset finishes and names the account for lingering
|
||
OK pinned render runs copy CLI with copy cwd/repo and no checkout executable
|
||
OK pinned install writes the rendered unit in a temporary unit directory
|
||
OK pinned install refuses short prerequisite and writes no unit
|
||
OK pinned install refuses missing prerequisite and writes no unit
|
||
OK pinned install refuses cli prerequisite and writes no unit
|
||
OK pinned install refuses pi prerequisite and writes no unit
|
||
OK status names the copy from fake systemctl effective cwd
|
||
OK checkout install explicitly recommends --copy
|
||
OK wrapper check --offline passes local fixture and makes no network call
|
||
OK wrapper run --offline refuses usage
|
||
|
||
discord suite: 81 passed, 0 failed
|
||
END shell-4
|
||
START shell-5
|
||
OK initial ordinary-file install
|
||
OK installed tree matches canonical source
|
||
OK installed tree has no symlinks
|
||
OK check detects installation drift
|
||
OK sync refuses to overwrite installation drift
|
||
OK check detects an extra destination file
|
||
OK check detects an extra destination directory
|
||
OK check rejects a destination symlink
|
||
OK sync accepts a canonical source update
|
||
OK updated installation matches canonical source
|
||
scripts/test-extension-package.sh: line 14: 167661 Killed "$@" > /dev/null 2>&1
|
||
OK forced interruption kills the replacing process
|
||
OK next invocation recovers old consistent installation
|
||
OK interrupted replacement rolled back
|
||
OK sync succeeds after interruption recovery
|
||
OK unlocked stale lock file does not block
|
||
OK active lock refuses a concurrent sync
|
||
OK source symlink fails closed
|
||
OK nested second entrypoint fails closed
|
||
|
||
extension package selftest: 18 passed, 0 failed
|
||
END shell-5
|
||
START shell-6
|
||
toolchain: node v26.8.1, python 3.12.8, jsonschema 4.26.0
|
||
|
||
OK syntax: scripts/foundation-inspect.mjs
|
||
OK syntax: scripts/foundation/strict-json.mjs
|
||
OK syntax: scripts/foundation/canonical.mjs
|
||
OK syntax: scripts/foundation/resolve.mjs
|
||
OK syntax: scripts/foundation/validate-record.mjs
|
||
OK syntax: scripts/foundation/fixtures/build-fixtures.mjs
|
||
OK syntax: scripts/foundation/canonical.test.mjs
|
||
OK syntax: scripts/foundation/cli.test.mjs
|
||
OK syntax: scripts/foundation/fixtures.test.mjs
|
||
OK syntax: scripts/foundation/resolve.test.mjs
|
||
OK syntax: scripts/foundation/strict-json.test.mjs
|
||
OK syntax: scripts/foundation/verify-schema.py (ast only; no bytecode written)
|
||
OK fixture generator runs
|
||
OK checked-in fixtures/bundles equal a fresh generation
|
||
OK checked-in fixtures/raw equal a fresh generation
|
||
OK checked-in fixtures/index.json equal a fresh generation
|
||
OK checked-in demo bundles equal a fresh generation
|
||
OK a failing nested test fails the run under a parent runner's NODE_TEST_CONTEXT
|
||
OK node --test scripts/foundation/ (ℹ pass 80)
|
||
OK differential schema oracle: PASS: differential schema oracle (finite corpus; compatibility evidence, not equivalence proof)
|
||
platform witness: strftime('%Y') for year 999 -> '999' (pinned checker refuses years 0001..0999)
|
||
node v26.8.1; corpus 1568 records (38 pinned fixtures, 478 unique bundle records, 1052 typeCase/mutation/lexical cases)
|
||
schema column: agree-valid 540, agree-invalid 991, DISAGREEMENTS 0; strict-only (parser-bound) cases: 27; unsupported-kind records not schema-assessed by the inspector: 10
|
||
profile column (schema-valid records only): profile-valid 510, profile-invalid 30
|
||
profile refusals asserted: 30 schema-agreed-valid records refused only by the strict typed-string profile (rule profile-pattern-mismatch), 12 declared by name; 73 named probes verified against declared schema/profile columns
|
||
OK oracle: zero schema-column disagreements with the pinned checker
|
||
OK oracle: strict-only profile refusals are counted and asserted
|
||
OK demo: permitted read preview exits 0 (exit 0)
|
||
OK demo: permitted file.change preview exits 0 (exit 0)
|
||
OK demo: assignment.change proposal is unresolved (exit 3) (exit 3)
|
||
OK demo: revoked registration is refused (exit 3) (exit 3)
|
||
OK demo: message is not authority (exit 3) (exit 3)
|
||
OK usage: no arguments exits 2 (exit 2)
|
||
OK io: missing file exits 4 (exit 4)
|
||
OK io: directory exits 4 (exit 4)
|
||
OK io: symlink exits 4 (O_NOFOLLOW) (exit 4)
|
||
OK bound: oversize fixture exits 2 (exit 2)
|
||
OK profile: one final LF in a typed selection id is refused before admission (exit 2) (exit 2)
|
||
OK profile: two final LFs fail the schema pattern itself (exit 2) (exit 2)
|
||
OK profile: escaped newlines in free-form text stay allowed (exit 0) (exit 0)
|
||
OK profile refusal is invalid-request/profile-pattern-mismatch with selection and operation withheld, value not echoed
|
||
OK text output starts with the disclaimer
|
||
OK json output is valid JSON with result allowed and exactly the charter §7 fields
|
||
OK json golden matches byte-for-byte
|
||
OK sandboxed bundle run (env -i, PATH=/nonexistent) produced the unresolved proposal
|
||
OK sandbox inventory (path/type/size/mode/uid/gid/inode/mtime/sha256) unchanged by runs
|
||
OK canary never printed (bundle run and credential-file run)
|
||
OK a non-bundle JSON file is refused at the shape gate, not read into output
|
||
OK no field of the non-bundle file is echoed
|
||
|
||
selftest: 44 passed, 0 failed
|
||
END shell-6
|
||
START shell-7
|
||
OK args: exit 2, target-branch
|
||
OK args: exit 2, target-branch
|
||
OK args: exit 4
|
||
OK args: exit 4
|
||
OK args: exit 4
|
||
OK --base next refuses before the config is read (got 2)
|
||
OK a missing system config exits 3 (got 3)
|
||
OK nobus: exit 3
|
||
OK schema-table: exit 2, bus-schema
|
||
OK schema-meta: exit 2, bus-schema
|
||
OK openBus opens the database read-only
|
||
OK other-business: exit 2, decision-not-found
|
||
OK no-raise: exit 2, decision-not-found
|
||
OK not-a-merge: exit 2, not-a-merge
|
||
OK open: exit 2, not-resolved
|
||
OK withdrawn: exit 2, not-resolved
|
||
OK by-agent: exit 2, not-human
|
||
OK via-webui: exit 2, not-human
|
||
OK no-answer: exit 2, not-human
|
||
OK answer-role: exit 2, not-human
|
||
OK answer-run: exit 2, not-human
|
||
OK answer-choice: exit 2, not-human
|
||
OK two-answers: exit 2, not-human
|
||
OK arbiter-cross: exit 2, not-human
|
||
OK arbiter-cited: exit 2, not-human
|
||
OK chose-no: exit 2, not-merge-option
|
||
OK two-refs: exit 2, work-ref
|
||
OK bad-ref: exit 2, work-ref
|
||
OK task-ref-disagrees: exit 2, work-ref
|
||
OK raise-task-disagrees: exit 2, work-ref
|
||
OK target-main: exit 2, target-branch
|
||
OK superseded-question: exit 2, superseded
|
||
OK superseded-task: exit 2, superseded
|
||
OK superseded-by: exit 2, superseded
|
||
OK no-verdict: exit 2, no-verdict
|
||
OK changes-later: exit 2, not-approved
|
||
OK short-commit: exit 2, not-approved
|
||
OK wrong-task-body: exit 2, not-approved
|
||
OK args: exit 2, decision-not-found
|
||
OK earlier-merge: exit 0
|
||
OK ref-moved: exit 2, ref-moved
|
||
OK root-top: exit 2, root-file
|
||
OK root-newdir: exit 2, root-file
|
||
OK root-src: exit 2, root-file
|
||
OK unrelated: exit 2, base-conflict
|
||
OK empty: exit 2, base-conflict
|
||
OK an empty reviewed diff says so
|
||
OK dirty-changed: exit 2, checkout-dirty
|
||
OK dirty-staged: exit 2, checkout-dirty
|
||
OK dirty-untracked: exit 2, checkout-dirty
|
||
OK conflict: exit 2, base-conflict
|
||
OK a refusal after the worktree is added leaves no worktree or scratch
|
||
OK cleanup looks for the worktree's Docker network
|
||
OK dirty-during: exit 2, checkout-dirty
|
||
OK a reviewed path dirtied during the gate moves no ref
|
||
OK drift: exit 2, patch-drift
|
||
OK patch-drift leaves no worktree or scratch
|
||
OK gate-pkg: exit 2, gate-failed
|
||
OK gate-failed names the failing step's log, and it exists
|
||
OK gate-failed leaves no worktree or scratch
|
||
OK gate-script: exit 2, gate-failed
|
||
OK a failing scripts/test-*.sh fails the gate
|
||
OK a failed gate moves no ref
|
||
OK nomods: exit 4
|
||
OK a target without node_modules leaves no worktree or scratch
|
||
OK moved: exit 2, base-moved
|
||
OK base-moved keeps the base where it moved to
|
||
OK dry: exit 0
|
||
OK --dry-run writes no ref
|
||
OK --dry-run prints the commit with --subject and --attribution
|
||
OK --dry-run runs the gate
|
||
OK --dry-run leaves no worktree or scratch
|
||
OK land: exit 0
|
||
OK the landing is one commit on the old base
|
||
OK its diff is the reviewed diff by patch-id
|
||
OK its tree is the dry run's
|
||
OK the message has the option's subject, the citations and the attribution last
|
||
OK it prints the line for the PM
|
||
OK the checked-out base has the reviewed paths and keeps the unrelated edit
|
||
OK only refs/heads/refactor exists in the target
|
||
OK the work ref is unchanged
|
||
OK the bus database is unchanged
|
||
OK the gate ran each package suite but queue, and each scripts/test-*.sh
|
||
OK the landing leaves no worktree or scratch
|
||
OK the target's node_modules is still there, with its contents
|
||
OK the worktree's Docker network is removed
|
||
---
|
||
land-work selftests: 86 passed, 0 failed
|
||
END shell-7
|
||
START shell-8
|
||
toolchain: node v26.8.1, git version 2.55.0
|
||
|
||
OK syntax: packages/queue/src/cli.mjs
|
||
OK syntax: packages/queue/src/errors.mjs
|
||
OK syntax: packages/queue/src/io.mjs
|
||
OK syntax: packages/queue/src/lock.mjs
|
||
OK syntax: packages/queue/src/queue.mjs
|
||
OK syntax: packages/queue/src/review.mjs
|
||
OK syntax: packages/queue/src/store.mjs
|
||
OK syntax: packages/queue/tests/commit.test.mjs
|
||
OK syntax: packages/queue/tests/data.test.mjs
|
||
OK syntax: packages/queue/tests/dispatch.test.mjs
|
||
OK syntax: packages/queue/tests/gate-owner.test.mjs
|
||
OK syntax: packages/queue/tests/helpers.mjs
|
||
OK syntax: packages/queue/tests/lock.test.mjs
|
||
OK syntax: packages/queue/tests/migration.test.mjs
|
||
OK syntax: packages/queue/tests/review.test.mjs
|
||
OK syntax: packages/queue/tests/store.test.mjs
|
||
OK syntax: packages/queue/tests/write.test.mjs
|
||
OK syntax: packages/queue/tests/fixtures/fake-gitea.mjs
|
||
OK syntax: packages/queue/tests/fixtures/kill-at.mjs
|
||
OK syntax: packages/queue/tests/fixtures/lock-child.mjs
|
||
OK syntax: packages/queue/tests/fixtures/mosaic-pre-a2.sh
|
||
OK syntax: scripts/queue-commit.sh
|
||
OK syntax: scripts/git-hooks/pre-commit
|
||
OK syntax: scripts/mosaic
|
||
OK queue-commit.sh, the guard and scripts/mosaic are executable
|
||
OK packages/queue declares no dependencies
|
||
ℹ tests 156
|
||
ℹ pass 156
|
||
ℹ fail 0
|
||
OK node --test packages/queue/tests/
|
||
OK scripts/mosaic queue help
|
||
skip queue verify and render --check: this checkout (/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196) is not the queue's canonical root (/mnt/storage/src/mosaic-stack)
|
||
|
||
queue suite: 28 passed, 0 failed
|
||
END shell-8
|
||
START shell-9
|
||
OK valid RELEASE resolves (exit 0)
|
||
OK invalid RELEASE exits 1 (exit 1)
|
||
OK missing RELEASE exits 1 (exit 1)
|
||
OK valid RELEASE leaves image tag consistent with version
|
||
OK status safe on empty state (exit 0)
|
||
OK status created no pointer
|
||
OK fault-injected activation refuses (exit 1)
|
||
OK refused activation wrote no pointer
|
||
OK refusal logged exactly once with valid fields
|
||
OK healthy activation succeeds (exit 0)
|
||
OK pointer written with valid fields
|
||
OK repeat activation succeeds (log grows) (exit 0)
|
||
OK log is append-only across activations
|
||
OK rollback without previous refuses (exit 1)
|
||
|
||
selftest: 14 passed, 0 failed
|
||
END shell-9
|
||
START shell-10
|
||
OK valid task validates (exit 0)
|
||
OK unknown task key exits 2 (exit 2)
|
||
OK unsupported taskVersion exits 2 (exit 2)
|
||
OK invalid task id exits 2 (exit 2)
|
||
OK empty prompt exits 2 (exit 2)
|
||
OK NUL in expectExact exits 2 (exit 2)
|
||
OK out-of-range timeout exits 2 (exit 2)
|
||
OK missing mission file exits 4 (exit 4)
|
||
OK task with valid mission validates (exit 0)
|
||
OK invalid mission exits 2 (exit 2)
|
||
OK validate missing task exits 4 (exit 4)
|
||
OK validation does not modify the task file
|
||
OK prune dry-run exits 0 (exit 0)
|
||
OK dry-run deleted nothing
|
||
OK prune --keep=2 --yes removes oldest (exit 0)
|
||
OK kept exactly 2 newest runs
|
||
OK newest run kept, oldest pruned
|
||
OK append-only receipt written (3 entries)
|
||
OK sessions/workspaces untouched by prune
|
||
OK prune with invalid keep exits 4 (exit 4)
|
||
OK mock adapter: gate passes on matching mock response (exit 0)
|
||
OK mock adapter: expect-mismatch recorded (exit 1)
|
||
OK mismatch reason recorded
|
||
OK unknown adapter fails closed (exit 1)
|
||
OK mission task runs via mock adapter (exit 0)
|
||
OK mission section injected into generated prompt
|
||
OK retry of mission run succeeds (exit 0)
|
||
OK retriedFrom lineage recorded
|
||
OK mission section present after retry (relative path resolved)
|
||
OK retry of missing run exits 4 (exit 4)
|
||
OK skill install bundled ms-tools (exit 0)
|
||
OK installed to skills-available
|
||
OK double install refuses (exit 1)
|
||
OK activate enables skill (exit 0)
|
||
OK enabled dir populated
|
||
OK uninstall while enabled refuses (exit 1)
|
||
OK deactivate moves back to available (exit 0)
|
||
OK uninstall removes from available (exit 0)
|
||
OK seat with enabled skill launches
|
||
OK skill path delivered to adapter
|
||
OK shipped researcher contract resolves (ceiling + network)
|
||
OK resolve-role refuses a non-role document (conductor policy) (exit 2)
|
||
OK resolve-role refuses name/filename mismatch (exit 2)
|
||
OK resolve-role refuses unknown network declaration (exit 2)
|
||
OK resolve-role refuses duplicate role tool (exit 2)
|
||
OK resolve-role refuses unsupported tool (exit 2)
|
||
OK resolve-role refuses missing contract file (exit 4)
|
||
OK version 1 role prints no contract line
|
||
OK shipped version 2 roles resolve with their contracts (pm, cto, coder, reviewer)
|
||
OK resolve-role accepts a minimal version 2 role (exit 0)
|
||
OK resolve-role refuses an action outside the vocabulary (exit 2)
|
||
OK resolve-role refuses a gated-only action in a role file (exit 2)
|
||
OK resolve-role refuses a Vikunja verb no role may hold (exit 2)
|
||
OK resolve-role refuses a version 2 role whose contract is missing (exit 2)
|
||
OK resolve-role refuses a contract that is a symbolic link (exit 2)
|
||
OK seat launches under role ceiling
|
||
OK role ceiling narrows seat tools (read,write,bash -> read,bash)
|
||
OK narrowing recorded loudly
|
||
OK missing role contract refuses launch (exit 2)
|
||
OK missing-contract refusal names the role
|
||
OK empty ceiling intersection -> tool-free seat
|
||
OK tool-free outcome recorded loudly
|
||
OK overridden agents dir without seat definition refuses (exit 4)
|
||
OK seat-resolution refusal names the seat
|
||
OK policy: mission only -> mission tools
|
||
OK policy: task only -> task tools
|
||
OK policy: both -> intersection (task narrowed)
|
||
OK policy: empty intersection -> tool-free
|
||
OK invalid mission capabilities rejected (exit 2)
|
||
mosaic-task: unsupported mission tool: "sudo" (supported: read, write, edit, bash, grep, find, ls)
|
||
OK task run with user layer present (exit 0)
|
||
OK user context dispatched into generated prompt
|
||
OK workspace+tools task runs via mock (exit 0)
|
||
OK workspace path + tools delivered to adapter
|
||
OK persistent workspace created on host
|
||
OK plain task still runs (no workspace/tools) (exit 0)
|
||
OK workspace var present but empty when absent
|
||
OK tools empty when absent
|
||
OK unknown tool exits 2 (exit 2)
|
||
OK workspace traversal exits 2 (exit 2)
|
||
OK hello task succeeds with exact marker
|
||
OK result.json written in run dir
|
||
OK result.json contents are correct
|
||
OK wrong expectExact fails with exit 1 (reason: expect-mismatch)
|
||
OK each run gets a distinct run dir (no clobber)
|
||
OK list shows both runs
|
||
skip live provider cases (row 244: no provider call in the gate)
|
||
OK onboard without name exits 4 (non-interactive) (exit 4)
|
||
OK onboard --name renders profile (exit 0)
|
||
OK profile written
|
||
OK canon structure: required filled, optional placeholdered
|
||
OK canon sections present
|
||
skip live provider cases (row 244: no provider call in the gate)
|
||
OK no agent identity on headless run
|
||
|
||
selftest: 91 passed, 0 failed
|
||
END shell-10
|
||
GATE COMPLETE
|