{"phase": "start", "utc": "2026-10-26T22:53:23.698563+00:00", "test": "packages/plugins/tests/harness.test.mjs", "bound": 180, "nice": 19, "privateHome": "/mnt/storage/scratch/tmp/gIwJ/home", "privateConfig": "/mnt/storage/scratch/tmp/gIwJ/home/config/unconfigured.json"}
✔ row 65 both harness modules load through the loader with every export the kind names (8.766916ms)
✔ row 65 each module answers for its own harness: adapter, levels, account, web, turn end and session files (0.74788ms)
✔ row 65 claude-code preflight: a missing credential, then a missing or relative binary, each refuse with their code (3.653296ms)
✔ row 65 claude-code version asks MOSAIC_CLAUDE_BIN when set, else claude on PATH, else null (3.721762ms)
✔ row 65 pi preflight refuses missing credentials, and its version is the package pin (0.623282ms)
✔ row 65 env passes the thinking level to both adapters, and claude-code's bundle writes its hook and MCP files (1.228188ms)
✔ row 65 a route's thinking reaches pi as --thinking and claude as --effort, through each module's env and adapter (16.247576ms)
✔ row 65 no core source outside packages/plugins names a harness, apart from the listed exceptions (38.861929ms)
✔ row 65 the grep's pattern catches a quoted name and a regex alternation, and not a word in prose (0.137314ms)
ℹ tests 9
ℹ suites 0
ℹ pass 9
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 123.176716
{"phase": "end", "utc": "2026-10-26T22:53:23.860975+00:00", "exit": 0, "niceRestoredTo": 19, "priorityCorrections": {}, "ownedPids": [2343383, 2343384, 2343390]}
