Skip to content

feat: meatquest ip discovery vis mDNS - #19

Merged
styu12 merged 3 commits into
mainfrom
feat-mdns-quest-discovery
Apr 16, 2026
Merged

feat: meatquest ip discovery vis mDNS#19
styu12 merged 3 commits into
mainfrom
feat-mdns-quest-discovery

Conversation

@styu12

@styu12 styu12 commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

No description provided.

styu12 and others added 3 commits April 15, 2026 12:31
No more hard-coded QUEST_IP. The Quest sender (paired Unity commit)
now advertises ``_syncfield-quest._tcp`` via Android NsdManager, and
the Mac recorder finds it via zeroconf — same protocol AirPlay /
AirPrint / Chromecast use, so it works on any network that passes
multicast DNS (most home / office WiFi).

Resolution order in ``discover_quest_ip()``:

  1. ``QUEST_IP`` env var — explicit override (multi-Quest, CI, the
     rare network that filters both mDNS and broadcast).
  2. Cached IP, validated by a 1.5 s ``/status`` probe. Stable
     networks re-resolve in <1 s after the first success.
  3. mDNS browse (~5 s budget). Primary path on fresh networks /
     after a DHCP renewal.
  4. UDP :14044 broadcast listener — last-resort for networks with
     multicast DNS disabled.

Measured on the current network:

  * Cache hit:            0.23 s
  * Fresh mDNS (warm):    0.46 s
  * Stale cache → mDNS:   2.09 s

record.py drops the QUEST_IP constant entirely. User runs it on any
subnet + the Quest app takes care of advertising; the Mac side never
needs to see an IP in human eyes.

``zeroconf`` moves into the ``camera`` extra so the example's
documented ``syncfield[ble,viewer,camera]`` install pulls it in
automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@styu12 styu12 changed the title Feat mdns quest discovery feat: meatquest ip discovery vis mDNS Apr 16, 2026
@styu12
styu12 merged commit 786415e into main Apr 16, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant