Skip to content

fix(email): preserve newlines in PGP key textarea fields#2617

Merged
fallenbagel merged 1 commit intodevelopfrom
fallenbagel/fix/pgp-key-newline-stripping
Mar 2, 2026
Merged

fix(email): preserve newlines in PGP key textarea fields#2617
fallenbagel merged 1 commit intodevelopfrom
fallenbagel/fix/pgp-key-newline-stripping

Conversation

@fallenbagel
Copy link
Copy Markdown
Collaborator

@fallenbagel fallenbagel commented Mar 2, 2026

Description

The PGP Private Key field in email notification settings was silently stripping newline characters, causing OpenPGP encryption to fail with a "Misformed armored text" error at send time.

When the sensitive input component was in its default hidden state, textarea fields were being rendered as single-line password inputs. The browser collapses all whitespace in password inputs, so the PGP armor block lost its required line structure. Formik then synced the destroyed value back into form state, making the damage permanent even after toggling visibility.

The sensitive input component now keeps textarea fields rendered as actual textarea elements regardless of visibility state, using CSS-based masking instead of switching the element type. The PGP key validation regex has also been updated to correctly match across newlines.

How Has This Been Tested?

Screenshots / Logs (if applicable)

Checklist:

  • I have read and followed the contribution guidelines.
  • Disclosed any use of AI (see our policy)
  • I have updated the documentation accordingly.
  • All new and existing tests passed.
  • Successful build pnpm build
  • Translation keys pnpm i18n:extract
  • Database migration (if required)

Summary by CodeRabbit

Release Notes

  • Bug Fixes
    • Fixed sensitive textarea field rendering and styling when content is hidden.
    • Enabled PGP private key validation to correctly accept multi-line key blocks for improved compatibility.

Prevent SensitiveInput from rendering textarea fields as single-line password inputs, which stripped
newlines from PGP keys

fix #2598
@fallenbagel fallenbagel requested a review from Copilot March 2, 2026 00:57
@fallenbagel fallenbagel requested a review from a team as a code owner March 2, 2026 00:57
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 2, 2026

📝 Walkthrough

Walkthrough

This PR addresses OpenPGP key validation and display issues by updating the SensitiveInput component to always render textareas for textarea-type inputs and modifying the PGP private key validation regex to support multi-line input by adding the dotall flag.

Changes

