Why these changes hang together:
- Rename `waku/node/kernel_api/` to `waku/node/waku_node/`: the folder
holds the node's protocol APIs, so it should carry the node's name
rather than the legacy "kernel_api" label.
- Collapse the old `kernel_api.nim` aggregator into the top-level
`waku/waku_node.nim` barrel, and drop `net_config`/`health_monitor`
from it. Those aren't the node's concern; consumers that used them
now import them directly (clearer, explicit deps).
- Move the `WakuNode` type from `node_types.nim` into `waku_node.nim`.
`node_types.nim` only existed to dodge a `WakuNode`/`SubscriptionManager`
import cycle that Nim actually handles fine, so the type now lives in
one obvious home and the indirection module is deleted.
- Extract `ShardSubscription` and `EdgeFilterSubState` into their own
small modules: they are standalone value types with no back-reference
to the node. `SubscriptionManager` stays with `WakuNode` on purpose
(it is the node's subscription subsystem; the relationship is real).
Verified: `wakunode2` and `libwaku` build; representative node tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Refactor channels to fit layering with explicit mount
* Fix channels test to perform the new mount sequence
* Add Waku.reliableChannelManager
* liblogosdelivery_start_node mounts ReliableChannelManager after MessagingClient
* Fix test_wakunode_peer_exchange missing lockNewGlobalBrokerContext
* Fix test_protocol missing lockNewGlobalBrokerContext
* Harden provider setup vs. misconfiguration (improper shared broker context situations)