Every team with an end-to-end suite knows the morning routine. CI went red overnight. Someone opens the report, scrolls through a dozen failures, and starts sorting: which of these are real bugs, and which are tests that fell behind the product? A heading was reworded. A link was renamed. A button moved into a menu. None of it is a defect, and all of it costs an engineer an hour before real work starts.
That hour is the tax that makes teams give up on end-to-end testing. Starting today, Donobu pays it for you.
What changes
When tests fail in CI, Donobu now puts an AI coding agent on the failures. For each one, the agent gathers the evidence (the failing step, screenshots, logs, and the test source), works out why the test failed, and fixes the tests that a test change can fix. Donobu re-runs the fixed tests. Then the agent opens a pull request that explains each fix, and Donobu adds the results it confirmed.
Your team's morning goes from triaging a red build to reviewing a pull request.
It is the same command teams already run in CI:
npx donobu test --auto-heal
It never grades its own work
A fix that only looks right is worse than no fix. So the agent does not decide whether it succeeded. Donobu re-runs every test the agent touched, and only a test that passes that re-run is called fixed.
The agent also decides how far its change reaches. When it edits something several tests share, such as a page object or a helper, it names the other tests that depend on it, and Donobu re-runs those too. The pull request states exactly which tests were re-run and which were not, so nothing is presented as checked that was not.
It knows a product bug when it sees one
Not every failure is a stale test. Sometimes the product is broken, and that is exactly what the suite exists to catch. When the evidence points at the application rather than the test, the agent leaves the test alone and writes down what a person should look at. A real regression stays red.
When it needs to, the agent opens your app in a headless browser and checks the current page, instead of guessing from a screenshot taken during the failure.
A person always signs off
The agent never pushes to your main branch. Every fix arrives as a pull request for your team to review, and the guardrails are built for reviewers:
- Weakened tests are flagged. If a fix skips a test or removes a check, the pull request says so.
- Your edits are safe. If someone commits to the fix branch, Donobu stops updating it until the branch is merged or deleted.
- One pull request, not a pile. A later run updates the same pull request. When a newer commit lands, the old one closes and a fresh one opens.
- Stale fixes clean up after themselves. If someone fixes the test by hand and the branch goes green, the heal pull request closes with a note.
It fits the CI you already run
Large suites run as shards across many CI jobs. Each shard adds its own fix and its verified results to the same pull request, so a reviewer sees the whole run in one place, and the merged Slack and HTML reports show healed tests as healed.
It works on GitHub and GitLab. On GitLab, the merge request is pushed with the job's own token, so there is no access token to create. It works for web tests, and for API tests written with Donobu's HTTP testing plugin. And everything stays in native Playwright your team owns: the fix is a normal code change in your repository, not an edit inside a proprietary format.
Part of how we own quality
For teams on Donobu's managed QA service, this is one more way the work stays with us instead of landing on your engineers. AI agents run the regression suite on every release, the heal agent keeps it current, and our engineers review every result before it reaches you.
Heal agent access is rolling out to Donobu accounts now. Book a demo to see it on your own suite.
