Binary search gives 1 answer when history has 1 flip. When history has several, or drifts gradually, that answer is a lie. Ranked blame is crux refusing to lie.

how it works

When the normal search finds no single transition, crux tests every commit in the range & scores each failing commit on evidence: 50 points for being a flip boundary (the commit right before the behavior passes again), up to 30 for recency in the range, 20 for touching 5 or fewer files. Top 5 print with scores.

cost

The scan is linear: 1 test run per commit. That's the price of honesty when the monotone assumption fails, and it only triggers after the cheap search already failed to answer.

reading it

Scores are rankings, not probabilities. 90% has more evidence than 60%, but the number isn't a confidence interval. Work top down.

edit this page