command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/launcher.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/Kk2174
begin: {"utc": "2026-10-24T20:20:11.308+00:00", "load1": "4.52"}
launch nice: 19
✔ C2-04: launcher workspace clones code but never the library (1412.021505ms)
✔ bus start --pm: the launcher instance (the chief of staff) runs under its own PID namespace, registered, with a manifest (1349.577553ms)
usage: {"event":"usage-unknown","business":"acme","run":"ra2efd5616e7f","instance":"chief","turn":"481be4d2-4e5e-4342-b87b-a2d5a472e44f","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r4c330bd1c3a9","instance":"coder","turn":"81529d90-21d9-4059-abc5-e1161c0ca49c","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"ra2efd5616e7f","instance":"chief","turn":"4c966b16-3089-442b-8acd-36751ebbe64b","source":"@none","code":"baseline-unknown"}
✔ the chief of staff launches a coder through its launch tool; the coder answers; refusals name their code (687.622381ms)
usage: {"event":"usage-unknown","business":"acme","run":"r50d4955eb4be","instance":"chief","turn":"6bf1cdbe-89a0-4c5e-bca2-b0060f99c231","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r6f6feec89f25","instance":"pm","turn":"38ccf89f-4353-41c1-b191-e1dc059a72f3","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r50d4955eb4be","instance":"chief","turn":"700ab3d7-d463-4f83-a700-b8e8762aa1e4","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r6f6feec89f25","instance":"pm","turn":"aac9e496-ce95-4df2-b21b-d27fb320448c","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r6f6feec89f25","instance":"pm","turn":"987d3d1f-f1a2-4ae3-a371-12ed900ebbe2","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r50d4955eb4be","instance":"chief","turn":"fe1772ab-b5fb-4cf8-83b4-65a9ea3a7a2f","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r6f6feec89f25","instance":"pm","turn":"d2290b5b-565c-446c-8345-baf4c7584f78","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r50d4955eb4be","instance":"chief","turn":"8896ce74-9b77-4bb5-8b68-f37572c977d8","source":"@none","code":"baseline-unknown"}
✔ a launched pm's request_staff reaches the chief of staff; no other session has the tool and the launch limits still hold (1302.967056ms)
✔ each launch makes sure the workspace has a clone of the project: cloned, fast-forwarded, or fetched and logged (4165.553525ms)
✔ a role the broker says holds a merge decision gets land_work, its prompt line, its landing and the git socket; without it, none (666.907297ms)
✔ REQ-LAUNCH-1 the tick starts a listed merge decision holder once, with land_work, the Landing line and its landing turn; an unlisted holder starts nothing (439.820069ms)
usage: {"event":"usage-unknown","business":"acme","run":"rb364079e1bc5","instance":"coder","turn":"25163f3d-8d12-455c-81ee-01ef93431b1c","source":"@none","code":"baseline-unknown"}
✔ a holder running since before the resolution is stopped once the broker releases it, land-relaunch, and the next tick starts it: landing turn first, then the message that waited (752.82833ms)
✔ a landing run that ended isn't started again for its decision, a spent decision starts nothing, and a new decision starts the holder (748.072704ms)
✔ after a restart, the new host's first tick starts a holder whose decision is still held (974.793604ms)
✔ a refused landing start is logged once per code with its decision, isn't a start, and the next tick with room starts the holder (664.068506ms)
✔ a project clone that can't be made refuses checkout-failed, from --chief and from a session, with no run and no clone left (320.374289ms)
✔ a runner that stops at once ends its launch with the runner's reason (391.057567ms)
✔ a Claude Code launch with no session credential refuses before it starts (206.891635ms)
✔ a pi launch needs no session credential: pi logs in through its own ENV_ALLOW variables (355.101475ms)
usage: {"event":"plugin-refused","kind":"harness","name":"down","code":"missing","message":"/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/plugins/harness/down is missing","kept":[]}
plugins: {"event":"plugin-refused","kind":"harness","name":"down","code":"missing","message":"/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/plugins/harness/down is missing","kept":[]}
✔ row 65 a failed primary preflight launches the fallback on a fixture harness module, recording the route and the reason (398.841594ms)
✔ a runner killed from the host ends its launch as killed, not failed (409.858948ms)
✔ a missing or failing bwrap refuses sandbox-unavailable before anything starts; there is no unconfined fallback (222.704964ms)
✔ row 64 a role skill that isn't enabled refuses skill-not-enabled, and one that isn't a plain directory skill-refused, before anything starts (213.53209ms)
✔ row 213 a creative instance's persona is read from <configDir>/personas: off its digest the launch fails with the mismatch as its reason (290.237792ms)
✔ row 64 on Claude Code a role skill that isn't enabled refuses the same way, before anything starts (214.009574ms)
usage: {"event":"usage-unknown","business":"acme","run":"r4d688f89fec0","instance":"chief","turn":"f5b5c452-789c-4698-a49c-598732488fb6","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"r4d688f89fec0","instance":"chief","turn":"907d7ed7-47b6-4075-9fee-51b028a6fcb2","source":"@none","code":"baseline-unknown"}
usage: {"event":"usage-unknown","business":"acme","run":"rb144400a72dc","instance":"coder","turn":"863f1067-ad33-45ba-a78e-da90f68f2244","source":"@none","code":"baseline-unknown"}
✔ a real Claude Code coder's shell can't read a stand-in secret or anything else its sandbox doesn't hold (1767.813305ms)
✔ a host that died hard leaves its sessions to the next host, which kills them and ends their runs so the role can be launched again (1124.533472ms)
✔ a host that died hard leaves its sessions to the next host, which finds one already exited (23) and ends their runs so the role can be launched again (4099.810448ms)
✔ bus start --no-launch leaves an earlier host's live session alone: no signal, no end, sessions.json as it was (270.952439ms)
✔ bus start --no-launch refuses every launch: the PM launch and a session's request, each logged, nothing spawned (213.08419ms)
✔ bus start --no-launch starts no thread tick; the same host with launches runs it (1215.506038ms)
✔ a malformed sessions.json refuses the host start with exit 3 and stays as it was (218.866761ms)
✔ an over-long launch request is refused at once, not at the 10 s idle timeout (233.070492ms)
✔ a launch client that never closes its side doesn't hold the host's close (233.384604ms)
✔ a runner that ignores SIGTERM is killed when the host closes (1410.982478ms)
✔ kill switch refuses chief and hire before launch work and a clear permits a later request (372.928916ms)
✔ kill switch stops an actual managed namespace and records the halt reason without rewriting its bundle (366.823793ms)
✔ a launch waiting across halt and resume cannot use its stale admission (239.246638ms)
ℹ tests 34
ℹ suites 0
ℹ pass 34
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 28081.381845
