The apps

Three small pages you can add to a phone's home screen, each installable on its own. All are served by the API and show only what the operations return; a key pasted once stays on the device.

Install

On first open, paste a key: a tenant key opens that tenant in /app/ and /app/tests/; the operator key opens /ops/app/. Each installed app keeps its own copy of the key.

Notifications

Turn on notifications in the app to be told, on that device, when mail needs a person (a held capture, a field that requires a human, a forwarding confirmation with its code). The operator's devices hear about real tries, feedback and interest. Push is delivered through the browser's push service; the payload is encrypted so that service sees nothing.

Buckets and addresses

Each bucket is listed with the addresses made for it (create_address with bucket), a copy button for handing one to a sender, and the last 30 days of activity: messages, auto-applied, held, last received. + address creates a new one for that bucket from the phone.

The tests app

The same suite an agent runs with run_tests before a schema change. Each bucket shows its cases (origin, tricky or not, the expected values), the last run, and a Run now that runs them against the bucket's current schema and shows every failing field as expected → actual. Promote a capture lists recent captures that are not cases yet, held and corrected ones first, because a suite of easy cases proves nothing. Retire asks for a reason and calls remove_test.

The operator app

Operator key only. Tabs: Flow (the platform Sankey, requests by surface, interest), Feedback (grouped by triage status, with Discussed / Accept / Decline and a note), Tenants (kind, keys, ingests, and a health panel per tenant: counts and recent ingests, never content without a support grant), The door (handle exceptions waiting for a decision, and addresses refused at the door). Feedback, interest and exception reasons are text written by strangers and agents; the app shows them as data and a triage status records a discussion, not an approval to act.

The flow

Four stages read top-left to bottom-right: in (each address, the catch-all, uploads), bucket, outcome (auto-applied, approved by a person, held with the reason, unrouted), out (delivered to a webhook, delivery failed, held for reading). Hover or tap a ribbon for its count. The window is 24 hours, 7 days or 30 days.

get_flow returns the same nodes and links over MCP and HTTP, for an agent that wants the picture in numbers.

This page as Markdown.