[package] name = "jouleclaw-comms-fabric" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Runtime-internal CommsFabric ported from RCE (joulesperbit/crates/rce/src/runtime/comms.rs). Per-node bounded FIFO mailboxes + tick-driven heartbeat liveness monitor. Distinct from jouleclaw-wire / jouleclaw-mcp / jouleclaw-a2a (which are EXTERNAL protocol surfaces) — this crate is the engine-internal fabric: nodes send/receive Message { from, to, kind, payload }, heartbeats are recorded as a side effect of send/receive, and the supervisor pulls faulted node ids on each tick. Substrate-clean: no Instant::now() — caller supplies the tick." [dependencies] serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } chrono = { workspace = true, features = ["serde"] }