Skip to content

v4.11.1 — fix: conflict-merger hook inert on user-scope installs

Choose a tag to compare

@alexherrero alexherrero released this 31 May 15:51
· 240 commits to main since this release

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-start now resolves the vault via env → .agentm-config.json::vault_path → none (bash hook + pwsh twin), porting the _resolve_vault_path() fallback already used by memory-recall-session-start. With the env var unset, the hook now reads vault_path from 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 on main).

Internal

  • Regression test scripts/test_conflict_merger_hook.py drives the bash hook as a subprocess with MEMORY_VAULT_PATH unset + a fixture .agentm-config.json carrying vault_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.