Some breakages have no single author. Commit A rewrites a module & drops a code path, and every test still passes because nothing uses that path. Commit B enables the feature that needs it. Now the suite is red. Bisect reports B, which is technically where the failure appeared & completely misleading about where the fault lives.

benchmark table row for the interaction scenario: git bisect marked wrong, crux marking the fault as a detected feature

--interactions interrogates the flip point. crux checks out the flip commit, reverts each earlier candidate commit one at a time, and re-runs your behavior after every revert. Reverting 1 specific commit makes it pass. That commit is a required partner, and crux names the pair:

interaction fault (6 probes):
  5e4d56c16cee B enable advanced mode
  0714e6b0bc62 A refactor drops legacy flag support

If the failure survives every revert, crux prints that the flip alone reproduces. Pair theory ruled out. Candidates cap at the 16 most recent earlier commits, so cost is bounded. Opt-in, because it multiplies runs.

edit this page