The when defined(enable_libbacktrace): is evaluated at compile time and is false by default. When Nim loads this config.nims as a parent config during the testutils build, the libbacktrace block is silently skipped. Nothing is passed as --import.
Why the old guard (not defined(disable_libbacktrace)) wasn't enough: it required someone to explicitly opt out, but disable_libbacktrace is never passed during nimble's internal dependency build invocations. The opt-in approach is safe by default.
If any build in this project genuinely uses libbacktrace, you'd need to both add it to waku.nimble requires and pass -d:enable_libbacktrace explicitly.
* Add pre-check of options used in config Json for logos-delivery-api pre-createNode, treat unrecognized options as error
* Collect all unrecognized options and report them at once.
* Refactor json config parsing and error detection
The Nix build fails when consumers use `nix build github:logos-messaging/logos-delivery#liblogosdelivery`
without appending `?submodules=1` — vendor/nimbus-build-system is missing,
causing patchShebangs and substituteInPlace to fail.
Two fixes:
1. Add `inputs.self.submodules = true` to flake.nix (Nix >= 2.27) so
submodules are fetched automatically without requiring callers to
pass `?submodules=1`.
2. Fix the assertion in nix/default.nix: `(src.submodules or true)`
always evaluates to true, silently masking the missing-submodules
error. Changed to `builtins.pathExists` check on the actual
submodule directory so it fails with a helpful message when
submodules are genuinely absent.
feat: active filter subscription management for edge nodes
## Subscription Manager
* edgeFilterSubLoop reconciles desired vs actual filter subscriptions
* edgeFilterHealthLoop pings filter peers, evicts stale ones
* EdgeFilterSubState per-shard tracking of confirmed peers and health
* best-effort unsubscribe on peer removal
* RequestEdgeShardHealth and RequestEdgeFilterPeerCount broker providers
## WakuNode
* Remove old edge health loop (loopEdgeHealth, edgeHealthEvent, calculateEdgeTopicHealth)
* Register MessageSeenEvent push handler on filter client during start
* startDeliveryService now returns `Result[void, string]` and propagates errors
## Health Monitor
* getFilterClientHealth queries RequestEdgeFilterPeerCount via broker
* Shard/content health providers fall back to RequestEdgeShardHealth when relay inactive
* Listen to EventShardTopicHealthChange for health recalculation
* Add missing return p.notReady() on failed edge filter peer count request
* HealthyThreshold constant moved to `connection_status.nim`
## Broker types
* RequestEdgeShardHealth, RequestEdgeFilterPeerCount request types
* EventShardTopicHealthChange event type
## Filter Client
* Add timeout parameter to ping proc
## Tests
* Health monitor event tests with per-node lockNewGlobalBrokerContext
* Edge (light client) health update test
* Edge health driven by confirmed filter subscriptions test
* API subscription tests: sub/receive, failover, peer replacement
Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
Co-authored by Zoltan Nagy
* refactor retention policy to allow union of several retention policies
* bug fix time retention policy
* add removal of orphan partitions if any
* use nim-http-utils 0.4.1
* Simplify release process and leave the DST validation for deployment process
* Rename prepare_full_release.md to prepare_release.md
* Remove release-process.md as it duplicates info and causes confusion