command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/stack-instances.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/MLCeSS
launch nice: 19
▶ T-I1 bootstrap --instance creates each instance's config, root and marker once, and refuses what it must not claim
  ✔ alpha and beta get a 0700 config dir, a config naming ~/.mosaic-NAME, a 0700 root and a 0644 marker (60.855677ms)
  ✔ under umask 077 the config and marker are 0600: the source honors the operator's umask (29.986402ms)
  ✔ a second bootstrap of each changes no byte, mode or mtime (115.072701ms)
  ✔ a non-empty root without its own marker refuses before anything is written, worktrees included (116.667738ms)
  ✔ an empty existing root is claimed, and an existing config whose root lost its marker refuses, not repairs (58.39322ms)
  ✔ a dangling symlink at the config path is never written through, named or default (59.409721ms)
  ✔ bad names and stray arguments exit 4 and write nothing (409.956001ms)
  ✔ --instance dev writes exactly what no flag writes (61.531186ms)
✔ T-I1 bootstrap --instance creates each instance's config, root and marker once, and refuses what it must not claim (913.517588ms)
▶ T-I2 selection: the four rows of D1 through the instance op and through an entry point
  ✔ row 1: no flag and no MOSAIC_CONFIG is the default; a missing default config leaves the data root empty (53.255893ms)
  ✔ row 2: MOSAIC_CONFIG alone is that config with the default names (25.680568ms)
  ✔ row 3: --instance NAME alone is NAME's config, root and suffix (52.17179ms)
  ✔ row 4: both must name one file; a symlink to it agrees, any other file exits 4 (358.384219ms)
  ✔ a named instance with no config exits 3 with its own bootstrap hint (24.983312ms)
  ✔ an entry point takes --instance in any position, once, and refuses a mismatch before it prints (172.944949ms)
  ✔ copy takes no --instance in either script: every instance shares the copies (16.035812ms)
✔ T-I2 selection: the four rows of D1 through the instance op and through an entry point (763.999307ms)
▶ T-I7 claims: the instance op refuses a root another instance claims, and a named root with no marker
  ✔ alpha's config pointing at beta's root refuses instance-root-mismatch in every op (138.993674ms)
  ✔ MOSAIC_CONFIG naming alpha's config with no flag refuses: the root is alpha's (26.814588ms)
  ✔ a default config whose root carries alpha's marker refuses; one naming dev, or none, passes (79.544204ms)
  ✔ a named root whose marker is missing, a symlink, unparsable or the wrong shape refuses instance-root-unclaimed (211.764473ms)
✔ T-I7 claims: the instance op refuses a root another instance claims, and a named root with no marker (520.793767ms)
✔ T-I5 two real bus hosts, one per instance, run at once and each answers from its own socket under its own root (1365.453024ms)
✔ T-I10 the guard protects every instance's config dir and data roots, even under a corrupt config (70.272405ms)
ℹ tests 24
ℹ suites 0
ℹ pass 24
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 3736.050614
