Contract v3 (tunnel): the QR / deep link may carry r=<lowercase UUIDv4> and no LAN address at all (the IDE's default). u is now 0..4, but a payload with neither u nor r is rejected, and a present-but-invalid r rejects the whole payload instead of falling back to the LAN addresses. AiturkRelay maps a relay id to the virtual host <relayId>.relay.aiturk.invalid that addresses a tunnel pairing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf