Running mutation testing on the diff only

A full mutation run on a large codebase is hours, which means it runs nightly and nobody reads it. Running it on the changed lines takes minutes and lands in the pull request.

$ vendor/bin/infection 
    --git-diff-filter=AM 
    --git-diff-base=origin/main 
    --min-msi=70 
    --logger-github

# 41 mutants instead of 4,120. two minutes instead of three hours.

Applying the threshold only to new code is the same ratchet as a coverage baseline: the existing score is what it is, and anything added has to meet the bar. The GitHub logger annotates the diff with escaped mutants, which puts the finding where the author is already looking. A nightly full run is still worth having for the trend, and nobody needs to read it every day.