From e941cc4c39c38a12220153ea572bd4c7bb92fde0 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 2 Oct 2026 08:39:56 +0200 Subject: feat(client): list cast receivers as they answer The scan still runs six seconds, but the picker polls what it has found and shows each receiver immediately. A rescan no longer has its timer cut short by the scan it replaced. Co-Authored-By: Claude Opus 5.5 --- docs/MESHBAY_DESIGN.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs/MESHBAY_DESIGN.md') diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md index 2419916..eec354a 100644 --- a/docs/MESHBAY_DESIGN.md +++ b/docs/MESHBAY_DESIGN.md @@ -3352,6 +3352,13 @@ any LAN renderer can play; the relay is device-agnostic. Chromecast discovery an control ship. DLNA/UPnP is designed and not built: it is a second device backend beside the first, not a second relay. +**Discovery lists receivers as they answer.** The mDNS scan runs six seconds, +because a receiver coming back from a reset can take that long, but most answer +within two. The main process holds what the scan has found and the page polls it +(`cast:scan`, then `cast:devices`) for as long as the picker is open, rather than +waiting on one call for the whole scan; a poll uses the same checked `handle()` +door as every other call, where a pushed event would be a second one. + **Subtitles are rebased onto the relay's clock before they are sent.** The node extracts a track whole, so its cues carry the film's timeline, and the player can use them unchanged because its SourceBuffer is given `timestampOffset = -- cgit v1.2.3