Add a ClusterRegistry that maps human-readable names to (ActorAddress, NodeId)
pairs, replicated across the cluster via SWIM gossip piggyback. Uses
last-writer-wins semantics with timestamp > generation > node_id tie-breaking,
and tombstone-based unregistration with configurable GC.
Key design: DistributedNode intercepts piggyback bytes on all outgoing/incoming
SWIM messages, wrapping them in a PiggybackPayload that carries both membership
updates and registry entries. SwimNode and DisseminationQueue remain untouched.
- New: crates/distribution/src/registry.rs (ClusterRegistry, pack/unpack helpers)
- Modified: node.rs (register_name/unregister_name/resolve_name API, piggyback
interception, node death tombstoning)
- Modified: snapshot.rs (RegistryEntryInfo in DistributionNodeSnapshot)
- 12 behavioral tests in crates/distribution/tests/registry.rs
- Remove CLAUDE/ from git tracking, add to .gitignore
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Runtime dashboard now features a TUI option and an interface for LLM tool use. Removed some bloat from stats collecting and replaced with a hook function to dump runtime stats into.