Files
tether/rendezvous/.gitignore
Patrick Ecord 2c1419d18c core+rendezvous: zero-config bootstrap + iroh on iOS
Two pieces that unblock the on-device cross-CGNAT test:

1. Rendezvous (new `rendezvous/` crate, tether-rendezvous, axum) — the only
   server tether still needs on iroh: maps room → {EndpointId}, in-memory, TTL,
   content-blind (room is a hash; never sees clipboard data). IrohTransport now
   registers under cfg.server and bootstraps gossip from the returned peers, and
   re-registers every 30s so late joiners can find it. The TETHER_IROH_BOOTSTRAP
   env var is demoted to a test override. Verified: two engines self-discover via
   a local rendezvous and sync text + a 200KB photo with zero env wiring.

2. iroh on Apple targets — the iroh-transport feature cross-compiles for
   ios-arm64 / ios-sim / macOS once IPHONEOS_DEPLOYMENT_TARGET=26.0 is set (ring/
   blake3 prebuilt objects target the newer SDK). build-apple.sh now exports the
   deployment targets and takes a TETHER_FEATURES switch;
   `TETHER_FEATURES=iroh-transport ./build-apple.sh` assembles + vendors the iroh
   xcframework (4891 iroh symbols in the iOS .a). Swift bindings are unchanged —
   the app builds on iroh with no Swift changes.

Remaining for the live test: deploy the rendezvous (+ optional self-hosted
iroh-relay) publicly on the homelab, then build TetherApp in Xcode and point its
server field at the rendezvous URL. Default ship build untouched throughout.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 01:27:03 -05:00

2 lines
8 B
Plaintext