Show HN: FixBugs – Reproduce production bugs and verify fixes (fixbugs.ai)
I built FixBugs, an agent that ingests the rich context surrounding production bugs to reproduce them in a sandbox and generate verified fixes. It's available in the form of a self-hosted VSCode extension and as a Github app:
VSCode Extension: https://fixbugs.ai/go/vscode-extension
- full code and data privacy.
- zero data retention models opted out of training.
GitHub App: https://fixbugs.ai/go/github-app - we do access your code temporarily.
- pick a repo to install FixBugs on.
What motivated me to build FixBugs were my years being on-call at Google and VMware. How many hours did I spend gathering logs, traces, reviewing metrics, and reading code only to find that,* Some context was missing.
* The bug wasn't reproducible.
* The alert was caused by a transient infrastructure issue.
Too many. Inefficiency in investigating staging/production bugs has a real cost, and it's paid both by developers and customers.
Current capabilities:
- Reproduce the bug.
- Identify the root cause.
- Generate a fix.
- Verify the fix.
- Review the generated code using multiple AI models to help catch potential regressions.
Do try it and let me know what you think!I'd especially love feedback from engineers who work with distributed systems or handle high-volume production bug triage.
35 comments
[ 4.1 ms ] story [ 44.9 ms ] threadI think FixBugs is most useful during high volume bug triage. This is where having a low false-positive async debugging agent is most helpful.
This is essentially a (RCA <-> Repro test case) loop until we're recreated the bug. If our attempts are not converging and we’re on the wrong track, we ask for human input.
are you using any AI tools to debug productions issues at this time?
This also allows us to inject various types of faults, which is helpful with debugging more complex systems.
OSX is the best, we use the in-built (seatbelt) sandbox via sandbox-exec.
For Windows, we use WSL containers when available.
By default, if a safe sandbox environment is not available, we inform the user that a repro is not possible in the current conditions.
We do a lot of AST parsing - for both code and build configuration languages. Even then, we still have to rely on the LLM to figure out a lot of the details.
Making this work reliably for non-frontier models and codebases that don't have existing test harnesses is where a lot of the design work goes in.
are you using any AI tools to debug productions bugs at this time?
FixBugs was built because while investigating prod incidents, I had an epiphany.
SWEs build tools to solve all types of problems, but we ourselves use the flakiest tools.
While working at Google for example I was surprised GDB support for any type of binary debugging was almost non-existent.
I much prefer faking to mocking, because that still preserves a lot of the real-world behavior relevant to prod bugs.
A full prod reproduction would be a holy grail, but probably only attainable for complex distributed systems if we have access to a prebuilt staging-like environment.
We're traversing the bridge between mocks, fakes and staging at this time.
Of course, we did not send the PRs to the repos seeing how they're already overloaded with them.
Nginx for example has 181 open PRs right now, but they only merge 2 or 3 in a day.
Though, i wonder if it could also be an integration to alerting platforms directly (like NewRelic, Datadog etc.), so that for on-call alerts, it could cover the foundation work, and have some hypotheses ready for the on-call engineer to directly jump into