Fold the fragmented distribution swim/routing/gossip tests into swim_core, routing, and swim_actor. Prune the dashboard tui and command surfaces. Add mvp-system actors (node_agent, orchestrator, stage_controller), the local_e2e harness, and gpu worker e2e. Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
1.8 KiB
1.8 KiB
Datastream Dashboard — Agent Interface
Data Flow
The dashboard is an HTTP/SSE consumer of datastream-derived models. Agents should inspect the browser endpoints and JSON plugin endpoints.
datastream_source::FleetView is the canonical fold from delivered frames to dashboard models. It produces:
- fleet JSON for the node/fleet page
- distribution JSON for the distribution page
RuntimeStatsfor the selected node overview and actors table- activity messages for the event stream
HTTP Pages
GET /— selected node overviewGET /actors— selected node actor rowsGET /topology— topology derived from the latest selected-node statsGET /plugin/distribution— distribution graph and peer/cache stateGET /plugin/vastai— fleet viewGET /events— server-sent events for stats, activity, history, and plugin updates
JSON Endpoints
GET /api/stats— latest selected-nodeRuntimeStats, or{}before the first selected-node frameGET /api/topology— topology derived from latest stats, or{}GET /api/history— in-memory worker historyGET /api/logs— retained activity events, optionally filtered by query paramsGET /api/plugin/vastai— current fleet JSON cacheGET /api/plugin/distribution— current distribution JSON cache
The same plugin names are used on the SSE stream for incremental browser
updates. Distribution page buttons post to /api/plugin/distribution/rejoin
and /api/plugin/distribution/clear_status; the datastream-backed plugin
acknowledges them as read-only no-ops.
Extension Rule
Extend the dashboard through plugins backed by datastream-folded caches. A producer may add telemetry records, a fold may update shared JSON, and a plugin may serve that JSON/page over HTTP and SSE.