v4.7.0 — Installer + hooks robustness batch
MINOR. Bundles the eight installer/hooks-hardening commits accumulated since v4.6.1, surfaced and closed during a crickets dogfood /doctor audit. The marquee change is orphan-symlink reaping on user-scope source-mode installs (a feat:, hence the minor bump); the rest are robustness fixes — cross-install-scope memory-skill path resolution (the V4.7 silent-broken memory-recall shape), Windows path-normalization for the reaper, user-scope telemetry.sh seeding, and a fix so the installer stops symlinking loose canonical specs under harness/skills/ as inert skills. Ships alongside the companion crickets v2.1.2.
Added
- Orphan-symlink reaping on user-scope source-mode install (
8c5af42) —install.shreaps dangling symlinks under<prefix>/{agents,commands,skills,hooks,scripts}/pointing into a source clone whose target was deleted. Narrow safety rules: symlinks only, into known clones only, only when the target is absent.
Changed
- Installer stops symlinking loose
.mdspecs underharness/skills/(3f0f56c) — loose<name>.mdsiblings (doctor.md,migrate-to-diataxis.md) were symlinked as inert "single-file skills"; Claude Code loads skills as<name>/SKILL.md, so they only littered installs with duplicate spec symlinks. Maps dir bundles only now. memory-recallhook resolvesrecall.pyacross install scopes (a79f9f6) — pre-fix it hardcoded a project-scope path and assumedMEMORY_VAULT_PATHin the hook env; on user-scope installs the hook exited 0 emitting nothing despite always-load entries._reap_orphan_symlinkspath normalization for Windows (b2a922d) — naivestr.startswithsilently no-op'd on Windows (extended-path prefix asymmetry); added_normalize_path_str/_path_under.telemetry.shseeded at user scope (f8a356d) —install.shseeds<prefix>/scripts/telemetry.sh; stale doctor Task-9 stub dropped.
Internal
- Regression + cross-platform tests (
73ae161,7023340,3f0f56c): neutral Windows path fixtures, a "tests-are-sacred" rule-5 clarification, andHarnessSkillsMappingTests. .checksums.txtregenerated (b086207) — lib-parity sync to crickets.
Cross-references
- crickets v2.1.2 — companion release (gitignores
.harness/). - agentm v4.6.1 — prior release; v4.7.0 continues its user-scope-install hardening.