pub fn invalidating_paths(
root: &Path,
head: &str,
record_sha: &str,
gate: &GateCoverage,
) -> Option<Vec<String>>Expand description
2026-09-26: The changed paths that invalidate gate between two commits; empty when the
commits are equal.
None means git failed or one commit is not in this clone; callers treat it as not
covered.
The question is whether the trees differ on paths the gate cares about, so this runs
git diff --name-only and does not require record_sha to be an ancestor of head: a
record measured on a branch still covers the squash-merged commit when those paths agree.
The diff has no pathspec; super::coverage::invalidates filters it in Rust, so the
per-gate policy stays in coverage.rs.