Skip to content

feat(discovery): recognise the headless X32Link (ESP-035) - #9

Merged
Skeyelab merged 1 commit into
mainfrom
feat/esp-035-x32link
Jul 15, 2026
Merged

Skeyelab merged 1 commit into
mainfrom
feat/esp-035-x32link

Conversation

@Skeyelab

Copy link
Copy Markdown
Member

"I see kstouch. not the headless."

The X32Link was powered, on the network, and audibly following the Link session — and the app showed nothing.

Adding x32link to the hostname prefix list is the small half of this. The real cause was in the firmware: that unit had no mDNS whatsoever. Not a stale name, not a wrong service type — none. It never advertised, so no matcher on this side could have found it, and dns-sd couldn't see it either. That's fixed in link-devices ESP-035, where it now announces x32link-<mac> like the rest of the fleet and serves the shared /status and /config.json.

Pair with that PR — this one alone does nothing.

The prefix list remains a documented heuristic, not a guarantee. A TXT record is still the thing that would make identity a fact rather than a guess, and a stranger's box at a venue is exactly the false positive prefix-matching cannot prevent. Tests pin both halves: the headless is one of ours, and brother-printer / x32-mixer are not.

Verified on real hardware

Both units now appear in the list with live BPM:

DISCOVERED
  KSTOUCH-DFD0.LOCAL     123.0   1 PEERS
  X32LINK-6160.LOCAL     123.0   1 PEERS

Full suite green.

https://claude.ai/code/session_01F7YsQgso3KNpeXbP5vNVj6

"I see kstouch. not the headless." The X32Link was powered, on the network, and
following the Link session, and the app showed nothing.

Adding `x32link` to the hostname prefix list is the small half of this. The real cause
was in the firmware: that unit had NO mDNS WHATSOEVER -- it never advertised, so no
matcher on this side could have found it, and `dns-sd` could not see it either. Fixed
in link-devices (ESP-035), where it now announces `x32link-<mac>` like the rest of the
fleet and serves the shared /status and /config.json.

The prefix list stays a documented HEURISTIC, not a guarantee -- a TXT record is still
the fix that would make identity a fact. Tests pin both halves: the headless is one of
ours, and a stranger's box at a venue still is not.

Verified against the real unit: both devices now appear in the list, live BPM.

Claude-Session: https://claude.ai/code/session_01F7YsQgso3KNpeXbP5vNVj6
@Skeyelab
Skeyelab merged commit d4b642b into main Jul 15, 2026
1 check 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.

2 participants