v4.11.1 — fix: conflict-merger hook inert on user-scope installs
PATCH. The conflict-merger-session-start SessionStart hook — the operator-facing half of V4 #26's cross-agent / cross-device conflict detection — was structurally installed and wired but functionally inert on the canonical user-scope install. It read the vault location only from the MEMORY_VAULT_PATH env var, which Claude Code does not inject into the hook environment on user-scope installs (and which isn't exported by shell profiles or settings.json), so the hook silently exited 0 on every real session boot and never ran detect_conflict_files(). Surfaced by a targeted /doctor probe during operator dogfood. Single-repo release; crickets untouched. Isolated hotfix — cherry-picked off v4.11.0, independent of the in-flight V4 #22 work on main.
Fixed
conflict-merger-session-startnow resolves the vault viaenv → .agentm-config.json::vault_path → none(bash hook + pwsh twin), porting the_resolve_vault_path()fallback already used bymemory-recall-session-start. With the env var unset, the hook now readsvault_pathfrom the on-device install-state config and detects Google Drive(conflicted copy …)files at session boot as designed. Second hook to hit the env-injection gap; the resolution order is now a standing convention for vault-aware SessionStart hooks (ADR 0007 amendment onmain).
Internal
- Regression test
scripts/test_conflict_merger_hook.pydrives the bash hook as a subprocess withMEMORY_VAULT_PATHunset + a fixture.agentm-config.jsoncarryingvault_path; fails against the pre-fix hook (silent exit 0), passes with the fallback. Companion cases: env-wins, no-vault graceful-skip, clean-vault no-notice,MODE=off. Adversarial/review: NO ISSUES FOUND. 435 → 440 tests.
Cross-references
- agentm v4.11.0 — the release this hotfix branches from.
- ROADMAP-V4 item #26 — the cross-agent conflict-detection feature this restores to working order.