TestInspector
Private beta

Nothing changed.
The build broke anyway.

TestInspector re-runs your suite until the flake shows itself, then an AI agent names the cause and proposes the fix. You review it like any other diff.

No spam. One email when your invite is ready.

Flake detected confidence 0.94
test_checkout_applies_discount
tests/e2e/checkout_test.py:214
Last 24 runs · same commit

Async assertion races the toast animation. The test asserts on the discount total before the re-render settles. It passes whenever the runner is slow enough to let the frame land. That is most of the time, and never when you need it.

Suite history 4 flaky · 1 real

Three passes. No quarantine.

A skipped test is a deleted test with extra steps. TestInspector works the problem instead of hiding it.

01 / DETECT

Make it contradict itself

Re-runs the same commit until the mask slips. No new code, no new inputs. just enough runs to catch a test disagreeing with itself.

# same SHA, 24 runs passed 20 failed 4 → non-deterministic
02 / DIAGNOSE

Name the actual cause

The model reads the failing runs against the passing ones and identifies what differs: the race, the shared fixture, the wall-clock assumption, the state left behind by the test before it.

# cause race: assertion before re-render # not # - network, - ordering, - seed
03 / FIX

Patch the test, not the product

Proposes a diff scoped to the test file. It waits on the condition instead of the clock. You read it, you merge it, or you don't.

- assert total == "$45.00" + await expect(total).to_be("$45.00")

What it won't do

Quarantine and forget

Auto-skipping a flaky test buys a green build and loses the coverage. That trade is never made for you.

Touch your product code

Every proposed diff stays inside the test file. If the flake is a real bug, it says so and stops.

Merge anything

Nothing lands without you. The agent opens the diff and gets out of the way.

Get it before your next red build.

Early access is going out in small batches to individual developers and small teams.

Unsubscribe in one click.