The federation fallback in the plain content-inline path wasn't enough — mesh.transport-advice recommended the "resource-mesh" tier purely from our own device being Reticulum-capable, without checking that THIS peer actually has a radio route. For a federation-only contact (no radio twin) that steered the frontend into send-content-inline's Reticulum resource-transfer path, which has no dest_prefix to send to and fails with "Peer is federation-only (no radio twin)" — reproduced after deploying the first fix on a live node. Adds MeshService::has_radio_route(contact_id), and gates both the "resource-mesh" tier in mesh.transport-advice and the resource-transfer branch in mesh.send-content-inline on it. Federation-only peers now fall through to the has_tor branches, which route the frontend to mesh.send-content (already correctly federation-aware) instead. Landed from PR #133 (re-committed to drop private host details from the original message; content identical). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>