3.2.0 - 2026-04-15
๐ Features
- (blocklist) Add support for collections (#1841) - (993ae4c)
- (discover) Handle errors gracefully when content is available (#1542) - (7920970)
- (i18n) Add Estonian language support (#2611) - (56b79ff)
- (i18n) Add Luxembourgish language support (#2671) - (dccdc95)
- (i18n) Add Vietnamese language support (#2670) - (40edaea)
- (jellyfin) Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint (#2340) - (3557745)
- (notifications) Add ntfy markdown formatting (#2602) - (77f2c13)
- (notifications) Webhook custom headers (#2230) - (3152f72)
- (notifications) Add priority setting for ntfy agent (#2306) - (61e0377)
- (person) Add tmdb- and imdb link on person detail page (#2136) - (fb2ee7c)
- (quota) Added support for unlimited quota days (#2797) - (6d8b2b7)
- (requests) Mark requests as failed when Radarr/Sonarr unreachable (#2171) - (c23117e)
- (settings) Add blocklist region and language options (#1802) - (ff469cb)
- (settings) Add help tooltips for services setup (#2662) - (f5115da)
- (sonarr) Add monitorNewItems option to sonarr settings & modal (#2071) - (5c34c91)
- (trending) Add filter options (#2137) - (4ce0db1)
- (ui) Add loading state to request approve/decline buttons (#2815) - (bd8f2d4)
- (userlist) Add sortable columns to User List (#1615) - (eaf397a)
- (webhook) Add imdbid to webhook notification (#2658) - (2432e8d)
- Sort quality profiles ASC in request and service configuration (#1805) - (25e376c)
- Add trailing whitespace warning on login username field (#2040) (#2177) - (636dcb9)
๐ Bug Fixes
- (auth) Resolve Plex OAuth client ID mismatch (#2746) - (15b3109)
- (email) Correctly classify final MIME header in PGP email encryption (#2618) - (9ec3d58)
- (email) Preserve newlines in PGP key textarea fields (#2617) - (835e917)
- (emby) Use static version in auth header for emby only (#2821) - (fe2c041)
- (entities) Replace MySQL-only onUpdate with @UpdateDateColumn (#2823) - (0b8f872)
- (generate-password) Await setPassword to fix race condition (#2845) - (061121c)
- (issues) Update issue timestamp when adding comments (#2616) - (a16d046)
- (jellyfin-scanner) Add TheMovieDb provider fallback for Jellyfin scanner (#2605) - (10f23f0)
- (login) Resolve stuck transition when switching login forms (#2779) - (735ec47)
- (media) Exclude null mediaAddedAt entries (#2607) - (001f6b1)
- (migration) Repair postgres blocklist id sequence (#2686) - (f40323c)
- (movie,tv) Respect display language for trailers (#2674) - (90d407d)
- (open-api) Add missing mediaType query parameter to blocklist and watchlist (#2722) - (c7185d4)
- (override-rules) Remove users from
useEffectdependency array (#2771) - (be57997) - (overseerr-merge) Sanitise corrupt quota values during overseerr migration (#2863) - (43eff25)
- (plex) Set 4K Plex URLs whenever ratingKey4k is set (#2635) - (1548948)
- (proxy) Add path validation guardrail to imageproxy (#2531) - (e086081)
- (region-selector) Prevent empty region reporting during sync (#2636) - (fbfcb43)
- (request) Record modifiedBy on retry and add route tests (#2824) - (20ccd4b)
- (request) Correct delete permission check and await movie save (#2742) - (6aeab38)
- (requests) Mark requests as completed when media is already available (#2462) - (d25d0ca)
- (settings) Persist new settings defaults to disk on startup (#2884) - (66130be)
- (settings) Serialize settings writes and prevent partial overwrites (#2696) - (6c52a2f)
- (settings) Remove beta info banner (#2615) - (fece753)
- (setup) Fix Plex login not proceeding after authentication (#2596) - (1dc5154)
- (watchlist-sync) Handle empty watchlists on PostgreSQL (#2718) - (865396f)
- Improve local login UX (#2849) - (aef2481)
- Await missing repository saves (#2760) - (1bb638e)
- Helm chart liveness and readiness probe (#2755) - (4434c45)
- Disambiguate tmdb ids by media type across lookups (#2577) - (0be1896)
- Anchor streaming service filter check icon to each provider card (#2634) - (94ccd47)
๐ Documentation
- (contributing-guide) Fix a typo (#2807) - (6f9b743)
- (docker) Replace backslashes by backticks in windows docker run commands [skip-ci] (#2557) - (40e02bb)
- Clarify Docker volume creation instructions on fresh Windows install (#2861) - (a133930)
- Move network-related docs to a dedicated tab (#2791) - (5bbdc52)
- Promote Nixpkgs as an official installation method (#2775) - (05ad60c)
- Fix PM2 start command syntax (#2713) - (5373da4)
๐ Refactor
- (imageproxy) Reduce noisy image cache logging (#2789) - (036d000)
- (notifications) Move event from author to title field in Discord Embed (#2119) - (a2d1e1b)
- (userlist) Responsive columns and buttons (#2083) - (dbe1fca)
- (watchlistsync) Log media request creation after success instead of before (#2790) - (685cb44)
- Rename Error components to ErrorPage (#2668) - (d5c5f1f)
๐งช Testing
- (user-list) Deflake sorting assertions (#2766) - (20c2ed8)
- Support server-side unit testing (#2485) - (8563362)
โ๏ธ Miscellaneous Tasks
- (actions) Update github actions (#2683) - (a2154f9)
- (actions) Update github actions (#2672) - (f047cab)
- (actions) Update github actions (#2632) - (e25c1a5)
- (create-tag) Correct quote style in commit message for tag preparation (#2593) - (687f18b)
- (docker) Release alias for major and minor version series (#2881) - (1cc73a8)
- (i18n) Update translations from Weblate - (e85216a)
- (i18n) Update translations from Weblate - (b1adc79)
- (i18n) Update translations from Weblate (#2419) - (4bd7c19)
- (pr-validation) Make checklist box detection case-insensitive (#2802) - (58514ec)
- (pr-validation) Update pull request permissions to write for validation jobs (#2800) - (986761f)
- (pr-validation) Disable package manager cache in nodejs setup (#2799) - (67e27d5)
- (release) Prepare v3.2.0 - (e0b2a1c)
- (release) Merge develop into main - (c5800a0)
- Bump minimum required node version to 22.19.0 (#2873) - (891265f)
- Add PR validation workflow and update contributing guidelines (#2777) - (772e83d)
- Upgrade to eslint v9 (#2574) - (36243a0)
- Ignore helm scope in git-cliff (#2638) - (4d2b658)
New Contributors โค๏ธ
- @aslafy-z made their first contribution
- @leereilly made their first contribution
- @jisef made their first contribution
- @dougrathbone made their first contribution
- @bobziroll made their first contribution
- @v3DJG6GL made their first contribution
- @Roboroads made their first contribution
- @costajohnt made their first contribution
- @tiagodefendi made their first contribution
- @Jyasapara made their first contribution
- @Sym-jay made their first contribution
- @bibi0019 made their first contribution
- @redondos made their first contribution
- @bogo22 made their first contribution
- @jabloink made their first contribution
- @YakGravity made their first contribution
- @dj0024javia made their first contribution
- @Jerra94 made their first contribution
- @its-wizza made their first contribution
- @ventiph made their first contribution
- @RinZ27 made their first contribution