-
cog-ha-matter (ADR-116 P4): MdnsService -> mdns-sd ServiceInfo bridge
发布于
2026-05-23 22:28:10 +00:00 Pure conversion from our wire-format
MdnsServiceto the
mdns_sd::ServiceInfoshape the responder daemon consumes. No
socket binding, no daemon registration yet — that lands next iter
as aruntime::spawn_mdns_responder(info)JoinHandle returning
helper, same shape asruntime::spawn_publisher.MdnsService::to_service_info(hostname, ipv4) -> Result<ServiceInfo, mdns_sd::Error>mdns-sd = "0.11"added — aligned with the workspace pin from
wifi-densepose-desktop so the lockfile doesn't fork dalek-like
surfaces.
3 new tests:
- to_service_info_carries_service_type_and_port — locks that
_ruview-ha._tcp(with or without mdns-sd's trailing-dot
normalisation) and the control port round-trip through the
conversion - to_service_info_propagates_txt_records — every locked TXT
key from iter 4 (cog_id, mqtt_port, privacy, proto, node_id,
cog_version) reachable viaget_property_val_stron the
converted ServiceInfo - to_service_info_does_not_silently_drop_caller_hostname —
locks the caller-side responsibility for the .local. suffix.
mdns-sd 0.11 accepts bare hostnames (verified empirically by
initial test expecting it to reject — it didn't), so the
wrapper layer must do the trailing-dot dance. Documenting
that via a named test catches future bumps where the lib
starts mutating the value.
63/63 cog tests green (60 → 63).
ADR-116 P4 now ⁶⁄₇: ✅ mDNS record-builder, ✅ chain, ✅ JSONL, ✅
file persistence, ✅ Ed25519 signing, ✅ ServiceInfo conversion;
⏳ daemon register + embedded broker.Co-Authored-By: claude-flow ruv@ruv.net
下载附件