`git diff --no-index` exits 1 when files differ — that's the success case for synthetic untracked-file diffs, not an error. Use spawn directly so we can resolve on exit 0 or 1, independent of how callers (or test mocks) wrap execFile / promisify. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>