feat(dashboard): warn on source cards when a portal subscription expires soon

Dashboard source cards now carry a passive expiry chip: amber "Expires in
N d" within 7 days of the subscription lapsing, error-toned "Expired" once
it has. Account details stay behind the card's ⋮ → Account info.

Xtream expirations ride on the playlist switcher's cached PortalStatusService
check — checkPortalStatusDetails() now surfaces the parsed exp_date from the
same round-trip, so the dashboard adds no extra portal calls. Stalker
expirations come from the stalkerAccountInfo snapshot persisted at import;
it lives in the playlist payload (meta rows carry payload: null), so each
Stalker source costs one full-playlist read memoized on the playlist's
update timestamp.

New i18n keys added to all 19 locales via the i18n-fill merger.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5 committed 2026-08-02 10:50:06 +02:00
1 parent 6c065124ed
commit e7d32d7c61
34 files changed
+849 -30

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
---
type: feature
area: dashboard
---
Dashboard source cards now warn when a portal subscription is about to lapse:
an amber "Expires in N d" chip appears within a week of the expiry date, and
an "Expired" chip once it has passed. Xtream expirations come from the same
cached status check the playlist switcher uses; Stalker portals reuse the
account info saved at import.