A blamed commit with a 400 line diff isn't an answer. The change that mattered might be 3 lines hiding between a dependency bump & a comment reflow. crux finds them with delta debugging, the same algorithm family that minimizes failing test inputs.
the mechanism
The flip commit's diff is split into pieces at hunk boundaries, keeping each piece's file header so it applies standalone. crux checks out the parent, applies a candidate subset, and runs your behavior command. Still broken with only that subset applied, and the subset is interesting: the cause lives inside it. Half the pieces get removed & the question repeats against smaller subsets until removing anything more makes the behavior pass. What remains is the essential diff.
Each probe is a real run of your command, which is why the probe count prints. Diffs above 64 hunks skip minimization rather than eat your afternoon. Full diff prints instead; narrow the range & retry.
why to trust it
2 properties. Probes test the actual working tree after applying the patch, never through a path that would discard it. And the final set is verified: if the full diff doesn't reproduce the failure, minimization refuses to guess.
edit this page