Tracking issue for outstanding work on this fork and its downstream consumer (keylight-hap), so it doesn't get lost. The upstreaming approach is being discussed in brutella#68.
1. dnssd mDNS busy-loop — pinned to an unreleased upstream commit
keylight-hap pins github.com/brutella/dnssd to v1.2.15-0.20260227152348-8c9d3cd68d00 (upstream master) to pick up commit 8c8f363 "Fixes connection leak and endless loop when context error is deadline exceeded".
2. Upstreaming the feature branches
Approach under discussion in brutella#68.
3. tlv8 fixes currently bundled inside adaptive-lighting
The AL branch also carries two general, non-AL tlv8 bugfixes:
7435a20 — writeFloat32 wrote zero bytes (encoder).
5ddb625 — encoder ignored the ,optional tag flag + decoder dropped fields after an absent optional.
For clean upstreaming these would ideally live on their own branch/PR rather than riding the AL PR. (The decoder-side ,optional fix complements the already-merged tlv8-unmarshal-bug work, which fixed only the decode path.)
Current pins (keylight-hap)
- hap fork:
github.com/hughobrien/hap@910e73c (fork master)
- dnssd:
github.com/brutella/dnssd@v1.2.15-0.20260227152348-8c9d3cd68d00
Tracking issue for outstanding work on this fork and its downstream consumer (
keylight-hap), so it doesn't get lost. The upstreaming approach is being discussed in brutella#68.1. dnssd mDNS busy-loop — pinned to an unreleased upstream commit
keylight-happinsgithub.com/brutella/dnssdtov1.2.15-0.20260227152348-8c9d3cd68d00(upstreammaster) to pick up commit8c8f363"Fixes connection leak and endless loop when context error is deadline exceeded".mdnsConn.readInto'sisDoneonly treatscontext.Canceledas done; on aDeadlineExceededcontext the read loop never exits and spins on immediateReadFromerrors → 2–3 cores pegged. Observed on the deploy host (216–300% CPU → ~4% after the bump;nanosleep~37k/4s → ~95).v1.2.14.v1.2.15+. No PR needed.2. Upstreaming the feature branches
Approach under discussion in brutella#68.
fix-pipelined-request-loss(78932fb) — ListPairingstlv8: EOFfix → PR Fix /pairings handler rejecting ListPairings with "tlv8: EOF" brutella/hap#67 (open).fix-removepairing-idempotent(910e73c) — RemovePairing idempotency (closed RemovePairing of a non-existent pairing returns error instead of success #1) → not yet PR'd upstream.adaptive-lighting— full HomeKit Adaptive Lighting → not yet PR'd; main subject of Adaptive Lighting brutella/hap#68.3. tlv8 fixes currently bundled inside
adaptive-lightingThe AL branch also carries two general, non-AL
tlv8bugfixes:7435a20—writeFloat32wrote zero bytes (encoder).5ddb625— encoder ignored the,optionaltag flag + decoder dropped fields after an absent optional.For clean upstreaming these would ideally live on their own branch/PR rather than riding the AL PR. (The decoder-side
,optionalfix complements the already-mergedtlv8-unmarshal-bugwork, which fixed only the decode path.)Current pins (keylight-hap)
github.com/hughobrien/hap@910e73c(forkmaster)github.com/brutella/dnssd@v1.2.15-0.20260227152348-8c9d3cd68d00