Cohort / File(s) Summary
Sensitive Input Textarea Handling
src/components/Common/SensitiveInput/index.tsx
Modified textarea rendering logic to always render textarea elements regardless of hidden state, and updated styling to apply WebkitTextSecurity when hidden. Adjusted type resolution to use undefined for textarea types while maintaining password/text logic for other inputs.
PGP Key Validation
src/components/Settings/Notifications/NotificationsEmail.tsx
Updated PGP private key validation regex to use the dotall flag (/s), enabling pattern matching across multiple lines and allowing multi-line armored PGP blocks to pass validation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A rabbit hops through keys so rare,
Preserving newlines with utmost care,
Where textareas bloom and regex gleams,
PGP blocks flow like streaming dreams,
No more stripped lines, just secrets bright—
Armored text, now handled right!

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main fix: preserving newlines in PGP key textarea fields, which is the primary change addressing the core issue.
Linked Issues check ✅ Passed The code changes directly address all requirements from issue #2598: textarea fields now preserve newlines, CSS-based masking replaces element type switching, and regex validation supports multi-line PGP keys.
Out of Scope Changes check ✅ Passed All changes are directly scoped to fixing the PGP key newline stripping issue; no unrelated modifications detected in the sensitive input component or email notification validation logic.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/components/Common/SensitiveInput/index.tsx`:
- Around line 43-47: The current style logic in SensitiveInput (props.type ===
'textarea' && isHidden) relies on WebkitTextSecurity which isn’t supported in
Firefox <114; update the component to handle legacy Firefox by adding a fallback
when isHidden is true: render or position an overlay mask DIV over the textarea
(or alternatively render text-masked content using a monospace replacement like
repeated bullets matching length) and keep the existing WebkitTextSecurity for
modern browsers; ensure the logic is implemented around the SensitiveInput
component props.type / isHidden handling so the textarea stays visually masked
in older Firefox, and add a short comment or note in the component documenting
the browser limitation and chosen fallback approach.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c23117e and e281a75.

📒 Files selected for processing (2)
  • src/components/Common/SensitiveInput/index.tsx
  • src/components/Settings/Notifications/NotificationsEmail.tsx

Comment thread src/components/Common/SensitiveInput/index.tsx
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes OpenPGP key handling in the email notification UI so multiline armored PGP blocks aren’t corrupted by the sensitive input’s hidden-state rendering behavior, preventing encryption failures like “Misformed armored text”.

Changes:

  • Update PGP private key Yup validation regex to match across newlines (/s dotAll flag).
  • Change SensitiveInput so type="textarea" stays a real <textarea> even when hidden, using CSS-based masking instead of switching to a password <input>.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/components/Settings/Notifications/NotificationsEmail.tsx Allows private key validation to match multiline armored blocks.
src/components/Common/SensitiveInput/index.tsx Prevents newline loss by keeping textarea rendering stable and masking via styles.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/components/Common/SensitiveInput/index.tsx
@fallenbagel fallenbagel merged commit 835e917 into develop Mar 2, 2026
17 checks passed
@fallenbagel fallenbagel deleted the fallenbagel/fix/pgp-key-newline-stripping branch March 2, 2026 11:33
gwlsn pushed a commit to gwlsn/seerr that referenced this pull request Mar 21, 2026
ecsousa pushed a commit to ecsousa/seerr that referenced this pull request Apr 5, 2026
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Apr 16, 2026
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 ([#&#8203;1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c))
- *(discover)* Handle errors gracefully when content is available ([#&#8203;1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970))
- *(i18n)* Add Estonian language support ([#&#8203;2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff))
- *(i18n)* Add Luxembourgish language support ([#&#8203;2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95))
- *(i18n)* Add Vietnamese language support ([#&#8203;2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea))
- *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#&#8203;2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745))
- *(notifications)* Add ntfy markdown formatting ([#&#8203;2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13))
- *(notifications)* Webhook custom headers ([#&#8203;2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72))
- *(notifications)* Add priority setting for ntfy agent ([#&#8203;2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377))
- *(person)* Add tmdb- and imdb link on person detail page ([#&#8203;2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c))
- *(quota)* Added support for unlimited quota days ([#&#8203;2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7))
- *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#&#8203;2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e))
- *(settings)* Add blocklist region and language options ([#&#8203;1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb))
- *(settings)* Add help tooltips for services setup ([#&#8203;2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da))
- *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#&#8203;2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91))
- *(trending)* Add filter options ([#&#8203;2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1))
- *(ui)* Add loading state to request approve/decline buttons ([#&#8203;2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4))
- *(userlist)* Add sortable columns to User List ([#&#8203;1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a))
- *(webhook)* Add imdbid to webhook notification ([#&#8203;2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d))
- Sort quality profiles ASC in request and service configuration ([#&#8203;1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c))
- Add trailing whitespace warning on login username field ([#&#8203;2040](seerr-team/seerr#2040)) ([#&#8203;2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9))

##### 🐛 Bug Fixes

- *(auth)* Resolve Plex OAuth client ID mismatch ([#&#8203;2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109))
- *(email)* Correctly classify final MIME header in PGP email encryption ([#&#8203;2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58))
- *(email)* Preserve newlines in PGP key textarea fields ([#&#8203;2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917))
- *(emby)* Use static version in auth header for emby only ([#&#8203;2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041))
- *(entities)* Replace MySQL-only onUpdate with [@&#8203;UpdateDateColumn](https://github.com/UpdateDateColumn) ([#&#8203;2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872))
- *(generate-password)* Await setPassword to fix race condition ([#&#8203;2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c))
- *(issues)* Update issue timestamp when adding comments ([#&#8203;2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046))
- *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#&#8203;2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0))
- *(login)* Resolve stuck transition when switching login forms ([#&#8203;2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47))
- *(media)* Exclude null mediaAddedAt entries ([#&#8203;2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1))
- *(migration)* Repair postgres blocklist id sequence ([#&#8203;2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c))
- *(movie,tv)* Respect display language for trailers ([#&#8203;2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d))
- *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#&#8203;2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4))
- *(override-rules)* Remove users from `useEffect` dependency array ([#&#8203;2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997))
- *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#&#8203;2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25))
- *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#&#8203;2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948))
- *(proxy)* Add path validation guardrail to imageproxy ([#&#8203;2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081))
- *(region-selector)* Prevent empty region reporting during sync ([#&#8203;2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43))
- *(request)* Record modifiedBy on retry and add route tests  ([#&#8203;2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b))
- *(request)* Correct delete permission check and await movie save ([#&#8203;2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38))
- *(requests)* Mark requests as completed when media is already available ([#&#8203;2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca))
- *(settings)* Persist new settings defaults to disk on startup ([#&#8203;2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be))
- *(settings)* Serialize settings writes and prevent partial overwrites ([#&#8203;2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f))
- *(settings)* Remove beta info banner ([#&#8203;2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753))
- *(setup)* Fix Plex login not proceeding after authentication ([#&#8203;2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154))
- *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#&#8203;2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f))
- Improve local login UX ([#&#8203;2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481))
- Await missing repository saves ([#&#8203;2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e))
- Helm chart liveness and readiness probe ([#&#8203;2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45))
- Disambiguate tmdb ids by media type across lookups ([#&#8203;2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896))
- Anchor streaming service filter check icon to each provider card ([#&#8203;2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47))

##### 📖 Documentation

- *(contributing-guide)* Fix a typo ([#&#8203;2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743))
- *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#&#8203;2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb))
- Clarify Docker volume creation instructions on fresh Windows install ([#&#8203;2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930))
- Move network-related docs to a dedicated tab ([#&#8203;2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52))
- Promote Nixpkgs as an official installation method ([#&#8203;2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c))
- Fix PM2 start command syntax ([#&#8203;2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4))

##### 🚜 Refactor

- *(imageproxy)* Reduce noisy image cache logging ([#&#8203;2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000))
- *(notifications)* Move event from author to title field in Discord Embed ([#&#8203;2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b))
- *(userlist)* Responsive columns and buttons ([#&#8203;2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca))
- *(watchlistsync)* Log media request creation after success instead of before ([#&#8203;2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44))
- Rename Error components to ErrorPage ([#&#8203;2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f))

##### 🧪 Testing

- *(user-list)* Deflake sorting assertions ([#&#8203;2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8))
- Support server-side unit testing ([#&#8203;2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9))
- *(actions)* Update github actions ([#&#8203;2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab))
- *(actions)* Update github actions ([#&#8203;2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5))
- *(create-tag)* Correct quote style in commit message for tag preparation ([#&#8203;2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b))
- *(docker)* Release alias for major and minor version series ([#&#8203;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 ([#&#8203;2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19))
- *(pr-validation)* Make checklist box detection case-insensitive ([#&#8203;2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec))
- *(pr-validation)* Update pull request permissions to write for validation jobs ([#&#8203;2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f))
- *(pr-validation)* Disable package manager cache in nodejs setup ([#&#8203;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 ([#&#8203;2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f))
- Add PR validation workflow and update contributing guidelines ([#&#8203;2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d))
- Upgrade to eslint v9 ([#&#8203;2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0))
- Ignore helm scope in git-cliff ([#&#8203;2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658))

##### New Contributors ❤️

- [@&#8203;aslafy-z](https://github.com/aslafy-z) made their first contribution
- [@&#8203;leereilly](https://github.com/leereilly) made their first contribution
- [@&#8203;jisef](https://github.com/jisef) made their first contribution
- [@&#8203;dougrathbone](https://github.com/dougrathbone) made their first contribution
- [@&#8203;bobziroll](https://github.com/bobziroll) made their first contribution
- [@&#8203;v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution
- [@&#8203;Roboroads](https://github.com/Roboroads) made their first contribution
- [@&#8203;costajohnt](https://github.com/costajohnt) made their first contribution
- [@&#8203;tiagodefendi](https://github.com/tiagodefendi) made their first contribution
- [@&#8203;Jyasapara](https://github.com/Jyasapara) made their first contribution
- [@&#8203;Sym-jay](https://github.com/Sym-jay) made their first contribution
- [@&#8203;bibi0019](https://github.com/bibi0019) made their first contribution
- [@&#8203;redondos](https://github.com/redondos) made their first contribution
- [@&#8203;bogo22](https://github.com/bogo22) made their first contribution
- [@&#8203;jabloink](https://github.com/jabloink) made their first contribution
- [@&#8203;YakGravity](https://github.com/YakGravity) made their first contribution
- [@&#8203;dj0024javia](https://github.com/dj0024javia) made their first contribution
- [@&#8203;Jerra94](https://github.com/Jerra94) made their first contribution
- [@&#8203;its-wizza](https://github.com/its-wizza) made their first contribution
- [@&#8203;ventiph](https://github.com/ventiph) made their first contribution
- [@&#8203;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>
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Apr 16, 2026
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 ([#&#8203;1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c))
- *(discover)* Handle errors gracefully when content is available ([#&#8203;1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970))
- *(i18n)* Add Estonian language support ([#&#8203;2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff))
- *(i18n)* Add Luxembourgish language support ([#&#8203;2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95))
- *(i18n)* Add Vietnamese language support ([#&#8203;2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea))
- *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#&#8203;2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745))
- *(notifications)* Add ntfy markdown formatting ([#&#8203;2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13))
- *(notifications)* Webhook custom headers ([#&#8203;2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72))
- *(notifications)* Add priority setting for ntfy agent ([#&#8203;2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377))
- *(person)* Add tmdb- and imdb link on person detail page ([#&#8203;2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c))
- *(quota)* Added support for unlimited quota days ([#&#8203;2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7))
- *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#&#8203;2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e))
- *(settings)* Add blocklist region and language options ([#&#8203;1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb))
- *(settings)* Add help tooltips for services setup ([#&#8203;2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da))
- *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#&#8203;2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91))
- *(trending)* Add filter options ([#&#8203;2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1))
- *(ui)* Add loading state to request approve/decline buttons ([#&#8203;2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4))
- *(userlist)* Add sortable columns to User List ([#&#8203;1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a))
- *(webhook)* Add imdbid to webhook notification ([#&#8203;2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d))
- Sort quality profiles ASC in request and service configuration ([#&#8203;1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c))
- Add trailing whitespace warning on login username field ([#&#8203;2040](seerr-team/seerr#2040)) ([#&#8203;2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9))

##### 🐛 Bug Fixes

- *(auth)* Resolve Plex OAuth client ID mismatch ([#&#8203;2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109))
- *(email)* Correctly classify final MIME header in PGP email encryption ([#&#8203;2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58))
- *(email)* Preserve newlines in PGP key textarea fields ([#&#8203;2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917))
- *(emby)* Use static version in auth header for emby only ([#&#8203;2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041))
- *(entities)* Replace MySQL-only onUpdate with [@&#8203;UpdateDateColumn](https://github.com/UpdateDateColumn) ([#&#8203;2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872))
- *(generate-password)* Await setPassword to fix race condition ([#&#8203;2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c))
- *(issues)* Update issue timestamp when adding comments ([#&#8203;2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046))
- *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#&#8203;2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0))
- *(login)* Resolve stuck transition when switching login forms ([#&#8203;2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47))
- *(media)* Exclude null mediaAddedAt entries ([#&#8203;2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1))
- *(migration)* Repair postgres blocklist id sequence ([#&#8203;2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c))
- *(movie,tv)* Respect display language for trailers ([#&#8203;2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d))
- *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#&#8203;2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4))
- *(override-rules)* Remove users from `useEffect` dependency array ([#&#8203;2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997))
- *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#&#8203;2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25))
- *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#&#8203;2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948))
- *(proxy)* Add path validation guardrail to imageproxy ([#&#8203;2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081))
- *(region-selector)* Prevent empty region reporting during sync ([#&#8203;2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43))
- *(request)* Record modifiedBy on retry and add route tests  ([#&#8203;2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b))
- *(request)* Correct delete permission check and await movie save ([#&#8203;2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38))
- *(requests)* Mark requests as completed when media is already available ([#&#8203;2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca))
- *(settings)* Persist new settings defaults to disk on startup ([#&#8203;2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be))
- *(settings)* Serialize settings writes and prevent partial overwrites ([#&#8203;2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f))
- *(settings)* Remove beta info banner ([#&#8203;2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753))
- *(setup)* Fix Plex login not proceeding after authentication ([#&#8203;2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154))
- *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#&#8203;2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f))
- Improve local login UX ([#&#8203;2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481))
- Await missing repository saves ([#&#8203;2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e))
- Helm chart liveness and readiness probe ([#&#8203;2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45))
- Disambiguate tmdb ids by media type across lookups ([#&#8203;2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896))
- Anchor streaming service filter check icon to each provider card ([#&#8203;2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47))

##### 📖 Documentation

- *(contributing-guide)* Fix a typo ([#&#8203;2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743))
- *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#&#8203;2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb))
- Clarify Docker volume creation instructions on fresh Windows install ([#&#8203;2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930))
- Move network-related docs to a dedicated tab ([#&#8203;2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52))
- Promote Nixpkgs as an official installation method ([#&#8203;2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c))
- Fix PM2 start command syntax ([#&#8203;2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4))

##### 🚜 Refactor

- *(imageproxy)* Reduce noisy image cache logging ([#&#8203;2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000))
- *(notifications)* Move event from author to title field in Discord Embed ([#&#8203;2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b))
- *(userlist)* Responsive columns and buttons ([#&#8203;2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca))
- *(watchlistsync)* Log media request creation after success instead of before ([#&#8203;2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44))
- Rename Error components to ErrorPage ([#&#8203;2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f))

##### 🧪 Testing

- *(user-list)* Deflake sorting assertions ([#&#8203;2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8))
- Support server-side unit testing ([#&#8203;2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9))
- *(actions)* Update github actions ([#&#8203;2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab))
- *(actions)* Update github actions ([#&#8203;2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5))
- *(create-tag)* Correct quote style in commit message for tag preparation ([#&#8203;2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b))
- *(docker)* Release alias for major and minor version series ([#&#8203;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 ([#&#8203;2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19))
- *(pr-validation)* Make checklist box detection case-insensitive ([#&#8203;2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec))
- *(pr-validation)* Update pull request permissions to write for validation jobs ([#&#8203;2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f))
- *(pr-validation)* Disable package manager cache in nodejs setup ([#&#8203;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 ([#&#8203;2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f))
- Add PR validation workflow and update contributing guidelines ([#&#8203;2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d))
- Upgrade to eslint v9 ([#&#8203;2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0))
- Ignore helm scope in git-cliff ([#&#8203;2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658))

##### New Contributors ❤️

- [@&#8203;aslafy-z](https://github.com/aslafy-z) made their first contribution
- [@&#8203;leereilly](https://github.com/leereilly) made their first contribution
- [@&#8203;jisef](https://github.com/jisef) made their first contribution
- [@&#8203;dougrathbone](https://github.com/dougrathbone) made their first contribution
- [@&#8203;bobziroll](https://github.com/bobziroll) made their first contribution
- [@&#8203;v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution
- [@&#8203;Roboroads](https://github.com/Roboroads) made their first contribution
- [@&#8203;costajohnt](https://github.com/costajohnt) made their first contribution
- [@&#8203;tiagodefendi](https://github.com/tiagodefendi) made their first contribution
- [@&#8203;Jyasapara](https://github.com/Jyasapara) made their first contribution
- [@&#8203;Sym-jay](https://github.com/Sym-jay) made their first contribution
- [@&#8203;bibi0019](https://github.com/bibi0019) made their first contribution
- [@&#8203;redondos](https://github.com/redondos) made their first contribution
- [@&#8203;bogo22](https://github.com/bogo22) made their first contribution
- [@&#8203;jabloink](https://github.com/jabloink) made their first contribution
- [@&#8203;YakGravity](https://github.com/YakGravity) made their first contribution
- [@&#8203;dj0024javia](https://github.com/dj0024javia) made their first contribution
- [@&#8203;Jerra94](https://github.com/Jerra94) made their first contribution
- [@&#8203;its-wizza](https://github.com/its-wizza) made their first contribution
- [@&#8203;ventiph](https://github.com/ventiph) made their first contribution
- [@&#8203;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>
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Apr 16, 2026
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 ([#&#8203;1841](seerr-team/seerr#1841)) - ([993ae4c](seerr-team/seerr@993ae4c))
- *(discover)* Handle errors gracefully when content is available ([#&#8203;1542](seerr-team/seerr#1542)) - ([7920970](seerr-team/seerr@7920970))
- *(i18n)* Add Estonian language support ([#&#8203;2611](seerr-team/seerr#2611)) - ([56b79ff](seerr-team/seerr@56b79ff))
- *(i18n)* Add Luxembourgish language support ([#&#8203;2671](seerr-team/seerr#2671)) - ([dccdc95](seerr-team/seerr@dccdc95))
- *(i18n)* Add Vietnamese language support ([#&#8203;2670](seerr-team/seerr#2670)) - ([40edaea](seerr-team/seerr@40edaea))
- *(jellyfin)* Allow Jellyfin Guids with dashes for import-from-jellyfin endpoint ([#&#8203;2340](seerr-team/seerr#2340)) - ([3557745](seerr-team/seerr@3557745))
- *(notifications)* Add ntfy markdown formatting ([#&#8203;2602](seerr-team/seerr#2602)) - ([77f2c13](seerr-team/seerr@77f2c13))
- *(notifications)* Webhook custom headers ([#&#8203;2230](seerr-team/seerr#2230)) - ([3152f72](seerr-team/seerr@3152f72))
- *(notifications)* Add priority setting for ntfy agent ([#&#8203;2306](seerr-team/seerr#2306)) - ([61e0377](seerr-team/seerr@61e0377))
- *(person)* Add tmdb- and imdb link on person detail page ([#&#8203;2136](seerr-team/seerr#2136)) - ([fb2ee7c](seerr-team/seerr@fb2ee7c))
- *(quota)* Added support for unlimited quota days ([#&#8203;2797](seerr-team/seerr#2797)) - ([6d8b2b7](seerr-team/seerr@6d8b2b7))
- *(requests)* Mark requests as failed when Radarr/Sonarr unreachable ([#&#8203;2171](seerr-team/seerr#2171)) - ([c23117e](seerr-team/seerr@c23117e))
- *(settings)* Add blocklist region and language options ([#&#8203;1802](seerr-team/seerr#1802)) - ([ff469cb](seerr-team/seerr@ff469cb))
- *(settings)* Add help tooltips for services setup ([#&#8203;2662](seerr-team/seerr#2662)) - ([f5115da](seerr-team/seerr@f5115da))
- *(sonarr)* Add monitorNewItems option to sonarr settings & modal ([#&#8203;2071](seerr-team/seerr#2071)) - ([5c34c91](seerr-team/seerr@5c34c91))
- *(trending)* Add filter options ([#&#8203;2137](seerr-team/seerr#2137)) - ([4ce0db1](seerr-team/seerr@4ce0db1))
- *(ui)* Add loading state to request approve/decline buttons ([#&#8203;2815](seerr-team/seerr#2815)) - ([bd8f2d4](seerr-team/seerr@bd8f2d4))
- *(userlist)* Add sortable columns to User List ([#&#8203;1615](seerr-team/seerr#1615)) - ([eaf397a](seerr-team/seerr@eaf397a))
- *(webhook)* Add imdbid to webhook notification ([#&#8203;2658](seerr-team/seerr#2658)) - ([2432e8d](seerr-team/seerr@2432e8d))
- Sort quality profiles ASC in request and service configuration ([#&#8203;1805](seerr-team/seerr#1805)) - ([25e376c](seerr-team/seerr@25e376c))
- Add trailing whitespace warning on login username field ([#&#8203;2040](seerr-team/seerr#2040)) ([#&#8203;2177](seerr-team/seerr#2177)) - ([636dcb9](seerr-team/seerr@636dcb9))

##### 🐛 Bug Fixes

- *(auth)* Resolve Plex OAuth client ID mismatch ([#&#8203;2746](seerr-team/seerr#2746)) - ([15b3109](seerr-team/seerr@15b3109))
- *(email)* Correctly classify final MIME header in PGP email encryption ([#&#8203;2618](seerr-team/seerr#2618)) - ([9ec3d58](seerr-team/seerr@9ec3d58))
- *(email)* Preserve newlines in PGP key textarea fields ([#&#8203;2617](seerr-team/seerr#2617)) - ([835e917](seerr-team/seerr@835e917))
- *(emby)* Use static version in auth header for emby only ([#&#8203;2821](seerr-team/seerr#2821)) - ([fe2c041](seerr-team/seerr@fe2c041))
- *(entities)* Replace MySQL-only onUpdate with [@&#8203;UpdateDateColumn](https://github.com/UpdateDateColumn) ([#&#8203;2823](seerr-team/seerr#2823)) - ([0b8f872](seerr-team/seerr@0b8f872))
- *(generate-password)* Await setPassword to fix race condition ([#&#8203;2845](seerr-team/seerr#2845)) - ([061121c](seerr-team/seerr@061121c))
- *(issues)* Update issue timestamp when adding comments ([#&#8203;2616](seerr-team/seerr#2616)) - ([a16d046](seerr-team/seerr@a16d046))
- *(jellyfin-scanner)* Add TheMovieDb provider fallback for Jellyfin scanner ([#&#8203;2605](seerr-team/seerr#2605)) - ([10f23f0](seerr-team/seerr@10f23f0))
- *(login)* Resolve stuck transition when switching login forms ([#&#8203;2779](seerr-team/seerr#2779)) - ([735ec47](seerr-team/seerr@735ec47))
- *(media)* Exclude null mediaAddedAt entries ([#&#8203;2607](seerr-team/seerr#2607)) - ([001f6b1](seerr-team/seerr@001f6b1))
- *(migration)* Repair postgres blocklist id sequence ([#&#8203;2686](seerr-team/seerr#2686)) - ([f40323c](seerr-team/seerr@f40323c))
- *(movie,tv)* Respect display language for trailers ([#&#8203;2674](seerr-team/seerr#2674)) - ([90d407d](seerr-team/seerr@90d407d))
- *(open-api)* Add missing mediaType query parameter to blocklist and watchlist ([#&#8203;2722](seerr-team/seerr#2722)) - ([c7185d4](seerr-team/seerr@c7185d4))
- *(override-rules)* Remove users from `useEffect` dependency array ([#&#8203;2771](seerr-team/seerr#2771)) - ([be57997](seerr-team/seerr@be57997))
- *(overseerr-merge)* Sanitise corrupt quota values during overseerr migration ([#&#8203;2863](seerr-team/seerr#2863)) - ([43eff25](seerr-team/seerr@43eff25))
- *(plex)* Set 4K Plex URLs whenever ratingKey4k is set ([#&#8203;2635](seerr-team/seerr#2635)) - ([1548948](seerr-team/seerr@1548948))
- *(proxy)* Add path validation guardrail to imageproxy ([#&#8203;2531](seerr-team/seerr#2531)) - ([e086081](seerr-team/seerr@e086081))
- *(region-selector)* Prevent empty region reporting during sync ([#&#8203;2636](seerr-team/seerr#2636)) - ([fbfcb43](seerr-team/seerr@fbfcb43))
- *(request)* Record modifiedBy on retry and add route tests  ([#&#8203;2824](seerr-team/seerr#2824)) - ([20ccd4b](seerr-team/seerr@20ccd4b))
- *(request)* Correct delete permission check and await movie save ([#&#8203;2742](seerr-team/seerr#2742)) - ([6aeab38](seerr-team/seerr@6aeab38))
- *(requests)* Mark requests as completed when media is already available ([#&#8203;2462](seerr-team/seerr#2462)) - ([d25d0ca](seerr-team/seerr@d25d0ca))
- *(settings)* Persist new settings defaults to disk on startup ([#&#8203;2884](seerr-team/seerr#2884)) - ([66130be](seerr-team/seerr@66130be))
- *(settings)* Serialize settings writes and prevent partial overwrites ([#&#8203;2696](seerr-team/seerr#2696)) - ([6c52a2f](seerr-team/seerr@6c52a2f))
- *(settings)* Remove beta info banner ([#&#8203;2615](seerr-team/seerr#2615)) - ([fece753](seerr-team/seerr@fece753))
- *(setup)* Fix Plex login not proceeding after authentication ([#&#8203;2596](seerr-team/seerr#2596)) - ([1dc5154](seerr-team/seerr@1dc5154))
- *(watchlist-sync)* Handle empty watchlists on PostgreSQL ([#&#8203;2718](seerr-team/seerr#2718)) - ([865396f](seerr-team/seerr@865396f))
- Improve local login UX ([#&#8203;2849](seerr-team/seerr#2849)) - ([aef2481](seerr-team/seerr@aef2481))
- Await missing repository saves ([#&#8203;2760](seerr-team/seerr#2760)) - ([1bb638e](seerr-team/seerr@1bb638e))
- Helm chart liveness and readiness probe ([#&#8203;2755](seerr-team/seerr#2755)) - ([4434c45](seerr-team/seerr@4434c45))
- Disambiguate tmdb ids by media type across lookups ([#&#8203;2577](seerr-team/seerr#2577)) - ([0be1896](seerr-team/seerr@0be1896))
- Anchor streaming service filter check icon to each provider card ([#&#8203;2634](seerr-team/seerr#2634)) - ([94ccd47](seerr-team/seerr@94ccd47))

##### 📖 Documentation

- *(contributing-guide)* Fix a typo ([#&#8203;2807](seerr-team/seerr#2807)) - ([6f9b743](seerr-team/seerr@6f9b743))
- *(docker)* Replace backslashes by backticks in windows docker run commands \[skip-ci] ([#&#8203;2557](seerr-team/seerr#2557)) - ([40e02bb](seerr-team/seerr@40e02bb))
- Clarify Docker volume creation instructions on fresh Windows install ([#&#8203;2861](seerr-team/seerr#2861)) - ([a133930](seerr-team/seerr@a133930))
- Move network-related docs to a dedicated tab ([#&#8203;2791](seerr-team/seerr#2791)) - ([5bbdc52](seerr-team/seerr@5bbdc52))
- Promote Nixpkgs as an official installation method ([#&#8203;2775](seerr-team/seerr#2775)) - ([05ad60c](seerr-team/seerr@05ad60c))
- Fix PM2 start command syntax ([#&#8203;2713](seerr-team/seerr#2713)) - ([5373da4](seerr-team/seerr@5373da4))

##### 🚜 Refactor

- *(imageproxy)* Reduce noisy image cache logging ([#&#8203;2789](seerr-team/seerr#2789)) - ([036d000](seerr-team/seerr@036d000))
- *(notifications)* Move event from author to title field in Discord Embed ([#&#8203;2119](seerr-team/seerr#2119)) - ([a2d1e1b](seerr-team/seerr@a2d1e1b))
- *(userlist)* Responsive columns and buttons ([#&#8203;2083](seerr-team/seerr#2083)) - ([dbe1fca](seerr-team/seerr@dbe1fca))
- *(watchlistsync)* Log media request creation after success instead of before ([#&#8203;2790](seerr-team/seerr#2790)) - ([685cb44](seerr-team/seerr@685cb44))
- Rename Error components to ErrorPage ([#&#8203;2668](seerr-team/seerr#2668)) - ([d5c5f1f](seerr-team/seerr@d5c5f1f))

##### 🧪 Testing

- *(user-list)* Deflake sorting assertions ([#&#8203;2766](seerr-team/seerr#2766)) - ([20c2ed8](seerr-team/seerr@20c2ed8))
- Support server-side unit testing ([#&#8203;2485](seerr-team/seerr#2485)) - ([8563362](seerr-team/seerr@8563362))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;2683](seerr-team/seerr#2683)) - ([a2154f9](seerr-team/seerr@a2154f9))
- *(actions)* Update github actions ([#&#8203;2672](seerr-team/seerr#2672)) - ([f047cab](seerr-team/seerr@f047cab))
- *(actions)* Update github actions ([#&#8203;2632](seerr-team/seerr#2632)) - ([e25c1a5](seerr-team/seerr@e25c1a5))
- *(create-tag)* Correct quote style in commit message for tag preparation ([#&#8203;2593](seerr-team/seerr#2593)) - ([687f18b](seerr-team/seerr@687f18b))
- *(docker)* Release alias for major and minor version series ([#&#8203;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 ([#&#8203;2419](seerr-team/seerr#2419)) - ([4bd7c19](seerr-team/seerr@4bd7c19))
- *(pr-validation)* Make checklist box detection case-insensitive ([#&#8203;2802](seerr-team/seerr#2802)) - ([58514ec](seerr-team/seerr@58514ec))
- *(pr-validation)* Update pull request permissions to write for validation jobs ([#&#8203;2800](seerr-team/seerr#2800)) - ([986761f](seerr-team/seerr@986761f))
- *(pr-validation)* Disable package manager cache in nodejs setup ([#&#8203;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 ([#&#8203;2873](seerr-team/seerr#2873)) - ([891265f](seerr-team/seerr@891265f))
- Add PR validation workflow and update contributing guidelines ([#&#8203;2777](seerr-team/seerr#2777)) - ([772e83d](seerr-team/seerr@772e83d))
- Upgrade to eslint v9 ([#&#8203;2574](seerr-team/seerr#2574)) - ([36243a0](seerr-team/seerr@36243a0))
- Ignore helm scope in git-cliff ([#&#8203;2638](seerr-team/seerr#2638)) - ([4d2b658](seerr-team/seerr@4d2b658))

##### New Contributors ❤️

- [@&#8203;aslafy-z](https://github.com/aslafy-z) made their first contribution
- [@&#8203;leereilly](https://github.com/leereilly) made their first contribution
- [@&#8203;jisef](https://github.com/jisef) made their first contribution
- [@&#8203;dougrathbone](https://github.com/dougrathbone) made their first contribution
- [@&#8203;bobziroll](https://github.com/bobziroll) made their first contribution
- [@&#8203;v3DJG6GL](https://github.com/v3DJG6GL) made their first contribution
- [@&#8203;Roboroads](https://github.com/Roboroads) made their first contribution
- [@&#8203;costajohnt](https://github.com/costajohnt) made their first contribution
- [@&#8203;tiagodefendi](https://github.com/tiagodefendi) made their first contribution
- [@&#8203;Jyasapara](https://github.com/Jyasapara) made their first contribution
- [@&#8203;Sym-jay](https://github.com/Sym-jay) made their first contribution
- [@&#8203;bibi0019](https://github.com/bibi0019) made their first contribution
- [@&#8203;redondos](https://github.com/redondos) made their first contribution
- [@&#8203;bogo22](https://github.com/bogo22) made their first contribution
- [@&#8203;jabloink](https://github.com/jabloink) made their first contribution
- [@&#8203;YakGravity](https://github.com/YakGravity) made their first contribution
- [@&#8203;dj0024javia](https://github.com/dj0024javia) made their first contribution
- [@&#8203;Jerra94](https://github.com/Jerra94) made their first contribution
- [@&#8203;its-wizza](https://github.com/its-wizza) made their first contribution
- [@&#8203;ventiph](https://github.com/ventiph) made their first contribution
- [@&#8203;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>
lucianchauvin pushed a commit to lucianchauvin/jellyseerr that referenced this pull request Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Web UI strips OpenPGP key newlines, causing "Misformed armored text" error

4 participants