swactor/crates/dashboard
Zachery Aaron Shores-Chmielewski 01326b05ed chore(docs): adopt repo-local spec workflow
Specs gain a monotonic Id and relocate by their true status: drafts
(WIP/aspirational) to docs/specs/drafts/, and accurate code-behavior
references stay in their crate dirs. docs/specs/archive/ is reserved for
superseded docs (currently empty).

Dispositions were cross-referenced against code, not the specs' own headers.
IROH_DRIVER claimed "current-state" but ~30% is unbuilt redesign, so it moves
to drafts. DATA_PLANE_ACTOR's central integration claim is unrealized (myelin
bypasses its node actor), and ACTOR_PANEL is not a reference; both are dropped
rather than reviewed or archived. DATASTREAM and MANAGED_PROCESS stay as
references; MYELIN stays in place (stale, flagged for review).

From here, commit titles reference a spec by [N] when one applies. This
bootstrap commit does not carry one.
2026-08-09 15:19:39 +04:00
..
src refactor(core): drop native threading for tick-driven execution 2026-08-09 13:50:33 +04:00
.gitignore feat: stability for deployment and distribution (#44) 2026-02-19 14:39:33 +00:00
AGENTS.md feat: actor view panels for the dashboard 2026-08-03 14:18:24 +04:00
Cargo.lock stash dashboard prune and match mvp to spec 2026-06-25 11:29:16 +04:00
Cargo.toml feat: proper README, LICENSE, and our first quick example 2026-08-06 00:53:16 +04:00
README.md feat: actor view panels for the dashboard 2026-08-03 14:18:24 +04:00

dashboard

Read-only HTML/SSE dashboard over incoming datastream frames.

The crate owns the Axum server, bounded raw frame window, and view registry. Component crates can keep their own view implementations beside their code and register them through DashboardHandle::register_view. The built-in swactor views are hosted here because worker/actor/message processing is universal to swactor programs: the worker page, and the actor overview (fused roster) plus per-actor dossier.

Routes

  • GET / — dashboard index
  • GET /events — raw incoming frames as SSE
  • GET /api/frames — recent raw frame window
  • GET /api/views — registered view metadata
  • GET /view/datastream/live — generic live explorer over retained and incoming datastream frames
  • GET /api/view/datastream/live — bounded per-stream/channel explorer snapshot
  • GET /view/fleet — compact fleet overview and focused machine telemetry
  • GET /api/view/fleet — fleet and machine telemetry JSON snapshot
  • GET /view/swactor/workers — built-in worker page
  • GET /api/view/swactor/workers — worker page JSON snapshot
  • GET /view/swactor/actor-overview — built-in actor overview + roster page
  • GET /api/view/swactor/actor-overview — actor overview JSON snapshot
  • GET /view/swactor/actor-dossier — built-in per-actor dossier page
  • GET /api/view/swactor/actor-dossier — actor dossier JSON snapshot

All state is derived from observed frames. The dashboard sends no control signals back to producers.