mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 10:06:15 -08:00
Review follow-ups on the lazy portal EPG queue. - A completion now captures `EpgSourceSettingsService.revision()` next to the display offset and requeues itself when either moved. The retire pass cannot queue a replacement while the key is in flight, so without this the answer computed against the removed guide was published and trusted for a full TTL — the repo's late-result invalidation contract (Greptile P1, Codex P2). - The presenter hands its wanted set back on destroy: the queue lives in the root service and kept asking for cards on a page the user had left (Greptile P2, Codex P2). - The failure cooldown was dead code: the collection resolver catches per-channel portal failures and files them as `null`, so the outer catch never fired. Answers with no programme now expire after 30 s instead of 60 s, which is what lets a transient outage recover, and a resolver-level throw takes the same path (Codex P2). - `sync()` returns immediately without the local EPG program-lookup capability: the resolver is gated on it and answers nothing, so the PWA queued work that could never produce an answer (Codex P2). The release note now says desktop. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>