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:

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

FreePro
AI analyses3 total (lifetime trial, not renewing)100 per month
Run historyLast 30 daysFull, unlimited
PriceUS$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.

Next steps