Home / Team workspace

A control plane that recommends and never deploys.

Your whole team reads the same conversation-QA state from a workspace that runs in your own environment and ships nothing anywhere.

binds 127.0.0.1 · default --port 8321
$ hotato serve
Five views

One instrument, five reads on the same registry.

Every view has a machine mirror at ?format=json (same auth, same data) so an agent or a script can drive the workspace without scraping HTML.

view 01

Release readiness

Per-release rollup: whether required suites are complete, failures by dimension, the inconclusive count, the recorded-vs-simulated split, and new-vs-fixed since the last release.

view 02

Scenario matrix

Rows are scenarios, columns are this release and the last, with a per-dimension status and pass^k where a scenario has repetitions. Filter by agent, release, suite, and status.

view 03

Conversation inspector

One call's evidence manifest, transcript, trace spans, and per-dimension evaluations, deterministic and advisory shown in separate lanes. Every digest links straight to the raw evidence blob.

view 04

Failure clusters

Failed checks grouped by observable signature (dimension, assertion kind, reason-class) with drill-through into the inspector. It groups what was observed; it does not claim a cause.

view 05

Production health

Ingest coverage and per-dimension failure rate over time, computed separately for recorded and simulated calls. Thin history reads not enough history.

self-host

Runs in your environment

SQLite registry plus a content-addressed evidence store. Bearer-token auth, no per-agent cap, no phone-home.

Self-host the workspace →
Posture

In your VPC, on loopback, phoning nothing home.

The server binds 127.0.0.1 unless you tell it otherwise, authenticates every request against one bearer token compared in constant time, and opens only a listening socket.

It is stdlib-only: http.server plus sqlite3, no framework, no build step, no telemetry. A zero-egress test whitelists loopback and fails if any view reaches for an outbound connection.

run it in your own environment
$ docker compose up -d # http://127.0.0.1:8321

Read the self-host guide →

the five-view instrument
Release VIEW 01 Matrix VIEW 02 Inspector VIEW 03 Clusters VIEW 04 Health VIEW 05
Release VIEW 01 Matrix VIEW 02 Inspector VIEW 03 Clusters VIEW 04 Health VIEW 05
Read-only in v1: the server issues only SELECTs. Reviews and labels stay CLI-driven; the only file it writes is an append-only audit log.
No single number

Separate, flagged, never blended.

The workspace surfaces the shape of the evidence. Real and simulated calls are computed apart, thin samples are marked, and no view rolls the whole thing into one grade.

Redacted transcript segments render as [redacted] in both the HTML and the JSON mirror, and every request appends one line to an audit log that records a token prefix, never the secret.

what the workspace refuses to do
recorded vs simulated
Kept separate everywhere. A simulated call is never merged into a bucket of recorded ones.
small samples
Flagged in place as low sample, N=3, never smoothed into a confident-looking line.
combined quality number
Absent by construction. No blended score, anywhere.
write endpoints
None in v1. The server mutates nothing but the audit log.
Your artifacts, contracts, and dashboards move between self-hosted and cloud without changing a line.