Cut over domain resolution to an Autobase apply-based sidecar fed by
claim/vote dual-writes from dnsPass. Remove the legacy full-KV scan
getConsensusState path and wire all reads through consensus-view.
- Add consensus-resolver, consensus-events, consensus-apply,
consensus-autobase, and consensus-view modules
- Dual-append consensus events on claim/vote dnsPassAdd/Remove
- Bootstrap sidecar from existing KV entries; persist
consensusAutobaseKey in network manifest
- Expose sidecar health via GET /api/consensus/status and metrics
- Add consensus-resolver and consensus-apply unit tests
- Expand RFC 0001 to Implemented; update CONSENSUS.md
Rollback: deploy prior release; KV data unchanged, sidecar rebuilds on
next startup.
Replace dual message-channel + RPC setup with a single registerPluginProtocol
path, unified sdk.channels (register/request/event/broadcast), RPC keepalive
(__p2ns.ping/pong), and core request lifecycle on RPC open. Update
global.profile and example.plugin, admin Plugin RPC stats, docs, and
test:plugin-rpc. Breaking: upgrade all peers together; no legacy adapters.
- core.status handler and coreStatusRequest; diagnoseInviteIssuesAsync
clears stale failed-invite flags when peers report canProvideInvite
- Admin invite diagnostics and Core stats UI: per-peer remote state,
text status marks, recommendations aligned with invite.deliver RPC
- Extract stats-collector; push stats/health/status via subscribe-stats
WebSocket; HTTP only on first Stats tab load
- Document core.status in PLUGIN_SDK; proxy registers onCoreStatus
Align P2NS with current Autopass, Hypercore, Hyperdrive, and Protomux behavior:
add plugin DB recovery for incompatible persisted HyperDB data, stop
unconditional spec rebuilds via fingerprinting, update SDK replication paths,
and align proxy invite channels with p2ns.core-* protocols without replicating
Autopass over the p2ns topic.
- Reorder cleanup sequence to close HTTP/TLS/DNS servers BEFORE corestore operations
- Move dnsPass/main corestore closing after plugin cleanup to prevent race conditions
- Add explicit drive cleanup call to close all plugin drive stores
- Fix proxy-server cleanup to properly close state.store after dnsPass
- Add store.closed checks and improve error handling in cleanup functions
- Verify Autopass dnsPass.close() handles its internal corestore properly
- Remove duplicate DNS server closing code causing syntax errors
This resolves "Corestore is closed" errors during shutdown by ensuring no new
requests can access closed corestores, preventing corruption and ensuring clean
shutdown of all corestore instances (main, plugin databases, plugin drives, dnsPass).