Description
Add devices to the radar by entering an IP address (optionally :port), for networks where multicast discovery is blocked — guest/AP-isolation Wi-Fi, some corporate/VPN setups. Discovery is multicast-only today, so on those networks no peer ever appears and there's no way to send.
Plan
- New entry point on the Send tab's radar (e.g. a
Select/hint action) or a Settings row: "Add by IP".
- Reuse the on-screen keyboard — add an
OskTarget::PeerAddress (src/overlay/osk.rs) to type host[:port]; default the port to LocalSend's 53317 when omitted.
- On commit, POST our info to
<scheme>://<host>:<port>{API_PREFIX}/register (same call as src/net/discovery.rs:252); the response carries the peer's DeviceInfo -> shared.peers.upsert(info, ip), so it appears on the radar and is selectable for send. Fall back to GET /info if /register fails.
- Toast the outcome ("Added " / "No device at ").
Notes
- Manually-added peers must not silently expire: the radar prunes past
PEER_TTL (src/net/discovery.rs:84). Either mark manual peers sticky, or re-poll their /info to keep them fresh.
- Try HTTPS then plain HTTP, matching the send path's scheme handling.
- Still needs L3 reachability (same subnet / routable) — this bypasses multicast discovery, not routing.
- Address validation + IPv6 bracket form (
[::1]:port).
Description
Add devices to the radar by entering an IP address (optionally
:port), for networks where multicast discovery is blocked — guest/AP-isolation Wi-Fi, some corporate/VPN setups. Discovery is multicast-only today, so on those networks no peer ever appears and there's no way to send.Plan
Select/hint action) or a Settings row: "Add by IP".OskTarget::PeerAddress(src/overlay/osk.rs) to typehost[:port]; default the port to LocalSend's53317when omitted.<scheme>://<host>:<port>{API_PREFIX}/register(same call assrc/net/discovery.rs:252); the response carries the peer'sDeviceInfo->shared.peers.upsert(info, ip), so it appears on the radar and is selectable for send. Fall back toGET /infoif/registerfails.Notes
PEER_TTL(src/net/discovery.rs:84). Either mark manual peers sticky, or re-poll their/infoto keep them fresh.[::1]:port).