Files
iptvnator/docs
4grayandClaude Opus 5 15d7709934 fix(dashboard): guard portal EPG answers by source revision, release them on teardown
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>
2026-09-20 21:51:58 +02:00
..