The console
A local web board for the fleet — who is doing what, and is anything blocked, in one glance. Bun, zero npm runtime dependencies, port 1777.
The Sirius Console answers one question for a bystander — who is doing what, and
is anything blocked — without a terminal. It is Bun.serve, vanilla TypeScript,
zero npm runtime dependencies, on port :1777. Like every other write path
in the suite, it opens all three stores read-only and mutates only by shelling
out to sirius <cmd> --json.
Run it
Against a seeded fixture ledger — no sirius binary required, so you can see the
whole thing in about thirty seconds:
bun run demo # seeds a fixture ledger and serves :1777
Against a real workspace, once sirius init has created .sirius/sirius.db:
cd /path/to/repo && bun run /path/to/web/src/server.ts # walks up for .sirius/
What it shows
- Fleet board — one card per worker: current issue (with its title when the
Ametrite store is readable), the code entities held, per-entity oracle verdicts
(
registered/blocked/forced), gate status, and the filed receipt with a two-way ✓✓ / partial ◐ flag. Live via server-sent events. - History — throughput per hour, median and average cycle time, gate-escape attempts, collision near-misses, two-way receipt coverage, and tokens; plus recent-iterations and policy-events tables.
- Receipts — click any receipt to open a drawer with its issue or decision,
the symbols stamped, forward and reverse provenance, the iterations that filed
it, and
sirius whyenrichment when the binary is present. - Config — a read-only view of
.sirius/config.json, marking which keys come from the file versus the committed defaults.
How it stays read-only
The console never writes any SQLite. Workspace discovery and reads happen over
read-only WAL connections; live updates come from polling PRAGMA data_version
and streaming a text/event-stream. The only mutation path is the
sirius --json shell-out boundary, so the console can never corrupt a store it
is only meant to observe.
| Method | Path | Purpose |
|---|---|---|
| GET | /events | SSE — fires on data_version change |
| GET | /api/fleet | fleet board JSON |
| GET | /api/history | history stats + recent iterations |
| GET | /api/receipt/:id | receipt detail + sirius why |
| GET | /api/config | .sirius/config.json (or defaults) |
| POST | /api/gate | shells sirius gate <issue> --json |
| POST | /api/link | shells sirius link … --json |
The why enrichment and the POST mutation routes light up automatically once
the real sirius binary is on PATH.