New features
- A What's new dialog opens once per browser after an upgrade, and on a browser's first load. It lists the changelog sections since the version that browser last saw. Settings > System status > Version reopens it, and a new Show what's new after an upgrade setting turns it off.
GET /api/v1/changelogserves the changelog as version sections with optionalsinceandlimit. (#954, #955, #952) - Episodes that a feed's title, description or duration filter matches carry a Filtered chip in the episode list, and a Filtered option in the feed page's status filter lists them. The chip's tooltip names the rule. API:
GET /api/v1/feeds/{slug}/episodes?status=filtered. (#958, #955) - Every list page keeps its page, sort and filters in the address bar: the dashboard feeds list, Processing history, Downloads, Sponsors, Patterns, Detected ads, Ad review and the Queue. Back and reload return to the same place, and a filtered view can be shared as a link. (#955)
Fixes
- YouTube playlist feeds use the cover set for the playlist on YouTube as their artwork. With a Data API key configured the artwork was the newest video's thumbnail. Existing playlist feeds pick up the cover on their next artwork refresh. (#955)
- A refreshed or uploaded feed cover shows in the web UI without a hard reload. Artwork responses carry an ETag and revalidate on every load, and the feed's artwork URL changes with the stored file. (#955)
- The provider Test connection no longer reports "did not return a model list" for an OpenAI-compatible endpoint whose model catalog is larger than 64 KB. The probe reads up to 4 MB and says so when a reply is larger. (#955, #959)
- On phones the transcript dialog's Context toggle stays on one row with the View toggle while no search term is set, and disabled segmented toggles stay focusable so screen readers reach the hint that describes them. (#955)
- Body text clears 9.5:1 and muted text 7:1 contrast on card and page surfaces in every theme and mode (AAA). Colored text, button labels and badge tints keep the 4.5:1 floor. Outline buttons and the unchecked checkbox draw a stronger border, and the dashboard Feeds/Episodes switch matches the height of the buttons beside it. (#954, #955)