What's Changed
Features
- add a link template for videos in notifications (74ad603), closes #961
- add external API control plane (8c67673)
- Add new frequency options to FREQUENCY_MAPPING (813a1ca)
- add output dir health check timeout env var (3331783), closes #988
- add RSS feed of downloaded videos (ac92b0a), closes #533 #998 #533
- open a video from the videos page URL (0b67971), closes #961
- run external requests in a background executor (e2f8fac)
Bug Fixes
- allow external request review with auth disabled and reject non-UTF-8 bodies (e98ff1d)
- bound channel metadata work without limiting catalog refreshes (c3de9c3)
- close config watcher after fixture validation (89a8564)
- harden external API inputs and expose effective availability (5595104)
- keep contract pagination tests watcher-free (f5e8340)
- keep external API changes out of shared logging and ratings (c0242cc)
- keep external catalog reads cached-only and portable (9b87150)
- keep external request tests watcher-free (36f5f5d)
- load external request dependencies lazily at startup (540260a)
- make external API opt-in and verify MariaDB migrations (0082558)
- make job summary report what changed (d0c5676), closes #987
- match external API paths case-insensitively at the app level (8e5bcc9)
- patch proxy address trust validation for external ingress (e35e430)
- point the external fixture check at the moved test (60e5a65)
- preserve external request retries and completed results (1882438)
- raise filename preview timeout to 20 seconds (5757b6b), closes #981
- return validation errors for unavailable channel grants (ac3ad33)
- serialize external approvals and recover durable download jobs (10a9b86)
- deps: bump follow-redirects to 1.16.2 (4e865d2)
- deps: update Storybook to 10.6.2 for GHSA-f2ph-cmg5-wxc8 (d698fb3)
- shrink and prune the jobs/info metadata cache (c061603), closes #990
- update NFO and info.json on rating change (ac5b6a7), closes #990 #990
Performance Improvements
- batch external request history and verify runtime indexes (b2213f5)
Continuous Integration
- bump the github-actions group across 1 directory with 2 updates (7ca1d93)
Documentation
- Add warning to "Automatic Downloads" section over not running task too often (51ae377)
- describe the external request lifecycle and executor (5f48d9c)
- Rename 'Every 2 weeks' to 'Twice a month (1st and 15th)' (5444461)
- revise automatic downloads description warning text (f697dc6)
- split CLAUDE.md into path-scoped rules (4856545)
- update CHANGELOG for v1.90.2 [skip ci] (758bc0a)
Code Refactoring
- group external API modules under modules/externalApi (9380164)
- separate external request lifecycle and preserve approval retries (62eaf05)
Tests
- align external request model indexes with runtime migration (9140548)
- keep auto-removal route mocks isolated (9d78863)
- run the request executor only when database tests ask (8af0111)
Docker Image
docker pull dialmaster/youtarr:v1.91.0Or use latest:
docker pull dialmaster/youtarr:latestFull Changelog
Full Changelog: v1.90.2...v1.91.0