Playwright Proof Engine
Playwright is Opsis's proof engine. Findings from replay analysis stay suspected until Playwright successfully reproduces them in a real browser — only then do they become verified.
What happens when you click “Run verification”
- Opsis takes the verification plan from the finding (created by AI from session evidence, or synthesized from signals).
- Headless Chromium runs against your app's URL, replaying the user's steps: open the route, fill the form (with synthetic test data), click the problematic element.
- During the run, Opsis records video, a trace, console messages, page errors, failed responses (≥400), and request failures.
- The bug counts as proven when the expected console error or failed request pattern shows up again.
Verification runs interact with your app at its configured app URL — point it at a staging environment if you don't want synthetic interactions on production.
Artifacts
storage/artifacts/<project-id>/<run-id>/
video.webm # screen recording
trace.zip # open with: npx playwright show-trace trace.zip
screenshot.png # final page state
console.json # console + page errors (redacted)
network.json # failed requests (redacted)
test.spec.ts # Playwright test you can run yourself
result.json # structured resultArtifacts are private: they are served only through an authenticated gateway that checks your organization membership. Artifacts expire automatically after the retention window (30 days by default).
Run statuses
passed— the bug was reproduced; evidence is stored; the finding becomesverified.failed— the flow ran normally and nothing reproduced. If it wasn't a fix re-run, the finding becomesnot_reproducible; a re-run of an already-verifiedorfixedfinding becomesfixed; a re-run after a proposed fix becomesfixed_candidateuntil you confirm production.inconclusive— errors were observed during the run, but none could be attributed to the suspected bug. The finding's status is left unchanged and the captured video and trace are kept for human review.error— the runner itself failed; no conclusion about the bug.
Re-running the test in your repo
# download test.spec.ts from the run page, then:
npm i -D @playwright/test
npx playwright install chromium
npx playwright test test.spec.ts --headedRetention & expired evidence
- Artifacts are kept for 30 days by default, then removed by an automatic retention sweep.
- Fix-evidence grace: the artifacts of the latest run of a finding that is currently
verifiedorfixedsurvive past retention — the live proof of an open bug (or of a fix that worked) is never swept while the finding still depends on it. - Expired runs show an honest “evidence has expired” notice instead of broken links; the finding and run records themselves are kept. Re-run verification to regenerate fresh proof against your app's current state.
More on scan cadence and retention: Scans & Retention.