radicle-reticulum/tests
Maciek "mab122" Bator 8f4f732dca feat: watchdog push detection, setup command, and gossip refactor
Gossip relay now reacts to rad push instantly when watchdog is installed.
A threading.Event replaces the interruptible sleep loop: watchdog fires
the event on any filesystem change in the seed's storage directory, waking
the poll loop immediately.  Without watchdog the relay falls back to the
configured poll interval with a clear log message.

New command 'radicle-rns setup' checks all prerequisites and prints exact
fix instructions for anything missing: rad/radicle-node binaries, seed
identity, watchdog, and whether the seed is registered in the user's
radicle node.

Other changes:
- gossip: _poll_loop_once() extracted so tests can drive one iteration
- gossip: stop() sets poll_event so the thread exits without waiting out
  the full poll interval
- gossip: _start_watcher() creates storage dir if absent (watchdog requires
  the watched path to exist)
- pyproject.toml: watchdog>=3.0 added as [watch] optional dep and dev dep
- 5 new tests for watchdog/event/auto-discover behaviour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 22:28:42 +02:00
..
__init__.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00
test_adapter.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00
test_bridge.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00
test_gossip.py feat: watchdog push detection, setup command, and gossip refactor 2026-04-22 22:28:42 +02:00
test_identity.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00
test_link.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00
test_messages.py feat: initial implementation of radicle-reticulum bridge 2026-04-21 12:14:57 +02:00