Add read-only actor overview and per-actor dossier pages to the dashboard, fed by enriched per-actor runtime snapshots. - `dashboard/swactor/actor_view`: new `ActorPanelView`, a tolerant frame consumer over `runtime.actors`/`runtime.stats` that folds per-actor snapshots and serves `/view/swactor/actor-overview` (roster) and `/view/swactor/actor-dossier` (per-actor detail), each backed by an embedded HTML template (`actor_overview.html`, `actor_dossier.html`) - `dashboard`: register both views in `DashboardHandle` and export `actor_overview_view()`/`actor_dossier_view()` from the swactor module - `swactor` core: enrich `ActorSnapshot` with `actor_type` and `message_type` (populated from `slot.actor.metadata()` in `ActorPool`) and add `ActorAddress::to_full_hex()` for untruncated display - `myelin/orchestration`: publish actor stats to the dashboard via a `runtime.actors` channel producer (`stats_hook_on`) threaded through the distribution stack, and carry the orchestrator actor address into readiness signaling - workspace `Cargo.toml`: add `default-members` for native iteration and a centralized `[workspace.dependencies] tokio` so members share one feature set; `dashboard/Cargo.toml` switches to `tokio.workspace = true` Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
47 lines
1.1 KiB
TOML
47 lines
1.1 KiB
TOML
[package]
|
|
name = "myelin"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
autobins = false
|
|
|
|
[features]
|
|
default = []
|
|
dashboard = []
|
|
|
|
[dependencies]
|
|
datastream = { path = "../../crates/datastream" }
|
|
data-plane = { path = "../../crates/data-plane" }
|
|
provisioning = { path = "../../crates/provisioning" }
|
|
dashboard = { path = "../../crates/dashboard" }
|
|
serde_json = "1"
|
|
serde = { version = "1", features = ["derive"] }
|
|
swactor = { path = "../..", features = ["serde", "transport"] }
|
|
swactor-transport = { path = "../../crates/transport" }
|
|
swactor-process = { path = "../../crates/process" }
|
|
distribution = { path = "../../crates/distribution" }
|
|
iroh-driver = { path = "../../crates/iroh-driver" }
|
|
iroh = "0.98"
|
|
tokio.workspace = true
|
|
swactor-vastai = { path = "../../tools/vastai" }
|
|
parking_lot = "0.12"
|
|
blake3 = "1"
|
|
toml = "0.8"
|
|
ureq = "2"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
libc = "0.2"
|
|
signal-hook = "0.3"
|
|
|
|
[[bin]]
|
|
name = "myelin-worker"
|
|
path = "src/bin/worker_node.rs"
|
|
|
|
[[bin]]
|
|
name = "myelin-orchestrator"
|
|
path = "src/bin/orchestrator.rs"
|
|
|
|
[[bin]]
|
|
name = "myelin-chat"
|
|
path = "src/bin/chat.rs"
|
|
|