51ad472046
Every test now flows through one loopback nostr-rs-relay on ws://127.0.0.1:8080 — no public relays, no egress. Addresses the repeated 503s we saw from the sandbox and the kind:445 rejections we hit on public relays even with internet. Changes: - Preflight clones https://github.com/scsibug/nostr-rs-relay into state-headless/nostr-rs-relay and runs `cargo build --release` (~3 min first run). Cache hits on subsequent runs. - New start_local_relay / stop_local_relay functions render a minimal config.toml each run (binds to 127.0.0.1, no kind blacklist, data under state-headless/relay) and wait up to 20s for the port. - configure_relays collapsed to a single-relay path — A/B/C all point at \$RELAY_URL. Kept publish-lists + key-package publish as smoke signals for the advertise path. - Flags pared down: drop --local-relays (always local now), add --port N for when 8080 is taken. --no-build still honoured. - trap wires relay shutdown alongside daemon shutdown. https://claude.ai/code/session_01M6dCKAF5Y1VyHGZPjzwDXq