Inspiration

A failing test tells a developer that something broke, but it doesn't immediately explain which code change caused it. Finding that change can mean reviewing commits, reproducing failures, and testing possible fixes manually.

I built Bisect to make that investigation faster and easier to understand. Instead of relying on an AI guess, I wanted a workflow that could find the suspicious commit, explain the regression, and verify a proposed fix against real tests.

What I built

Bisect is an AI-powered regression investigation tool for Git repositories. It uses Python, Git, pytest, and parallel workers to test selected commits in isolated Git worktrees. Each result is streamed to an interactive dashboard, where developers can follow the search and see the suspected culprit.

After isolating a regression, Bisect calls NVIDIA Nemotron 3.5 Lightning through Nebius Token Factory. The model receives the relevant commit diff, source code, and failing-test output. It explains the likely root cause and proposes code edits.

The proposed patch is applied in a temporary worktree, and the tests are run again. A fix is marked verified only when the verification tests pass. If a proposed fix fails, the workflow can use that feedback for another attempt.

What the demo proves

The Easy scenario searches 35 commits and finds a discount-threshold regression caused by changing >= to >. The Hard scenario searches 38 commits and contains two related regressions introduced in a refactor. In the demonstrated Hard run, the first proposed fix fails, while a second attempt passes the tests.

Bisect also supports replaying saved investigation events, making previous runs easier to review without executing the full pipeline again.

How I built it and what I learned

I connected a Python backend to a live HTML, CSS, and JavaScript dashboard using FastAPI and Server-Sent Events. One of the key challenges was coordinating parallel test results, streaming progress reliably, and making sure that an AI-generated patch was actually tested rather than simply accepted.

Building the Easy and Hard scenarios taught me an important lesson: AI can help explain a regression and suggest a solution, but automated verification is what establishes whether that solution works for the tests being run.

Technology

  • Python, Git, Git worktrees, and pytest
  • FastAPI and Server-Sent Events
  • HTML, CSS, and JavaScript
  • Nebius Token Factory for runtime model inference
  • NVIDIA Nemotron 3.5 Lightning for root-cause analysis and patch generation

The hosted application and test execution run on Render, while model inference is handled through Nebius Token Factory.

The public demo currently offers configured sample repositories and saved-run replay. It does not accept arbitrary repository uploads or URLs through the public interface.

Live demo: https://bisect.onrender.com
Source code: https://github.com/Vaibhav24053/bisect

Inspiration

What it does

How I built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Bisect — Find the Commit That Broke It

Built With

Share this project:

Updates

Submission history