Core no longer owns or drives OS threads. The runtime is now a single tick-driven worker whose loop an external engine hosts and advances. This is the cutover required before the engine seam is introduced. Removed from core: - Runtime::run() and its owned thread pool (spawn, park/unpark, join) - notify_worker() and worker_threads: Vec<OnceLock<Thread>> plumbing - Placement load-aware selector and its WorkerStats-driven next_worker() - WorkerId newtype and the address->worker routing map; AddressMap is now a plain AddrSet membership set - num_threads from RuntimeConfig Rewired for the single-worker tick API: - python/wasm bindings, dashboard dummy node (deleted), myelin vastai adapter, and the runtime/test suites Cleanup folded in during review: - prune three never-written WorkerStats counters (cross_sends, messages_dropped, restarts) - collapse the redundant tick_all params onto the WorkerContext handle Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com> |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| ACTOR_PANEL_SPEC.md | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
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 indexGET /events— raw incoming frames as SSEGET /api/frames— recent raw frame windowGET /api/views— registered view metadataGET /view/datastream/live— generic live explorer over retained and incoming datastream framesGET /api/view/datastream/live— bounded per-stream/channel explorer snapshotGET /view/fleet— compact fleet overview and focused machine telemetryGET /api/view/fleet— fleet and machine telemetry JSON snapshotGET /view/swactor/workers— built-in worker pageGET /api/view/swactor/workers— worker page JSON snapshotGET /view/swactor/actor-overview— built-in actor overview + roster pageGET /api/view/swactor/actor-overview— actor overview JSON snapshotGET /view/swactor/actor-dossier— built-in per-actor dossier pageGET /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.