Commit Graph

2 Commits

Author SHA1 Message Date
Maciek "mab122" Bator be25772602 fix: bridge auto-discovery, tunnel bugs, and LoRa-aware announces
bridge.py:
  - Fix _on_tunnel_opened/_on_tunnel_closed instance attrs shadowing methods
    of the same name, causing NoneType-not-callable on every tunnel close
  - Fix auto_seed not firing on --connect path: NID registration now triggers
    whenever the NID is first learned from an announce, not only on is_new
  - Move nid_is_new check inside _remote_bridges_lock to prevent double
    rad-node-connect on concurrent announces
  - Distinguish link CLOSED vs timeout in link establishment log message
  - Add startup re-announce loop so peers that start slightly later are
    discovered without manual --connect; delays are configurable
  - Add announce_retry_delays parameter (default 5,15,30s; use 60,300,900s
    on LoRa to respect duty cycle limits)

  cli.py:
  - Expose --announce-retry-delays flag with validation and helpful error

  README.md:
  - Rewrite setup section based on real end-to-end test (two machines,
    radicle-node listen config, rad remote add workflow)
  - Remove --connect and rad node connect from required steps; both are
    now automatic via auto-discovery and auto-seed
  - Add LoRa duty cycle note for announce delays
  - Add full git workflow: init, push, clone, fetch across mesh
2026-04-21 15:42:36 +02:00
Maciek "mab122" Bator c418cfaccf feat: initial implementation of radicle-reticulum bridge
Python adapter bridging Radicle (decentralized Git) over Reticulum mesh
  networking (LoRa, packet radio, serial, I2P). Enables offline-first code
  collaboration without internet infrastructure or public seed nodes.

  - Identity mapping: Radicle Ed25519 DIDs ↔ RNS destinations, with persistence
  - TCP↔RNS bridge: tunnels radicle-node traffic over mesh, auto-discovers peers
  - LXMF sync: store-and-forward bundle delivery for offline peers, auto-push
  - Adaptive strategy: selects FULL/INCREMENTAL/MINIMAL/QR by RTT + throughput
  - Git bundles: full and incremental, delay-tolerant transfer
  - QR air-gap: encode/decode bundles as QR codes (≤2953 bytes)
  - CLI: radicle-rns bridge/node/sync/bundle/ping/peers/identity commands
  - 158 tests
2026-04-21 12:14:57 +02:00