feat(settings): add blocklist region and language options#1802
Conversation
|
Should "All Languages" be hidden and applied by default? I can't imagine anyone wants a blocked movie allowed for any reason. |
The "All Languages" filter is already applied by default when the blacklist language setting is left empty. As for its visibility in the selector, I intentionally kept it to mirror the behavior of the other selectors (like Discover Language), which I believe improves UX through consistency. That said, I do understand the concern — it could potentially be misinterpreted as a requirement to explicitly select it in order to apply to all languages. I’m open to adjusting this if the maintainers prefer it hidden, but I think it’s worth discussing as part of a consistent UX pattern. |
|
Yea makes sense, I'll just ask a couple questions to try to get a better grasp of the project cause I'm interested in it 🙂 So when a request is sent for media, is it sent with a language so that it gets the correct information? If "All Languages" is selected, will it send the same tags for every language and potentially block movies that shouldn't be blocked? Does the blacklisted tag feature block movies with the request so they aren't even returned? If this is the case, would it be more accurate to filter out the blocked movies after they're received using their id's so that no matter the requesting language, the correct movies will be blocked? |
|
Great questions – happy to clarify how it works 🙂 The language and region settings (including "All Languages") are only used when running the blacklist processing job. They control what content is scanned and checked for blacklisted tags –not how requests are filtered in real time. Also, the blacklist logic itself is ID-based, not language-based. Once an item is blacklisted, it is excluded from discover/search regardless of language, region, or who’s requesting it. So to your last question – yes, blacklisted content is filtered out after it is received, using its ID. Your suggestion is actually how it is implemented today. This PR just adds more control for the admin to choose whether they want to blacklist, for example, only French-language content, or everything globally. |
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
db799b6 to
ad7a006
Compare
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
🚧 Files skipped from review as they are similar to previous changes (6)
📝 WalkthroughWalkthroughAdds blocklistRegion and blocklistLanguage settings across storage, UI, i18n, docs, and server helpers; the blocklist processing job now instantiates TMDB using those blocklist settings. Documentation for Blocklist Region/Language was added (duplicated within the docs file). No other runtime behavior changes. Changes
Sequence Diagram(s)sequenceDiagram
participant Admin as "Admin (UI)"
participant SettingsSvc as "Server Settings"
participant Job as "Blocklist Job"
participant TMDB as "TheMovieDb API"
participant DB as "Database"
Admin->>SettingsSvc: Save blocklistRegion & blocklistLanguage
SettingsSvc-->>DB: Persist settings
Admin->>Job: Trigger/process blocklist scan
Job->>SettingsSvc: request TMDB client (createTmdbWithBlocklistSettings)
SettingsSvc->>TMDB: Instantiate client with blocklistRegion & blocklistLanguage
Job->>TMDB: Query for items for blocklist scan
TMDB-->>Job: Return results
Job->>DB: Create/update blocklist entries
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/using-seerr/settings/general.md`:
- Around line 67-72: Update the wording to match UI/job terminology and
consistent capitalization: change "Process blocklisted Tags" to "Process
Blocklisted Tags", ensure "Discover" is capitalized in "Discover Region" and
"Discover Language" wherever referenced, and keep the headings "Blocklist
Region" and "Blocklist Language" as-is but confirm their capitalization matches
the UI labels; adjust the paragraph text to use these exact labels for
consistency with the UI/job names.
In `@src/components/Settings/SettingsMain/index.tsx`:
- Around line 454-491: The JSX block rendering the duplicate blocklist controls
should be removed: delete the second occurrence of the form-row that renders
RegionSelector (value={values.blocklistRegion}, name="blocklistRegion",
regionType="discover") and the subsequent form-row that renders LanguageSelector
(setFieldValue, serverValue={data?.blocklistLanguage},
value={values.blocklistLanguage}, fieldName="blocklistLanguage") so only the
original instances remain; ensure you remove any duplicated id/htmlFor
references (blocklistRegion/blocklistLanguage) and keep the single authoritative
control that uses setFieldValue and values.* to avoid duplicate inputs and ids.
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
docs/using-seerr/settings/general.mdserver/job/blocklistedTagsProcessor.tsserver/lib/settings/index.tsserver/routes/discover.tssrc/components/LanguageSelector/index.tsxsrc/components/RegionSelector/index.tsxsrc/components/Settings/SettingsMain/index.tsxsrc/i18n/locale/en.json
There was a problem hiding this comment.
♻️ Duplicate comments (1)
docs/using-seerr/settings/general.md (1)
67-72:⚠️ Potential issue | 🟡 MinorCapitalize “Discover” consistently in the new blocklist section.
“Discover” is still lowercase in this block (
general discover settings,their discover pages). Please capitalize it to match the product/UI naming used elsewhere in the doc.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/using-seerr/settings/general.md` around lines 67 - 72, Update the blocklist section to consistently capitalize the product/UI name "Discover": change "general discover settings" to "general Discover settings" and "their discover pages" to "their Discover pages" (these exact phrases appear in the block of text referencing blocklist settings and the Process Blocklisted Tags job).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@docs/using-seerr/settings/general.md`:
- Around line 67-72: Update the blocklist section to consistently capitalize the
product/UI name "Discover": change "general discover settings" to "general
Discover settings" and "their discover pages" to "their Discover pages" (these
exact phrases appear in the block of text referencing blocklist settings and the
Process Blocklisted Tags job).
5f2f3f3 to
8dda4a6
Compare
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
This PR introduces new settings for blacklisting content based on region and language, allowing users to filter out specific content independently from the general discover settings.
8dda4a6 to
e0233e6
Compare
There was a problem hiding this comment.
Pull request overview
Adds dedicated “Blocklist Region” and “Blocklist Language” settings so the blocklisted-tags scan can run with region/language filters that are independent from the user-facing Discover filters (addressing #1801).
Changes:
- Added new main settings fields (
blocklistRegion,blocklistLanguage) and exposed them in the Settings UI. - Updated the blocklisted tags processor job to instantiate TMDB with the new blocklist-specific region/language settings.
- Tweaked RegionSelector dropdown z-index behavior and documented the new settings.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/i18n/locale/en.json | Adds English strings for the new blocklist region/language settings. |
| src/components/Settings/SettingsMain/index.tsx | Adds UI fields and persists blocklistRegion/blocklistLanguage via /settings/main. |
| src/components/RegionSelector/index.tsx | Adjusts dropdown stacking (z-index) to prevent overlap issues. |
| src/components/LanguageSelector/index.tsx | Makes the selector reusable by allowing a configurable target field name. |
| server/routes/discover.ts | Adds a TMDB factory that uses blocklist-specific settings. |
| server/lib/settings/index.ts | Extends MainSettings and defaults to include blocklist region/language fields. |
| server/job/blocklistedTagsProcessor.ts | Uses the new TMDB factory for blocklist scans. |
| docs/using-seerr/settings/general.md | Documents the new Blocklist Region/Language settings. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <div className="form-input-field relative z-20"> | ||
| <LanguageSelector | ||
| setFieldValue={setFieldValue} | ||
| serverValue={data?.blocklistLanguage} |
There was a problem hiding this comment.
serverValue is passed to LanguageSelector here, but LanguageSelector only uses serverValue when isUserSettings is true. Since this instance is not a user-settings selector, the prop is currently unused and can be removed to avoid confusion (or set isUserSettings if the intent was to show the “Default (…)” option).
| serverValue={data?.blocklistLanguage} |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [seerr/seerr](https://github.com/seerr-team/seerr) | minor | `v3.1.1` → `v3.2.0` | --- ### Release Notes <details> <summary>seerr-team/seerr (seerr/seerr)</summary> ### [`v3.2.0`](https://github.com/seerr-team/seerr/releases/tag/v3.2.0) [Compare Source](seerr-team/seerr@v3.1.1...v3.2.0) ##### [3.2.0](https://github.com/seerr-team/seerr/compare/v3.1.1..v3.2.0) - 2026-04-15 ##### 🚀 Features - *(blocklist)* Add support for collections ([#​1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c)) - *(discover)* Handle errors gracefully when content is available ([#​1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970)) - *(i18n)* Add Estonian language support ([#​2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff)) - *(i18n)* Add Luxembourgish language support ([#​2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95)) - *(i18n)* Add Vietnamese language support ([#​2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea)) - *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#​2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745)) - *(notifications)* Add ntfy markdown formatting ([#​2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13)) - *(notifications)* Webhook custom headers ([#​2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72)) - *(notifications)* Add priority setting for ntfy agent ([#​2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377)) - *(person)* Add tmdb- and imdb link on person detail page ([#​2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c)) - *(quota)* Added support for unlimited quota days ([#​2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7)) - *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#​2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e)) - *(settings)* Add blocklist region and language options ([#​1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb)) - *(settings)* Add help tooltips for services setup ([#​2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da)) - *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#​2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91)) - *(trending)* Add filter options ([#​2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1)) - *(ui)* Add loading state to request approve/decline buttons ([#​2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4)) - *(userlist)* Add sortable columns to User List ([#​1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a)) - *(webhook)* Add imdbid to webhook notification ([#​2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d)) - Sort quality profiles ASC in request and service configuration ([#​1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c)) - Add trailing whitespace warning on login username field ([#​2040](seerr-team/seerr#2040)) ([#​2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9)) ##### 🐛 Bug Fixes - *(auth)* Resolve Plex OAuth client ID mismatch ([#​2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109)) - *(email)* Correctly classify final MIME header in PGP email encryption ([#​2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58)) - *(email)* Preserve newlines in PGP key textarea fields ([#​2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917)) - *(emby)* Use static version in auth header for emby only ([#​2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041)) - *(entities)* Replace MySQL-only onUpdate with [@​UpdateDateColumn](https://github.com/UpdateDateColumn) ([#​2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872)) - *(generate-password)* Await setPassword to fix race condition ([#​2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c)) - *(issues)* Update issue timestamp when adding comments ([#​2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046)) - *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#​2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0)) - *(login)* Resolve stuck transition when switching login forms ([#​2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47)) - *(media)* Exclude null mediaAddedAt entries ([#​2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1)) - *(migration)* Repair postgres blocklist id sequence ([#​2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c)) - *(movie,tv)* Respect display language for trailers ([#​2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d)) - *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#​2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4)) - *(override-rules)* Remove users from `useEffect` dependency array ([#​2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997)) - *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#​2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25)) - *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#​2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948)) - *(proxy)* Add path validation guardrail to imageproxy ([#​2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081)) - *(region-selector)* Prevent empty region reporting during sync ([#​2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43)) - *(request)* Record modifiedBy on retry and add route tests ([#​2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b)) - *(request)* Correct delete permission check and await movie save ([#​2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38)) - *(requests)* Mark requests as completed when media is already available ([#​2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca)) - *(settings)* Persist new settings defaults to disk on startup ([#​2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be)) - *(settings)* Serialize settings writes and prevent partial overwrites ([#​2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f)) - *(settings)* Remove beta info banner ([#​2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753)) - *(setup)* Fix Plex login not proceeding after authentication ([#​2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154)) - *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#​2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f)) - Improve local login UX ([#​2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481)) - Await missing repository saves ([#​2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e)) - Helm chart liveness and readiness probe ([#​2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45)) - Disambiguate tmdb ids by media type across lookups ([#​2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896)) - Anchor streaming service filter check icon to each provider card ([#​2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47)) ##### 📖 Documentation - *(contributing-guide)* Fix a typo ([#​2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743)) - *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#​2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb)) - Clarify Docker volume creation instructions on fresh Windows install ([#​2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930)) - Move network-related docs to a dedicated tab ([#​2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52)) - Promote Nixpkgs as an official installation method ([#​2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c)) - Fix PM2 start command syntax ([#​2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4)) ##### 🚜 Refactor - *(imageproxy)* Reduce noisy image cache logging ([#​2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000)) - *(notifications)* Move event from author to title field in Discord Embed ([#​2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b)) - *(userlist)* Responsive columns and buttons ([#​2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca)) - *(watchlistsync)* Log media request creation after success instead of before ([#​2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44)) - Rename Error components to ErrorPage ([#​2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f)) ##### 🧪 Testing - *(user-list)* Deflake sorting assertions ([#​2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8)) - Support server-side unit testing ([#​2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9)) - *(actions)* Update github actions ([#​2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab)) - *(actions)* Update github actions ([#​2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5)) - *(create-tag)* Correct quote style in commit message for tag preparation ([#​2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b)) - *(docker)* Release alias for major and minor version series ([#​2881](seerr-team/seerr#2881)) - ([1cc73a8](seerr-team/seerr@1cc73a8)) - *(i18n)* Update translations from Weblate - ([e85216a](seerr-team/seerr@e85216a)) - *(i18n)* Update translations from Weblate - ([b1adc79](seerr-team/seerr@b1adc79)) - *(i18n)* Update translations from Weblate ([#​2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19)) - *(pr-validation)* Make checklist box detection case-insensitive ([#​2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec)) - *(pr-validation)* Update pull request permissions to write for validation jobs ([#​2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f)) - *(pr-validation)* Disable package manager cache in nodejs setup ([#​2799](seerr-team/seerr#2799)) - ([67e27d5](seerr-team/seerr@67e27d5)) - *(release)* Prepare v3.2.0 - ([e0b2a1c](seerr-team/seerr@e0b2a1c)) - *(release)* Merge develop into main - ([c5800a0](seerr-team/seerr@c5800a0)) - Bump minimum required node version to 22.19.0 ([#​2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f)) - Add PR validation workflow and update contributing guidelines ([#​2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d)) - Upgrade to eslint v9 ([#​2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0)) - Ignore helm scope in git-cliff ([#​2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658)) ##### New Contributors ❤️ - [@​aslafy-z](https://github.com/aslafy-z) made their first contribution - [@​leereilly](https://github.com/leereilly) made their first contribution - [@​jisef](https://github.com/jisef) made their first contribution - [@​dougrathbone](https://github.com/dougrathbone) made their first contribution - [@​bobziroll](https://github.com/bobziroll) made their first contribution - [@​v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution - [@​Roboroads](https://github.com/Roboroads) made their first contribution - [@​costajohnt](https://github.com/costajohnt) made their first contribution - [@​tiagodefendi](https://github.com/tiagodefendi) made their first contribution - [@​Jyasapara](https://github.com/Jyasapara) made their first contribution - [@​Sym-jay](https://github.com/Sym-jay) made their first contribution - [@​bibi0019](https://github.com/bibi0019) made their first contribution - [@​redondos](https://github.com/redondos) made their first contribution - [@​bogo22](https://github.com/bogo22) made their first contribution - [@​jabloink](https://github.com/jabloink) made their first contribution - [@​YakGravity](https://github.com/YakGravity) made their first contribution - [@​dj0024javia](https://github.com/dj0024javia) made their first contribution - [@​Jerra94](https://github.com/Jerra94) made their first contribution - [@​its-wizza](https://github.com/its-wizza) made their first contribution - [@​ventiph](https://github.com/ventiph) made their first contribution - [@​RinZ27](https://github.com/RinZ27) made their first contribution<!-- generated by git-cliff --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/180 Co-authored-by: bot-owl <bot@erwanleboucher.dev> Co-committed-by: bot-owl <bot@erwanleboucher.dev>
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [seerr/seerr](https://github.com/seerr-team/seerr) | minor | `v3.1.1` → `v3.2.0` | --- ### Release Notes <details> <summary>seerr-team/seerr (seerr/seerr)</summary> ### [`v3.2.0`](https://github.com/seerr-team/seerr/releases/tag/v3.2.0) [Compare Source](seerr-team/seerr@v3.1.1...v3.2.0) ##### [3.2.0](https://github.com/seerr-team/seerr/compare/v3.1.1..v3.2.0) - 2026-04-15 ##### 🚀 Features - *(blocklist)* Add support for collections ([#​1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c)) - *(discover)* Handle errors gracefully when content is available ([#​1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970)) - *(i18n)* Add Estonian language support ([#​2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff)) - *(i18n)* Add Luxembourgish language support ([#​2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95)) - *(i18n)* Add Vietnamese language support ([#​2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea)) - *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#​2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745)) - *(notifications)* Add ntfy markdown formatting ([#​2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13)) - *(notifications)* Webhook custom headers ([#​2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72)) - *(notifications)* Add priority setting for ntfy agent ([#​2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377)) - *(person)* Add tmdb- and imdb link on person detail page ([#​2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c)) - *(quota)* Added support for unlimited quota days ([#​2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7)) - *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#​2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e)) - *(settings)* Add blocklist region and language options ([#​1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb)) - *(settings)* Add help tooltips for services setup ([#​2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da)) - *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#​2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91)) - *(trending)* Add filter options ([#​2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1)) - *(ui)* Add loading state to request approve/decline buttons ([#​2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4)) - *(userlist)* Add sortable columns to User List ([#​1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a)) - *(webhook)* Add imdbid to webhook notification ([#​2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d)) - Sort quality profiles ASC in request and service configuration ([#​1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c)) - Add trailing whitespace warning on login username field ([#​2040](seerr-team/seerr#2040)) ([#​2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9)) ##### 🐛 Bug Fixes - *(auth)* Resolve Plex OAuth client ID mismatch ([#​2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109)) - *(email)* Correctly classify final MIME header in PGP email encryption ([#​2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58)) - *(email)* Preserve newlines in PGP key textarea fields ([#​2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917)) - *(emby)* Use static version in auth header for emby only ([#​2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041)) - *(entities)* Replace MySQL-only onUpdate with [@​UpdateDateColumn](https://github.com/UpdateDateColumn) ([#​2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872)) - *(generate-password)* Await setPassword to fix race condition ([#​2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c)) - *(issues)* Update issue timestamp when adding comments ([#​2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046)) - *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#​2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0)) - *(login)* Resolve stuck transition when switching login forms ([#​2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47)) - *(media)* Exclude null mediaAddedAt entries ([#​2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1)) - *(migration)* Repair postgres blocklist id sequence ([#​2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c)) - *(movie,tv)* Respect display language for trailers ([#​2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d)) - *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#​2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4)) - *(override-rules)* Remove users from `useEffect` dependency array ([#​2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997)) - *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#​2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25)) - *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#​2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948)) - *(proxy)* Add path validation guardrail to imageproxy ([#​2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081)) - *(region-selector)* Prevent empty region reporting during sync ([#​2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43)) - *(request)* Record modifiedBy on retry and add route tests ([#​2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b)) - *(request)* Correct delete permission check and await movie save ([#​2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38)) - *(requests)* Mark requests as completed when media is already available ([#​2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca)) - *(settings)* Persist new settings defaults to disk on startup ([#​2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be)) - *(settings)* Serialize settings writes and prevent partial overwrites ([#​2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f)) - *(settings)* Remove beta info banner ([#​2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753)) - *(setup)* Fix Plex login not proceeding after authentication ([#​2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154)) - *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#​2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f)) - Improve local login UX ([#​2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481)) - Await missing repository saves ([#​2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e)) - Helm chart liveness and readiness probe ([#​2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45)) - Disambiguate tmdb ids by media type across lookups ([#​2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896)) - Anchor streaming service filter check icon to each provider card ([#​2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47)) ##### 📖 Documentation - *(contributing-guide)* Fix a typo ([#​2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743)) - *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#​2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb)) - Clarify Docker volume creation instructions on fresh Windows install ([#​2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930)) - Move network-related docs to a dedicated tab ([#​2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52)) - Promote Nixpkgs as an official installation method ([#​2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c)) - Fix PM2 start command syntax ([#​2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4)) ##### 🚜 Refactor - *(imageproxy)* Reduce noisy image cache logging ([#​2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000)) - *(notifications)* Move event from author to title field in Discord Embed ([#​2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b)) - *(userlist)* Responsive columns and buttons ([#​2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca)) - *(watchlistsync)* Log media request creation after success instead of before ([#​2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44)) - Rename Error components to ErrorPage ([#​2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f)) ##### 🧪 Testing - *(user-list)* Deflake sorting assertions ([#​2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8)) - Support server-side unit testing ([#​2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9)) - *(actions)* Update github actions ([#​2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab)) - *(actions)* Update github actions ([#​2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5)) - *(create-tag)* Correct quote style in commit message for tag preparation ([#​2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b)) - *(docker)* Release alias for major and minor version series ([#​2881](seerr-team/seerr#2881)) - ([1cc73a8](seerr-team/seerr@1cc73a8)) - *(i18n)* Update translations from Weblate - ([e85216a](seerr-team/seerr@e85216a)) - *(i18n)* Update translations from Weblate - ([b1adc79](seerr-team/seerr@b1adc79)) - *(i18n)* Update translations from Weblate ([#​2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19)) - *(pr-validation)* Make checklist box detection case-insensitive ([#​2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec)) - *(pr-validation)* Update pull request permissions to write for validation jobs ([#​2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f)) - *(pr-validation)* Disable package manager cache in nodejs setup ([#​2799](seerr-team/seerr#2799)) - ([67e27d5](seerr-team/seerr@67e27d5)) - *(release)* Prepare v3.2.0 - ([e0b2a1c](seerr-team/seerr@e0b2a1c)) - *(release)* Merge develop into main - ([c5800a0](seerr-team/seerr@c5800a0)) - Bump minimum required node version to 22.19.0 ([#​2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f)) - Add PR validation workflow and update contributing guidelines ([#​2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d)) - Upgrade to eslint v9 ([#​2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0)) - Ignore helm scope in git-cliff ([#​2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658)) ##### New Contributors ❤️ - [@​aslafy-z](https://github.com/aslafy-z) made their first contribution - [@​leereilly](https://github.com/leereilly) made their first contribution - [@​jisef](https://github.com/jisef) made their first contribution - [@​dougrathbone](https://github.com/dougrathbone) made their first contribution - [@​bobziroll](https://github.com/bobziroll) made their first contribution - [@​v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution - [@​Roboroads](https://github.com/Roboroads) made their first contribution - [@​costajohnt](https://github.com/costajohnt) made their first contribution - [@​tiagodefendi](https://github.com/tiagodefendi) made their first contribution - [@​Jyasapara](https://github.com/Jyasapara) made their first contribution - [@​Sym-jay](https://github.com/Sym-jay) made their first contribution - [@​bibi0019](https://github.com/bibi0019) made their first contribution - [@​redondos](https://github.com/redondos) made their first contribution - [@​bogo22](https://github.com/bogo22) made their first contribution - [@​jabloink](https://github.com/jabloink) made their first contribution - [@​YakGravity](https://github.com/YakGravity) made their first contribution - [@​dj0024javia](https://github.com/dj0024javia) made their first contribution - [@​Jerra94](https://github.com/Jerra94) made their first contribution - [@​its-wizza](https://github.com/its-wizza) made their first contribution - [@​ventiph](https://github.com/ventiph) made their first contribution - [@​RinZ27](https://github.com/RinZ27) made their first contribution<!-- generated by git-cliff --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/187 Co-authored-by: bot-owl <bot@erwanleboucher.dev> Co-committed-by: bot-owl <bot@erwanleboucher.dev>
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [seerr/seerr](https://github.com/seerr-team/seerr) | minor | `v3.1.1` → `v3.2.0` | --- ### Release Notes <details> <summary>seerr-team/seerr (seerr/seerr)</summary> ### [`v3.2.0`](https://github.com/seerr-team/seerr/releases/tag/v3.2.0) [Compare Source](seerr-team/seerr@v3.1.1...v3.2.0) ##### [3.2.0](https://github.com/seerr-team/seerr/compare/v3.1.1..v3.2.0) - 2026-04-15 ##### 🚀 Features - *(blocklist)* Add support for collections ([#​1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c)) - *(discover)* Handle errors gracefully when content is available ([#​1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970)) - *(i18n)* Add Estonian language support ([#​2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff)) - *(i18n)* Add Luxembourgish language support ([#​2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95)) - *(i18n)* Add Vietnamese language support ([#​2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea)) - *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#​2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745)) - *(notifications)* Add ntfy markdown formatting ([#​2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13)) - *(notifications)* Webhook custom headers ([#​2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72)) - *(notifications)* Add priority setting for ntfy agent ([#​2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377)) - *(person)* Add tmdb- and imdb link on person detail page ([#​2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c)) - *(quota)* Added support for unlimited quota days ([#​2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7)) - *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#​2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e)) - *(settings)* Add blocklist region and language options ([#​1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb)) - *(settings)* Add help tooltips for services setup ([#​2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da)) - *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#​2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91)) - *(trending)* Add filter options ([#​2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1)) - *(ui)* Add loading state to request approve/decline buttons ([#​2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4)) - *(userlist)* Add sortable columns to User List ([#​1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a)) - *(webhook)* Add imdbid to webhook notification ([#​2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d)) - Sort quality profiles ASC in request and service configuration ([#​1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c)) - Add trailing whitespace warning on login username field ([#​2040](seerr-team/seerr#2040)) ([#​2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9)) ##### 🐛 Bug Fixes - *(auth)* Resolve Plex OAuth client ID mismatch ([#​2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109)) - *(email)* Correctly classify final MIME header in PGP email encryption ([#​2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58)) - *(email)* Preserve newlines in PGP key textarea fields ([#​2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917)) - *(emby)* Use static version in auth header for emby only ([#​2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041)) - *(entities)* Replace MySQL-only onUpdate with [@​UpdateDateColumn](https://github.com/UpdateDateColumn) ([#​2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872)) - *(generate-password)* Await setPassword to fix race condition ([#​2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c)) - *(issues)* Update issue timestamp when adding comments ([#​2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046)) - *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#​2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0)) - *(login)* Resolve stuck transition when switching login forms ([#​2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47)) - *(media)* Exclude null mediaAddedAt entries ([#​2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1)) - *(migration)* Repair postgres blocklist id sequence ([#​2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c)) - *(movie,tv)* Respect display language for trailers ([#​2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d)) - *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#​2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4)) - *(override-rules)* Remove users from `useEffect` dependency array ([#​2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997)) - *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#​2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25)) - *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#​2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948)) - *(proxy)* Add path validation guardrail to imageproxy ([#​2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081)) - *(region-selector)* Prevent empty region reporting during sync ([#​2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43)) - *(request)* Record modifiedBy on retry and add route tests ([#​2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b)) - *(request)* Correct delete permission check and await movie save ([#​2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38)) - *(requests)* Mark requests as completed when media is already available ([#​2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca)) - *(settings)* Persist new settings defaults to disk on startup ([#​2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be)) - *(settings)* Serialize settings writes and prevent partial overwrites ([#​2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f)) - *(settings)* Remove beta info banner ([#​2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753)) - *(setup)* Fix Plex login not proceeding after authentication ([#​2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154)) - *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#​2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f)) - Improve local login UX ([#​2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481)) - Await missing repository saves ([#​2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e)) - Helm chart liveness and readiness probe ([#​2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45)) - Disambiguate tmdb ids by media type across lookups ([#​2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896)) - Anchor streaming service filter check icon to each provider card ([#​2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47)) ##### 📖 Documentation - *(contributing-guide)* Fix a typo ([#​2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743)) - *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#​2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb)) - Clarify Docker volume creation instructions on fresh Windows install ([#​2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930)) - Move network-related docs to a dedicated tab ([#​2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52)) - Promote Nixpkgs as an official installation method ([#​2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c)) - Fix PM2 start command syntax ([#​2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4)) ##### 🚜 Refactor - *(imageproxy)* Reduce noisy image cache logging ([#​2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000)) - *(notifications)* Move event from author to title field in Discord Embed ([#​2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b)) - *(userlist)* Responsive columns and buttons ([#​2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca)) - *(watchlistsync)* Log media request creation after success instead of before ([#​2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44)) - Rename Error components to ErrorPage ([#​2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f)) ##### 🧪 Testing - *(user-list)* Deflake sorting assertions ([#​2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8)) - Support server-side unit testing ([#​2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9)) - *(actions)* Update github actions ([#​2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab)) - *(actions)* Update github actions ([#​2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5)) - *(create-tag)* Correct quote style in commit message for tag preparation ([#​2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b)) - *(docker)* Release alias for major and minor version series ([#​2881](seerr-team/seerr#2881)) - ([1cc73a8](seerr-team/seerr@1cc73a8)) - *(i18n)* Update translations from Weblate - ([e85216a](seerr-team/seerr@e85216a)) - *(i18n)* Update translations from Weblate - ([b1adc79](seerr-team/seerr@b1adc79)) - *(i18n)* Update translations from Weblate ([#​2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19)) - *(pr-validation)* Make checklist box detection case-insensitive ([#​2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec)) - *(pr-validation)* Update pull request permissions to write for validation jobs ([#​2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f)) - *(pr-validation)* Disable package manager cache in nodejs setup ([#​2799](seerr-team/seerr#2799)) - ([67e27d5](seerr-team/seerr@67e27d5)) - *(release)* Prepare v3.2.0 - ([e0b2a1c](seerr-team/seerr@e0b2a1c)) - *(release)* Merge develop into main - ([c5800a0](seerr-team/seerr@c5800a0)) - Bump minimum required node version to 22.19.0 ([#​2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f)) - Add PR validation workflow and update contributing guidelines ([#​2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d)) - Upgrade to eslint v9 ([#​2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0)) - Ignore helm scope in git-cliff ([#​2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658)) ##### New Contributors ❤️ - [@​aslafy-z](https://github.com/aslafy-z) made their first contribution - [@​leereilly](https://github.com/leereilly) made their first contribution - [@​jisef](https://github.com/jisef) made their first contribution - [@​dougrathbone](https://github.com/dougrathbone) made their first contribution - [@​bobziroll](https://github.com/bobziroll) made their first contribution - [@​v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution - [@​Roboroads](https://github.com/Roboroads) made their first contribution - [@​costajohnt](https://github.com/costajohnt) made their first contribution - [@​tiagodefendi](https://github.com/tiagodefendi) made their first contribution - [@​Jyasapara](https://github.com/Jyasapara) made their first contribution - [@​Sym-jay](https://github.com/Sym-jay) made their first contribution - [@​bibi0019](https://github.com/bibi0019) made their first contribution - [@​redondos](https://github.com/redondos) made their first contribution - [@​bogo22](https://github.com/bogo22) made their first contribution - [@​jabloink](https://github.com/jabloink) made their first contribution - [@​YakGravity](https://github.com/YakGravity) made their first contribution - [@​dj0024javia](https://github.com/dj0024javia) made their first contribution - [@​Jerra94](https://github.com/Jerra94) made their first contribution - [@​its-wizza](https://github.com/its-wizza) made their first contribution - [@​ventiph](https://github.com/ventiph) made their first contribution - [@​RinZ27](https://github.com/RinZ27) made their first contribution<!-- generated by git-cliff --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/187 Co-authored-by: bot-owl <bot@erwanleboucher.dev> Co-committed-by: bot-owl <bot@erwanleboucher.dev>
Description
This PR introduces new settings for blocklisting content based on region and language, allowing users to filter out specific content independently from the general discover settings.
Screenshot (if UI-related)
To-Dos
pnpm buildpnpm i18n:extractIssues Fixed or Closed
Summary by CodeRabbit