fix(mesh): route send-content-inline over federation for radio-less peers #133

Closed
ssmithx wants to merge 0 commits from fix/mesh-send-content-inline-federation-fallback into main
Collaborator

Summary

  • mesh.send-content-inline always routed via send_typed_wire (the LoRa/radio path), so sending a picture/attachment to a federation-only contact (no radio twin) failed with Peer is federation-only (no radio twin) — not reachable over the radio, surfaced to the companion app as "Operation failed. Check server logs for details."
  • Reproduced live on archy-x250-mad2 sending a picture from the companion app.
  • mesh.send-content (the ContentRef/out-of-band-fetch path) already resolves the peer's federation onion and falls back to send_typed_wire_via_federation; this mirrors that same lookup into mesh.send-content-inline.

Test plan

  • cargo build -p archipelago — clean
  • cargo test -p archipelago mesh:: — 135 passed, 0 failed
  • Manual verification: send a picture from the companion app to a federation-only contact on archy-x250-mad2

🤖 Generated with Claude Code

## Summary - `mesh.send-content-inline` always routed via `send_typed_wire` (the LoRa/radio path), so sending a picture/attachment to a federation-only contact (no radio twin) failed with `Peer is federation-only (no radio twin) — not reachable over the radio`, surfaced to the companion app as "Operation failed. Check server logs for details." - Reproduced live on `archy-x250-mad2` sending a picture from the companion app. - `mesh.send-content` (the ContentRef/out-of-band-fetch path) already resolves the peer's federation onion and falls back to `send_typed_wire_via_federation`; this mirrors that same lookup into `mesh.send-content-inline`. ## Test plan - [x] `cargo build -p archipelago` — clean - [x] `cargo test -p archipelago mesh::` — 135 passed, 0 failed - [ ] Manual verification: send a picture from the companion app to a federation-only contact on `archy-x250-mad2` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Collaborator

Landed on main as a9e52fa3 (route send-content-inline over federation for radio-less peers) and 92111385 (don't offer radio-only resource transfer to radio-unreachable peers), cherry-picked from this PR with authorship preserved; only private hostnames were removed from the commit messages per the open-source checklist. Verification: cargo fmt clean; full archipelago backend suite 1483 passed / 0 failed (135 mesh tests included). Both commits are pushed to main. Closing as landed — thanks!

Landed on main as `a9e52fa3` (route send-content-inline over federation for radio-less peers) and `92111385` (don't offer radio-only resource transfer to radio-unreachable peers), cherry-picked from this PR with authorship preserved; only private hostnames were removed from the commit messages per the open-source checklist. Verification: cargo fmt clean; full archipelago backend suite 1483 passed / 0 failed (135 mesh tests included). Both commits are pushed to main. Closing as landed — thanks!
chaum closed this pull request 2026-08-30 18:00:31 +00:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.