3.0.0 - 2026-02-14
Migrating from Overseerr/Jellyseerr to Seerr
Read our release announcement to learn what Seerr means for Jellyseerr and Overseerr users.
Please follow our migration guide for detailed instructions on migrating from Overseerr or Jellyseerr.
π Features
- (api) Add completed count to request count API (#1824) - (c024799)
- (api) Add excludeKeywords parameter to discovery queries (#1908) - (cd479d0)
- (issue) Add issue description preview (#1881) - (13fe4c8)
- (notifications) Make embedded posters optional (#1364) - (479be0d)
- (requests) Add user's avatar next to Requested/Last Modified by icon (#1750) - (af7ceaf)
- (ui) Rebrand Jellyseerr logos to Seerr (#2406) - (55c2d54)
- (webhook) Add support for dynamic placeholders in webhook URL (#1491) - (17172e9)
- Overseerr to Jellyseerr migration (#2019) - (4e9c94c)
- Do not enforce TLD on email (#2075) - (b34ca15)
- Migrate to validator from email-validator (#2059) - (f7f00ce)
- Add anidb support to jellyfin scanner (#1533) - (b209e7f)
- Add tvdb indexer (#899) - (22b2824)
- Add IMDb rating votes count in tooltip (#1696) - (d3fd502)
- Dns caching manager (#1294) - (b4adfd2)
π Bug Fixes
- (UserProfile) Handle optional chaining for recentlyWatched data (#1852) - (5c1583c)
- (api) Respect is4k parameter for all media status changes (#1951) - (9a92d6a)
- (api) Correct Jellyfin users endpoint documentation (#2073) - (a790934)
- (api) Cleanup radarr bits in sonarr api (#2035) - (a8c7e35)
- (api) Add a migration script to rename *arr tags with spaces (#1946) - (f2bd0ab)
- (api) Remove spaces from tags in *arr (#1913) - (837629e)
- (api) Catch error when watchlist item doesn't exist anymore (#1907) - (e9f2f44)
- (availability-sync) Handle resolution check for single-server setups (#2334) - (0f7d296)
- (availability-sync) Fix 4K media availability detection (#2298) - (6275569)
- (availability-sync) Prevent incorrect season deletion when media server is unreachable (#2302) - (448a25e)
- (base-scanner) Derive media availability from actual season state⦠(#2412) - (15be3d7)
- (base-scanner) Fix PROCESSING status persisting for unmonitored seasons (#2311) - (bb2120c)
- (collection) Allow re-request of deleted items in a collection (#2339) - (6031fab)
- (deps) Upgrade typeorm to 0.3.28 to address security vulnerabilities (#2333) - (f8f90cb)
- (dnscaching) Check dnsCache before init & support forceipv4 with caching (#1910) - (9e73757)
- (dnscaching) Display stats for DNS caching (#1858) - (368ecf8)
- (docker) Pass
COMMIT_TAGto build stage for custom image builds (#2146) - (2fe7253) - (docker) Casing in dockerfile (#2141) - (6dcae34)
- (download-tracker) Reset both service caches when resetting downloads (#2065) - (0d6bfa1)
- (jellyfin-api) Use standard Authorization header (#2211) - (f4fe166)
- (jellyfin-scan) Reduce jellyfin API calls during recently added scan (#2205) - (15356df)
- (local-login) Remove automatic plex linking and reduce logout log verbosity (#2225) - (3ee6966)
- (login) Add missing keys to PlexLoginButton FormattedMessage children (#2291) - (d0f029b)
- (media) Handle 4K Radarr removal for multiple instances (#2037) - (7dfa30a)
- (media-request-subscriber) Prevent mediald nullification from cascade saves (#2356) - (1ed86c1)
- (mediarequest) Explicitly set mediaId when creating request (#2316) - (beba2ea)
- (migration) Add cleanup step for duplicate push subscriptions before enforcing unique constraint (#2269) - (0c95b5e)
- (network-settings) Convert DNS cache TTL values to numbers (#2299) - (c9037f7)
- (override-rules) Show correct genres for both *arr services (#2155) - (bde322d)
- (overriderules) Display the users of an override rule (#2410) - (3dea58e)
- (overriderules) Test service using the right endpoint (#2399) - (028c7c2)
- (plex-settings) Fix Plex preset selection not enabling save button (#2289) - (e0a8103)
- (prettier) Include sw.js file in .prettierignore (#1885) - (d5bf175)
- (proxy) Configure proxy agent connection limits and IPv4 support (#2303) - (dbd5935)
- (pushover) Prevent notifications when agent is disabled or unconfigured (#2304) - (ac7c298)
- (servarr) Add timeout to Radarr/Sonarr API requests to prevent infinite loading (#2375) - (faa2c0a)
- (servarr) Replace spaces in arr user tags with
-(#2231) - (f91a26b) - (settings) DNS cache UI consistency, validation, and conditional rendering (#2382) - (91261f6)
- (settings) Correct port saving of proxy settings (#1890) - (d82c6f6)
- (setup) Fix Plex login not proceeding after authentication (#2290) - (4ab9193)
- (sonarr) Re-monitor episodes when re-requesting deleted but monitored seasons (#2312) - (88b2e78)
- (subscriber) Prevent infinite loop when requesting existing media with scan disabled (#2043) - (d5ff0c1)
- (tvdb) Respect display language when fetching metadata (#1889) - (4878722)
- (tvdb) Return specials seasons (#1894) - (6245dae)
- (ui) Correct season pluralization in RequestItem (#2307) - (767dc52)
- (ui) Correct season pluralisation in RequestCard (#2305) - (3f35b8c)
- (ui) Remove duplicate download items in manage slide over (#1916) - (adbcf80)
- (ui) Ensure mobile media type filter is always visible on actor pages (#2128) - (5978587)
- (watchlist) Remove error log when a media from the watchlist is blacklisted (#2407) - (3eea8ee)
- (watchlist) Handle undefined Guid for Plex watchlist metadata (#1914) - (328517c)
- (webpush) Avoid querying push subs with empty user list (#2380) - (e3dc1c3)
- (webpush) Improve iOS push subscription endpoint cleanup (#2140) - (d0c9afc)
- Run the blocklist migration last (#2417) - (bcd8002)
- Add IF EXISTS to SQLite migration DROP INDEX statements (#2398) - (4f7819f)
- Preserve deleted status when processing movies (#2066) - (48631db)
- Disable automatic auth revalidation on auth pages (#2213) - (1f04eeb)
- Include
videocontent in the blacklisted tags processing job (#1736) - (2e6e9ad) - Delete endpoint on push notification disable (#2067) - (a975ab2)
- Update github repo refs for docker hub (#2053) - (a988f8e)
- Path in docs and compose for postgres 18 (#2049) - (de0e9b1)
- Remove console warning (#1836) - (c0fd81a)
π Refactor
- (api) Replace plex-api package with internal implementation (#2335) - (f627a8e)
- (jellyfin-scanner) Extend BaseScanner for jellyfin scanner (#2226) - (57d583e)
- Rename blacklist to blocklist (#2157) - (33a5d9a)
π Documentation
- (blog) Update authors description and add Discord link (#2405) - (e53c2a3)
- (blog) Add Seerr release blog post (#2401) - (095784b)
- (blog) Implement blog (#1935) - (82c5839)
- (buildfromsource) Touch up path inconsistencies (#2184) - (c5fc31c)
- (docker) Document available image tags and their usage (#2402) - (7cd3521)
- (gen-docs) Add in packagemanager (#1937) - (764f7b4)
- (notifications) Add more documentation for notifications (#1856) - (66d4cd6)
- Remove warning about Seerr not being released (#2411) - (018e04a)
- Add missing migration steps (#2376) - (a0a784b)
- Temporarily make it clear seerr is not released (#2273) - (193d4dc)
- Add webpush related troubleshooting steps (#2170) - (e3028c2)
- Fix chown command for windows users (#2192) - (48ef298)
- Update weblate links (#2168) - (b66b361)
- Add migration guide (#2069) - (f4af6ed)
- Update AI assistance notice link in pull request template (#2154) - (267450a)
- Update Kubernetes installation documentation for Seerr (#2126) - (08800c7)
- Revert docs to legacy docs temporarily (#2110) - (4980803)
- Migrate third-parties documentation to a dedicated folder (#2068) - (48a61d8)
- Add documentation for dockerhub (#2063) - (0dbbac0)
- HAProxy documentation warning format (#2054) - (c4236dc)
- Add haproxy configuration example (#2048) - (f3d8f0d)
- Added guide for image verification (#2051) - (618563c)
- Postgres 18 documentation (#2046) - (d95ccca)
- Fix docusaurus config for seerr (#1991) - (3ff1c06)
- Add comprehensive security policy (#1970) - (0217096)
- Add a warning about the new mount point in Postgres (#1968) - (42eec24)
- Rename kubernetes to state its an advanced step - (872fc45)
- Update link to AI assistance policy in PR template (#1936) - (b10c57c)
- Update weblate translations (#1934) - (efba847)
- Add ale183 as a contributor for code (#1920) - (0b1ad8c)
- Add sudo-kraken as a contributor for infra (#1919) - (fed772a)
- Add AI assistance notice (#1917) - (f045274)
β‘ Performance
π§ͺ Testing
βοΈ Miscellaneous Tasks
- (actions) Update github actions (#2346) - (127a91c)
- (actions) Update github/codeql-action action to v4 (#2056) - (669facc)
- (actions) Update github actions (#2022) - (a0893a5)
- (bug.yml) Fixed link to the code of conduct in the bug.yml in issue templates (#2090) - (e781cd5)
- (ci.yml,release.yml) Removes the need for 3rd party actions (#2018) - (4846c6a)
- (duplicate-issues) Migrate to pnpm from npm (#2388) - (dbee2fd)
- (helm) Prepare for release (#2189) - (d660a54)
- (helm) Switch from Deployment to StatefulSet (#1901) - (1518dc0)
- (helm) Bump jellyseerr to 2.7.3 (#1848) - (e8ec347)
- (i18n) Update translations from Weblate (#2395) - (673f3f2)
- (i18n) Rescue translations from #2384 (#2394) - (3cd6658)
- (i18n) Update translations from Weblate (#2378) - (2dac679)
- (issues) Add LLM-driven duplicate issue detection (#2381) - (0ffe3e8)
- (issuetemplate) Add a checkbox to search for existing issues (#2255) - (66b4e2c)
- (metadata-settings) Add autoDismiss to toast notifications (#2254) - (8bbe786)
- (release) Disable verify attestations for now (#2420) - (92504b7)
- (renovate) Fix trivy action tag (#1993) [skip-ci] - (393cb1a)
- (workflow) Add i18n label check to avoid duplicate comments (#2390) - (df54fb9)
- (workflow) Validate i18n locale files are synchronized (#2347) - (0d270ac)
- (workflows) Remove redundant Hugging Face model cache (#2397) - (186998b)
- Prepare 3.0.0 release - (8b0831c)
- Upgrade PWA version (#2418) - (e503de3)
- Prepare 3.0.0 release - (9822565)- Fix translate badge svg url (#2228) - (539d498)
- Improve PR template (#2175) - (c3b9ea6)- Remove CHANGELOG.md (#2169) - (fb5196b)
- Rebrand from Jellyseerr to Seerr across project (#2116) - (af083a3)
- Update Docker Hub image references in CI workflows (#2153) - (939000f)
- Bump cosign installer to v4.0.0 (#2127) - (91aa7d1)
- Remove packages section in README (#2124) - (41bcbfe)
- Combined workflows for ai and support (#2113) - (7d4b285)
- Fix AI-generated workflow trigger (#2101) - (efc9b00)
- Add a new workflow to close AI-generated PRs (#2098) - (e246215)
- Update to the code of conduct link in bug report (#2091) - (843d05c)
- Added helm cosign verification and renovate app workflow to bump chart versions (#2064) - (082ba3d)
- Update to release workflow (#2047) - (8688645)
- Use ghcr.io instead of dockerhub as default (#2045) - (9d174ba)
- Merge upstream (#2024) - (34fcc5d)
- Ci: update node hash to be multi arch sha index (#2023) - (f292d93)
- Updating digests re pr-1998 (#2020) - (c29ba2c)
- Update readme logo and add note to top (#2007) - (1213a1d)
- Update renovate bot logic to remove pin from compose files and charts (#1999) - (5f46ee8)
- Updated all workflows to be pinned to commit hashes ahead of renovate connection (#1989) - (2e6a19d)
- Add renovate bot modular configuration (#1983) - (0af453e)
- Rename Jellyseerr -> Seerr, part 2 (#1987) - (94a43ea)
- Rename Jellyseerr -> Seerr, part 1 (#1984) - (2e2d2a0)
- Updated cypress paths to stop noisy runs (#1986) - (e7aed5b)
- Migrate helm-chart to the new org (#1985) - (de10335)
- Fix seerr reference in workflow run (#1979) - (a3196fd)
- Updated the release workflow names and introduced the trivy vuln scan wf (#1978) - (adcbeb9)
- Remove unused files (#1966) - (166e240)
- Add link checks to the docs (#1971) - (32ae099)
- Updated the security policy discord links (#1976) - (500ced0)
- Use seerr-core in codeowners (#1973) - (a53e180)
- Remove snap package reference (#1965) - (9ca63ba)
- Migrate compose postgres to compose v2 (#1962) - (e8e9fc1)
- Cleanup repository reference (#1921) - (5c0a969)
- Add stale bot (#1960) - (afeb34f)
- Replace pnpm cache with custom cache (#1938) - (53dc802)
- Fix pnpm version in Dockerfile (#1933) - (420e320)
- Remove the with step from the pnpm setup steps (#1932) - (f427bc2)
- Update to pnpm v10 (#1349) - (eec3319)
- Updated support workflow concurrency and logic (#1926) - (e9db34e)
- Tidy up workflows and implement a consistent style (#1905) - (f46a763)
βοΈ Revert
- (media-request) Revert #2316 explicitly setting the mediaId when creating request (#2372) - (8fc68c3)
New Contributors β€οΈ
- @conlank made their first contribution
- @InterN0te made their first contribution
- @samohtxotom made their first contribution
- @RolliePollie18 made their first contribution
- @tirrorex made their first contribution
- @Disparate2761 made their first contribution
- @theGunner295 made their first contribution
- @sudo-kraken made their first contribution
- @TacoCake made their first contribution
- @ofgrenudo made their first contribution
- @tsposato made their first contribution
- @ale183 made their first contribution
- @sbogomolov made their first contribution
- @tarasverq made their first contribution