Two cuts to wasted work in the merge verification loop: 1. After the in-merge fix agent runs, fingerprint the working tree (`git diff HEAD` + `git status --porcelain`, sha256). If the post-fix fingerprint matches pre-fix and is non-empty, the agent didn't actually change anything — re-running the same failing command can only yield the same failure, so log and report the attempt as unsuccessful without paying the test/build cost. Empty fingerprints (snapshot tooling failed) fall through to the existing re-run path so we never silently swallow a real fix. 2. Inside `syncDependenciesForMerge`, hash the active lockfile and compare against `node_modules/.fusion-install-marker` (written after each successful install). When they match, skip `pnpm install --frozen-lockfile` even if `package.json` is staged. Covers the common case where `package.json` changes but the lockfile doesn't, and amortizes install across auto-recovery re-enqueues that hit the same worktree. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
18 KiB
18 KiB