command: ["timeout", "-k", "10", "1800", "node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/host.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/txcqPa
begin: {"utc": "2026-10-24T21:38:09.999+00:00", "load1": "2.32"}
launch nice: 19
✔ the host boots the broker, binds a launch in process, and the notifier DMs a blocking decision exactly once (937.436138ms)
✔ a notifier that dies takes the host down with exit 1, so the unit restarts the pair (252.046796ms)
✔ a second host for the same data root refuses with exit 3 while the first runs (177.712343ms)
✔ two bus starts racing for one data root leave one host running; the other refuses that a host already runs (643.024388ms)
✔ a host takes over a host.lock its dead host left, and puts back a live claim that replaced it meanwhile (1.844744ms)
✔ a host.lock that goes between the check and the read is tried again; one that can't be parsed still refuses as unreadable (0.710232ms)
✔ a live host's lock stays, however old the file is (0.466095ms)
✔ a host.lock left by a host killed with SIGKILL doesn't stop the next bus start (978.995923ms)
✔ while a host boots, a reader sees no host: the human commands still ask for --business, stop and status find none (231.423466ms)
✔ a host started before host.lock existed, holding only host.json, still refuses a second start, which leaves no lock (29.874318ms)
✔ a broker fork that throws leaves no host.lock and no host.json (32.492764ms)
✔ a broker send that throws leaves no host.lock and no host.json (35.67736ms)
✔ a broker that misses its boot wait leaves no host.lock and no host.json (33.813603ms)
✔ a notifier fork that throws stops the broker and leaves no host.lock and no host.json (179.926105ms)
✔ a notifier send that throws stops the broker and leaves no host.lock and no host.json (180.090296ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, before the notifier starts, and leaves no host.lock and no live broker (177.626607ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, with no notifier, and leaves no host.lock and no live broker (178.052584ms)
✔ a host.json that can't be written stops both children and leaves no host.lock (287.805221ms)
✔ an error event on the broker before it replies fails the start at once, and leaves no host.lock and no live child (30.720206ms)
✔ an error event on the notifier before it replies fails the start at once, and leaves no host.lock and no live child (176.673421ms)
✔ an error event on the broker while the notifier starts fails the start once the notifier replies (287.31651ms)
✔ an error event on the broker once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (286.022801ms)
✔ an error event on the notifier once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (287.478675ms)
✔ a broker reply that misses the wait breaks the channel: the late reply answers nothing, later requests refuse, the host exits 1 (1190.034437ms)
✔ a broker reply with another request's id, or none, breaks the channel and the host exits 1 (378.696448ms)
✔ a broker reply with no request waiting breaks the channel and the host exits 1 (181.934978ms)
✔ a notifier that refuses stops the broker and the host refuses with exit 3 (229.352965ms)
✔ a notifier that refuses after the broker died still refuses with exit 3, without a send to the dead broker (226.876808ms)
✔ a notifier that dies before it replies, after the broker died, still refuses, without a send to the dead broker (175.817325ms)
✔ a close send that fails with EPIPE after the notifier refuses still gives the notifier's refusal, exit 3 (231.237697ms)
✔ a close send that fails with EPIPE after the notifier dies unanswered still gives the notifier's error (176.307123ms)
✔ close() whose stop and close sends fail with EPIPE still finishes, with exit 1 (249.104644ms)
✔ watchChildren reports a child that died before it was called, and one that dies later (22.892257ms)
✔ bus stop refuses to signal a live pid that is not a bus host (203.1706ms)
✔ bus start refuses with exit 3 and the code when the broker refuses to boot; bus status names the lock (341.680218ms)
✔ bus start refuses with exit 3 without a notifier config (120.976438ms)
✔ bus start runs until bus stop; status reports it while it runs (845.104572ms)
✔ bus start --no-launch says launches are disabled in its host-up line and stops cleanly; with --pm it is a usage error (658.136489ms)
✔ bus-service.sh renders the unit and installs it into a given directory (229.090761ms)
✔ bus-service.sh pins the claude binary, refuses one the unit can't carry, and renders without one (426.799307ms)
✔ bus-service.sh refuses a directory pin and keeps a symlink default unresolved (95.888654ms)
✔ bus-service.sh refuses a default claude without the execute bit, or in a PATH dir with a space (64.920767ms)
✔ bus start --pm while halted keeps the control host up without launching the chief (432.564259ms)
ℹ tests 43
ℹ suites 0
ℹ pass 43
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 12027.93022
