swactor/crates/dashboard/AGENTS.md
Zachery Aaron Shores-Chmielewski c7d9c28e2b refactor(myelin): rework control and runtime integration
Add actor-backed manual node provisioning, control-plane endpoints, and fleet UI assets with durable provider lifecycle handling.

Simplify Myelin orchestration, node runtime, staging, and telemetry paths while removing obsolete engine-builder, dashboard-view, and local-mock implementations.

Align runtime delivery, data-plane, distribution, job-runner, process, telemetry, dashboard, Vast.ai integrations, and their tests with the revised actor and transport contracts.
2026-08-20 01:46:11 +04:00

1 KiB

Dashboard crate contract

Keep this crate read-only with respect to observed programs.

  • It may ingest telemetry frames.
  • It may retain bounded raw-frame and view state for HTML/API rendering.
  • It may host universal swactor runtime views.
  • It must not send control signals to observed runtimes.
  • It must not require changes outside crates/dashboard for dashboard-only work.

Main built-in view: the fused control plane at / and /view/fleet (node cards with machine + actor rollup, per-node roster, per-actor dossier via /api/view/fleet/detail), backed by host.*, proc.<label>.lifecycle, runtime.stats, and runtime.actors frames when present. It is a pure frame consumer, tolerant of publisher shape. Message history is folded view-side from messages_processed deltas - no producer changes. The unified navbar is injected server-side from the view and application plugin-page registries; pages opt in with a <!--swactor:nav--> placeholder. Plugin routers remain application-owned composition inputs and must not add dashboard-owned control state.