* feat(sds): messages with lost deps are delivered
This is to re-enable participation in the SDS protocol. Meaning the
received message with missing dependencies becomes part of the causal
history, re-enabling acknowledgements.
* fix(sds): avoid overflow in message history storage
* feat(reliable-channel): Emit a "Synced" Status with message counts
Return a "synced" or "syncing" status on `ReliableChannel.status` that
let the developer know whether messages are missing, and if so, how many.
* fix: clean up subscriptions, intervals and timeouts when stopping
# Conflicts:
# packages/sdk/src/reliable_channel/reliable_channel.ts
* chore: extract random timeout
* fix rebase
* revert listener changes
* typo
* Ensuring no inconsistency on missing message
* test: streamline, stop channels
* clear sync status sets when stopping channel
* prevent sync status event spam
* test: improve naming
* try/catch for callback
* encapsulate/simplify reliable channel API
* sanity checks
* test: ensure sync status cleanup
* fix: add stop methods to protocols to prevent event listener leaks
* fix: add abort signal support for graceful store query cancellation
* fix: call protocol stop methods in WakuNode.stop()
* fix: improve QueryOnConnect cleanup and abort signal handling
* fix: improve MissingMessageRetriever cleanup with abort signal
* fix: add stopAllRetries method to RetryManager for proper cleanup
* fix: implement comprehensive ReliableChannel stop() with proper cleanup
* fix: add active query tracking to QueryOnConnect and await its stop()
* fix: add stop() to IRelayAPI and IStore interfaces, implement in SDK wrappers
* align with usual naming (isStarted)
* remove unnecessary `await`
* test: `stop()` is now async
* chore: use more concise syntax
---------
Co-authored-by: Levente Kiss <levente.kiss@solarpunk.buzz>
* feat: query on connect stops on predicate
* test: query on connect stops at predicate
* feat: reliable channels search up to 30 days to find message
Queries stop once a valid sync or content message is found in the channel.
* fix: protect against decoding exceptions
* stop range queries on messages with a causal history
* feat: query on connect
Perform store time-range queries upon connecting to a store node.
Some heuristics are applied to ensure the store queries are not too frequent.
* make `maybeQuery` private
* query-on-connect: use index.ts only for re-export
* query-on-connect: update doc