mosaic-doctor now reports which tree fleet state resolves from and warns
on the drift a launch would hit at runtime:
- stale MOSAIC_BRAIN_HOME (no fleet/agents under it)
- symlinked brain/agents paths (managed-directory boundary)
- group/world-readable agents dir (0700 projection boundary)
- split state: env files in BOTH config-home and brain trees
Resolution mirrors brain-home.ts (#1298): MOSAIC_BRAIN_HOME wins;
canonical ~/.mosaic adopted only at the default config home; else legacy.
test-brain-home-check.sh: extraction-style harness (test-fleet-transport
discipline — functions pulled from the shipped script, never copied), 8
cases covering every branch; wired into test:framework-shell and covered
by the enumeration guard (population 53, all present).
Live-run verified on dragon-lin: caught two real drifts — agents dir
755 (fixed locally) and pre-cutover split state (expected, tracked in
mosaic-brain fleet/SEAT-CUTOVER.md).