1.9 KiB
Explicit repository relocation
The link manager normally rejects symlinks outside the current checkout. After a repository move, explicitly authorize the previous root rather than weakening that default:
node scripts/pi-links.mjs sync --dry-run --migrate-from /absolute/old/root
node scripts/pi-links.mjs sync --migrate-from /absolute/old/root
node scripts/pi-links.mjs check
Inspect the dry run before applying. Migration accepts only a separate absolute old root and only repairs manifest-declared destinations whose resolved link target exactly equals the old root plus the current source's repository-relative path. Dangling old targets are supported. Regular files, directories, unrelated targets, and mismatched relative paths remain conflicts. Replacement rechecks the target immediately before unlinking; this is not an atomic filesystem compare-and-swap.
The option does not claim stale/unlisted links or old local package registrations. It is rejected for prune; normal pruning still requires its own preview and approval. Linked-worktree ownership is a separate issue, not solved by this relocation option.
Validated host migration
Moved exposure from /srv/data/code/jb-pi/harness-tools to /home/jb/code/harness-tools: 38 global links repaired (35 skills and three instruction files), two project-local skill links created. Normal check passed with 40 links and zero local package entries. A bounded scan of harness configuration directories found no remaining symlinks with that old absolute target prefix. All 12 link-manager tests passed, including relocation, dry-run, collision preservation, invalid-input, and no-prune coverage.
Browser routing was also updated in skills/tools/browser-harness/SKILL.md: fast-browser is the default for supported local tests, while browser-harness requires explicit opt-in and must never bypass failed actions or share a fast-browser-owned session. Run /reload to refresh skill exposure.