11 KiB
@suaveplan/network-plugin-session - Hierarchical session management for the Suaveplan mesh: SessionTree, SessionManager, SessionRouter, per-session host election, transition manager, parent-state bridge, capacity enforcer, registry
Summary
Hierarchical session management for the Suaveplan mesh. SessionTree maintains a parent-child session graph rooted at a single auto-created root; SessionManager handles join / leave / move with deterministic tree mutations and session:joined / session:left / session:moved bus events; SessionRouter filters NetworkNode.send() so messages reach only peers in the target session scope (default leaf, parent, or broadcast); SessionHostElection picks a host per session via injectable scoring (latency / uptime / reputation) and re-elects on host departure; SessionTransitionManager runs the join → request snapshot → sync → active state machine, with a forwarding tunnel for in-flight messages during move; ParentStateBridge replicates configurable read-only keys (worldTime / weather / globalEvent) from parent to child sessions; SessionCapacityEnforcer rejects over-capacity joins with optional session:split-requested trigger; SessionRegistry tracks every known session for mesh-wide discovery + assignment. Wrapped in a single SessionPlugin satisfying the NetworkPlugin lifecycle.
Documentation tree
- bridge — (no submodules)
- parent-state-bridge — (no submodules)
- capacity — (no submodules)
- session-capacity-enforcer — (no submodules)
- election — (no submodules)
- session-host-election — (no submodules)
- plugin — (no submodules)
- session-plugin — (no submodules)
- registry — (no submodules)
- session-registry — (no submodules)
- router — (no submodules)
- session-router — (no submodules)
- session — (no submodules)
- session-manager — (no submodules)
- transition — (no submodules)
- session-transition-manager — (no submodules)
- tree — (no submodules)
- session-tree — (no submodules)
- error-codes — Frozen registry of every error code raised by the session package. Codes are namespaced under
NET_SESSIONand registe…
- parent-state-bridge — (no submodules)- capacity — (no submodules)- session-capacity-enforcer — (no submodules)- election — (no submodules)- session-host-election — (no submodules)- plugin — (no submodules)- session-plugin — (no submodules)- registry — (no submodules)- session-registry — (no submodules)- router — (no submodules)- session-router — (no submodules)- session — (no submodules)- session-manager — (no submodules)- transition — (no submodules)- session-transition-manager — (no submodules)- tree — (no submodules)- session-tree — (no submodules)- error-codes — Frozen registry of every error code raised by the session package. Codes are namespaced under
NET_SESSIONand registe… - parent-state-bridge — (no submodules)- capacity — (no submodules)- session-capacity-enforcer — (no submodules)- election — (no submodules)- session-host-election — (no submodules)- plugin — (no submodules)- session-plugin — (no submodules)- registry — (no submodules)- session-registry — (no submodules)- router — (no submodules)- session-router — (no submodules)- session — (no submodules)- session-manager — (no submodules)- transition — (no submodules)- session-transition-manager — (no submodules)- tree — (no submodules)- session-tree — (no submodules)- error-codes — Frozen registry of every error code raised by the session package. Codes are namespaced under
NET_SESSIONand registe… - parent-state-bridge — (no submodules)- capacity — (no submodules) - session-capacity-enforcer — (no submodules)- election — (no submodules) - session-host-election — (no submodules)- plugin — (no submodules) - session-plugin — (no submodules)- registry — (no submodules) - session-registry — (no submodules)- router — (no submodules) - session-router — (no submodules)- session — (no submodules) - session-manager — (no submodules)- transition — (no submodules) - session-transition-manager — (no submodules)- tree — (no submodules) - session-tree — (no submodules)- error-codes — Frozen registry of every error code raised by the session package. Codes are namespaced under
NET_SESSIONand registe…