Dashboard & plans
The hosted dashboard at razo.ar ingests razo-steps.json runs uploaded by razo-upload, keeps a history per project, and automatically runs AI failure analysis on failed tests — no ANTHROPIC_API_KEY of your own required.
Projects and ingest tokens
Sign in and create a project from the dashboard. Creating a project mints an ingest token (rz_...), shown once, in full, right after creation — copy it immediately into a repository secret named RAZO_INGEST_TOKEN. The dashboard never displays it again.
If the token is lost, generate a new one from the project's Settings tab. Regenerating immediately invalidates the old token — any CI job still using it starts failing its uploads with a 401 until the secret is updated. See CI setup for the upload workflow step.
What a run shows
Each project lists its runs newest-first: timestamp, branch, commit, pass/fail counts, and a link to the CI logs when razo-upload had a GITHUB_* CI URL to attach.
Opening a run shows every failed test first, each as a narrated timeline — the same step-by-step sentences from the Playwright report (Type "mi-llavero" into field "Filename", Click button "Export", ...), one row per step with a pass/fail icon. A failed assertion shows an expected/actual diff inline. A step that self-healed carries a healed pill next to its sentence, plus a note naming the old and new selector — see Self-healing for how healing decides that. Passed tests are collapsed under a disclosure below the failures.
A run with failures opens with a Regression analysis panel covering the whole run: a classification (Product regression, Intentional change, Outdated test, Missing precondition, Flake, Undetermined), a one-line verdict, and below them the long-form root cause — whether the failures share a cause or merely shared a run. This is the same classification and verdict the PR comment leads with; the comment links here for the rest. When the run came from a pull request, the analysis has also read that PR's diff and description, which is what lets it tell a regression apart from a change that was made on purpose. See CI setup.
Each failed test then gets its own AI diagnosis panel below its timeline: the Claude model used, and the same kind of Markdown analysis razo-analyze would print — what failed in business terms, a root-cause hypothesis, and a suggested fix. If a test wasn't analyzed (quota exhausted, or more than 5 failures in the run — see below), the panel says so instead, and points at running razo-analyze locally with your own key.
Insights
Every project has an Insights tab that turns the run history into metrics, computed deterministically over the last 30 runs:
- Stability — pass percentage across the window, with a trend arrow comparing the newer half against the older half.
- Flaky tests — tests that alternated pass/fail two or more times, with
their full history (
✓✗✓✓✗) and a flakiness score. - New regressions and fixed tests — what broke or recovered in the latest run compared to each test's previous appearance.
- Persistent failures — tests failing three or more runs in a row.
- Failure clusters — failures grouped by normalized error message, so 40 timeouts read as one cluster instead of 40 rows.
- Slowest tests — top five by average duration.
On top of the metrics, Analyze trends produces an AI briefing (suite health, what needs attention first, recommended actions) from the metrics plus the most recent failure messages. It consumes one analysis credit — the same pool as per-test analyses. On the Free plan, Insights cover the last 30 days of history; Pro analyzes the full window.
Plans
| Free | Pro | |
|---|---|---|
| AI analyses | 3 total (lifetime trial, not renewing) | 100 per month |
| Run history | Last 30 days | Full, unlimited |
| Price | — | US$12/month |
Both plans upload and store runs without limit — the quota only applies to hosted AI analysis. A single run analyzes at most 5 failed tests regardless of plan, so one badly-flaking suite can't burn a whole month's quota; any failures beyond that are marked skipped and can still be analyzed manually.
Analyzing with your own Anthropic key via razo-analyze (locally or in CI, see CI setup) is unlimited and free on the dashboard side — it never touches the hosted quota, because it never talks to the dashboard at all.
Hosted PR comments (the GitHub App) are a Pro feature. On Free the analysis still appears in the dashboard, just not on the pull request. Reading the pull request — the diff and the description — needs the same repo connection but not Pro: connect a repo on Free and your trial analyses are read against the PR like any other, so what you're trying is the real verdict rather than a version of it that cannot tell a regression from a deliberate change. Posting the comment is the Pro line, not reading the diff.
Deactivate and delete
Both live in the project's Settings tab, under Danger zone.
- Deactivate rejects further CI uploads (the ingest endpoint returns 403) while keeping all existing runs and analyses. Reactivate at any time to resume ingesting.
- Delete permanently removes the project along with all its runs and analyses. It requires typing the exact project name to confirm and cannot be undone.
Next steps
- CI setup — the workflow step that uploads runs, and the separate BYO-key PR-comment recipe.
- CLI reference —
razo-uploadflags and environment variables.