Dashboard
BuiltLive call cards in all five verdict states, signal bars ordered by fusion weight, a sparkline with real gaps where windows were refused, and the risk-profile selector.
VoxShield Console
The Console is where a verdict becomes a decision. It runs on one laptop, offline, with one process and one GPU worker — and it is honest on screen about which of its answers it actually trusts.
There is no hosted Console to sign in to. It binds to 127.0.0.1:8000 on the machine that runs it, by design — that is what “offline” means here. This page is the tour; the running system is on the demo laptop.
Inside the Console
The v1.0 console, built and tested. Each view is plain HTML and vanilla JS.
Live call cards in all five verdict states, signal bars ordered by fusion weight, a sparkline with real gaps where windows were refused, and the risk-profile selector.
Verdicts that crossed a threshold, with the reason code and the prescribed action beside them.
Verdict distribution over time, including how often the system refused to answer — which is a number worth watching.
Enrolments, retention, and a verify-audit panel that reports either an intact chain or the sequence number where it broke.
Model hashes, device and VRAM, offline indicator, and the health endpoint's report of which alert mode is live.
Grounded Q&A with citations, plus a ? control on each verdict card that pre-fills the question for that card's reason code.
Enterprise layer
Multi-tenant sign-in, mobile recordings, incidents and mitigation. It never edits the detection core and never widens a claim the core makes. Dashed links below are specified, not built.
Enterprise sign-in
Seven auth endpoints are implemented. Authorisation is resolved in a dependency before the handler body runs — a hidden button is a convenience, not a control.
An email domain resolves to its enterprise. The lookup is one of only two cross-tenant queries in the system, and it is marked as such in the source.
Codes are generated with secrets, compared with hmac.compare_digest, rate-limited and expiring. The plaintext code is never stored. A timeout is a failure, never a pass.
Password (scrypt) or OTP, then a session token that is stored only as a hash. Sessions can be revoked, and there is an absolute cap on lifetime.
Platform admin, enterprise admin, security, bank and agent. Every tenant query takes the enterprise id first, and CSRF is checked inside the principal resolver.
Build state
The project distinguishes code that is written and tested from work a human has accepted against its criteria. That distinction is kept here rather than flattened into “done”.
| Area | State | Detail |
|---|---|---|
| Detection pipeline | Built | Ingest, VAD, gate, signals, fusion, verdicts, profile actions. |
| Audit chain | Built | Hash-chained, with three corruption paths covered by tests. |
| API surface | Built | 17 endpoints — 14 REST, 3 WebSocket — one identical JSON object. |
| Console views | Built | Dashboard, alerts, analytics, reports, settings, system, assistant. |
| Assistant | Built | Grounded retrieval with citations, refusal discipline, 28 tests. |
| Enterprise schema & tenancy | Built | 16 tables, idempotent migration, every repository function scoped by enterprise. |
| Auth, sessions, RBAC | Built | 7 endpoints, scrypt, CSRF in the principal resolver, 36 security tests. |
| Alert outbox | In progress | Core built and carrying OTP delivery; incident templates and the redaction test remain. |
| Admin API | Specified | Enterprises, employees, domains and contacts. Not built. |
| Mobile device ingest | Specified | Device tokens and recording upload into the existing pipeline. Not built. |
| Mitigation engine | Specified | Consumes the existing action matrix rather than defining a second policy. Not built. |
| Verification & incidents | Specified | Step-up OTP, incident status machine, append-only notes. Not built. |
| Human acceptance pass | Outstanding | Code is tested, but the walk-through against the acceptance criteria has not been signed off. |
Access
There is nothing to sign up for. Download the Console with its models included and run it locally.
# Unzip voxshield-console.zip, then from that folder
make setup # virtual environment + dependencies (models are already bundled)
make run # 127.0.0.1:8000, one worker
make test # 351 passed, 1 skipped
make coverage # 91.97%
make audit # 21 permissive deps, 15/15 model hashes
A mock telephony tool replays a WAV in real time into the Console, which produces one verdict per second, renders the correct card state, and appends every decision to the audit chain — with the network disconnected.
Nine benchmark harnesses regenerate every number this site publishes, on the reference machine named on the benchmarks page.
Next
Measured numbers, dataset by dataset — including the ones that argue against us.