feat(plex): add a "Recently watched" rail to Discover (D)

A new Discover rail listing what the user last FULLY watched, newest first: a movie as its
own card, a show as the specific EPISODE watched (carrying its show title via leaf_card). Sits
above Recently added. Movies honour the sidebar filters like the other rails; episodes carry no
filterable metadata so they don't. Clicking a card plays it (the existing onCard path already
routes episodes to the player). Bilingual heading added.

Verified live: the rail renders watched movies + episodes with Watched badges.

Gate: tsc/lint/knip/prettier clean, 423 vitest; backend ruff clean, 13 discover tests (+ a
recently-watched movie+episode assertion).
This commit is contained in:
2026-08-23 04:08:28 +02:00
parent 15f5a5694a
commit c0d869089d
7 changed files with 80 additions and 1 deletions
+1
View File
@@ -343,6 +343,7 @@ export interface PlexPlaySession {
export interface PlexDiscover {
scope: string;
continue_watching: PlexCard[];
recently_watched: PlexCard[]; // last fully-watched movies + episodes, newest first
recently_added: PlexCard[];
// top genres → tap a tile to filter the grid; `art` = up to 4 poster rating_keys for the collage
genres: { value: string; count: number; art: string[] }[];