Skip to content

fix(login): hide quick connect button for emby servers - #3369

Merged
fallenbagel merged 1 commit into
developfrom
fix/hide-quick-connect-on-emby
Aug 11, 2026
Merged

fallenbagel merged 1 commit into
developfrom
fix/hide-quick-connect-on-emby

Conversation

@fallenbagel

@fallenbagel fallenbagel commented Aug 11, 2026 •

Copy link
Copy Markdown
Member

Description

The Quick Connect button was shown on the login screen for any Jellyfin-family server, but Emby doesn't support Quick Connect, so clicking it there always failed with an error. This hides the button when the configured server is Emby, showing it only for Jellyfin.

How Has This Been Tested?

  • Ran the unit test and UI just self-explanatory that it would work anyways

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

  • Bug Fixes

    • Quick Connect is now available only for Jellyfin servers.
    • Non-Jellyfin configurations receive a clear access error instead of attempting an unsupported connection.
    • Added safeguards to prevent invalid Quick Connect requests and account-linking attempts.
  • UI Improvements

    • The Quick Connect button is hidden when the selected media server is not Jellyfin.
    • Jellyfin account linking now consistently uses the correct account type.

@fallenbagel
fallenbagel requested a review from a team as a code owner August 11, 2026 05:39
Copilot AI lite review requested due to automatic review settings August 11, 2026 05:39
@coderabbitai

coderabbitai Bot commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a5e09841-e93b-4104-aea4-190fc68d0e4c

📥 Commits

Reviewing files that changed from the base of the PR and between b7e10d9 and 29128a7.

📒 Files selected for processing (5)
  • server/routes/auth.test.ts
  • server/routes/auth.ts
  • server/routes/user/usersettings.test.ts
  • server/routes/user/usersettings.ts
  • src/components/UserProfile/UserSettings/UserLinkedAccountsSettings/LinkJellyfinModal.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • server/routes/auth.ts

📝 Walkthrough

Walkthrough

Quick Connect now supports Jellyfin configurations only. Server routes and account linking return HTTP 403 for Emby. The login and linked-account interfaces hide Quick Connect controls for Emby. Tests verify rejection, skipped Jellyfin calls, and successful Jellyfin linking.

Changes

Quick Connect gating

Layer / File(s) Summary
Server-side Quick Connect validation
server/routes/auth.ts, server/routes/auth.test.ts
The initiation, status-check, and authentication routes reject non-Jellyfin configurations with HTTP 403. New authenticated users use UserType.JELLYFIN. Tests verify rejected Emby requests and skipped Jellyfin API calls.
Quick Connect account linking
server/routes/user/usersettings.ts, server/routes/user/usersettings.test.ts
Account linking rejects Emby with HTTP 403. Successful links persist the Jellyfin user ID and UserType.JELLYFIN.
Conditional Quick Connect controls
src/components/Login/JellyfinLogin.tsx, src/components/UserProfile/UserSettings/UserLinkedAccountsSettings/LinkJellyfinModal.tsx
Both components render Quick Connect controls only for Jellyfin configurations.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • seerr-team/seerr#2212: Introduced the Quick Connect routes, interface components, and account-linking behavior updated here.

Suggested reviewers: 0xsysr3ll, gauthier-th

Poem

A rabbit guards the Jellyfin gate,
Emby requests must now wait.
The buttons hide, the calls stay still,
Linked users bear the proper type.
Quick Connect hops with careful skill.

🚥 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 clearly describes the primary change: hiding the Quick Connect button for Emby servers.
Linked Issues check ✅ Passed [#3364] The PR hides Quick Connect for Emby, uses serverType, and prevents unsupported Emby Quick Connect requests.
Out of Scope Changes check ✅ Passed The backend guards and tests directly support preventing unsupported Emby Quick Connect flows, so the changes remain in scope.

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR prevents users from attempting Jellyfin Quick Connect against Emby servers (which don’t support it), eliminating a guaranteed error path on the login screen and adding a server-side safeguard.

Changes:

  • Hide the Quick Connect button in the Jellyfin login UI unless the configured server type is Jellyfin.
  • Add a server-side 403 guard on Quick Connect initiation when the media server type is not Jellyfin.
  • Add a unit test verifying the 403 behavior when configured for Emby.

Reviewed changes

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

File Description
src/components/Login/JellyfinLogin.tsx Conditionally renders the Quick Connect button only for Jellyfin servers.
server/routes/auth.ts Rejects Quick Connect initiation requests unless Jellyfin is the configured server type.
server/routes/auth.test.ts Adds test coverage for the new 403 behavior when media server type is Emby.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread server/routes/auth.ts Resolved
Copilot AI review requested due to automatic review settings August 11, 2026 05:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

M0NsTeRRR
M0NsTeRRR previously approved these changes Aug 11, 2026
Quick Connect isn't supported by Emby, so the button was gated to only render for Jellyfin, matching
what the backend can actually service.

fix #3364
Copilot AI review requested due to automatic review settings August 11, 2026 10:01
@fallenbagel
fallenbagel force-pushed the fix/hide-quick-connect-on-emby branch from b7e10d9 to 29128a7 Compare August 11, 2026 10:01
Comment thread server/routes/user/usersettings.test.ts Resolved

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

@fallenbagel
fallenbagel merged commit d103787 into develop Aug 11, 2026
18 checks passed
@fallenbagel
fallenbagel deleted the fix/hide-quick-connect-on-emby branch August 11, 2026 10:23
jamjop pushed a commit to jamjop/seerr that referenced this pull request Aug 12, 2026
gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Sep 28, 2026
….0) (#963)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/seerr-team/seerr](https://github.com/seerr-team/seerr) | minor | `v3.4.1` → `v3.5.0` |

---

### Release Notes

<details>
<summary>seerr-team/seerr (ghcr.io/seerr-team/seerr)</summary>

### [`v3.5.0`](https://github.com/seerr-team/seerr/releases/tag/v3.5.0)

[Compare Source](seerr-team/seerr@v3.4.1...v3.5.0)

> \[!WARNING]
> **Breaking change: Plex and Jellyfin library API endpoints ([#&#8203;3321](seerr-team/seerr#3321
>
> `GET /settings/plex/library` and `GET /settings/jellyfin/library` no longer accept the `sync` or `enable` query parameters, and reading libraries no longer changes their enabled state. If you have scripts, integrations, or third-party clients that use these to sync or toggle libraries, switch to:
>
> - Sync libraries: `POST /settings/plex/library/sync` and `POST /settings/jellyfin/library/sync`
> - Enable or disable a library: `PUT /settings/plex/library/{libraryId}` and `PUT /settings/jellyfin/library/{libraryId}`
>
> The web UI already uses the new endpoints, so only direct API consumers are affected. Because of that limited scope, this ships in a minor release rather than a major one.

##### 🚀 Features

- *(api)* Send a Seerr user agent on outbound requests ([#&#8203;3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20))
- *(notifications)* Add support for ntfy.sh tags ([#&#8203;3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10))
- *(notifications)* Add embed poster option for Gotify ([#&#8203;3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa))
- *(overriderules)* Apply override rules to advanced requests ([#&#8203;2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a))
- *(settings)* Hide already requested media ([#&#8203;1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177))
- *(users)* Add search box for user lookup by username or email ([#&#8203;2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816))
- Add a demo feature ([#&#8203;3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca))
- Add support for custom plex metadata provider guid scheme in scanner ([#&#8203;3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83))

##### 🐛 Bug Fixes

- *(api)* Stop library reads from resetting enabled flags ([#&#8203;3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef))
- *(auth)* Refresh avatar on Quick Connect login ([#&#8203;3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8))
- *(datasource)* Break import cycle mistyping postgres timestamps ([#&#8203;3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd))
- *(datasource)* Register entities and subscribers explicitly ([#&#8203;3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6))
- *(db)* Remap leftover Overseerr DELETED status after migration ([#&#8203;3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8))
- *(db)* Drop stale auth unique on sqlite push subscriptions ([#&#8203;3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e))
- *(discover)* Fix tv title sorting and validate sortBy per media type ([#&#8203;3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058))
- *(jellyfin-api)* Update Authorization headers for Jellyfin ([#&#8203;3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a))
- *(login)* Hide quick connect button for emby servers ([#&#8203;3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787))
- *(override-rules)* Keep values set by advanced requesters ([#&#8203;3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443))
- *(override-rules)* Match default \*arr server by id ([#&#8203;3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b))
- *(plex)* Limit concurrent watchlist metadata requests ([#&#8203;3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d))
- *(request)* Render anime notice alert in a div instead of a p ([#&#8203;3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9))
- *(requests)* Serialize requests for the same title ([#&#8203;3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7))
- *(requests)* Stop editing a request from re-requesting covered seasons ([#&#8203;3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2))
- *(requests)* Enforce the quota when editing a request ([#&#8203;3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977))
- *(requests)* Skip seasons with no episodes when requesting all seasons ([#&#8203;2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b))
- *(requests)* Scope download status to requested seasons on request cards ([#&#8203;3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc))
- *(requests)* Serialize request creation per user ([#&#8203;3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd))
- *(requests)* Stop editing a request from stealing another's season ([#&#8203;3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc))
- *(requests)* Reset orphaned season statuses when a request is deleted ([#&#8203;3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54))
- *(requests)* Enforce pending and failed states on request routes ([#&#8203;3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e))
- *(scanner)* Confirm orphan candidates against the servers before declining ([#&#8203;3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0))
- *(server)* Respond instead of hanging on proxy route errors ([#&#8203;3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b))
- *(settings)* Mutate the query-string status key for modal immediately ([#&#8203;3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb))
- *(sonarr)* Apply configured series type to non-anime requests ([#&#8203;3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a))
- *(sonarr)* Decouple anime root folder routing from seriesType ([#&#8203;3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a))
- *(subscriber)* Keep issue comment lookups on the owning save's connection ([#&#8203;3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9))
- *(subscriber)* Keep request status updates on the owning save's connection ([#&#8203;3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c))
- *(tv)* Prevent phantom specials from blocking season request ([#&#8203;3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75))
- *(ui)* Stop the slideover backdrop flashing back on close ([#&#8203;3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4))
- *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#&#8203;3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555))
- *(ui)* Don't mark empty collections as available ([#&#8203;3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404))
- *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#&#8203;3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947))
- Fix empty discordId in comment webhooks ([#&#8203;3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b))
- Prevent hideAvailable/hideBlocklisted from filtering person results ([#&#8203;3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6))
- Stop masking connection failures across media server sync and login ([#&#8203;3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08))
- Keep library settings when renamed on media server ([#&#8203;3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5))
- Changes the suggested url from plex's "hosted" app ([#&#8203;3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e))

##### 📖 Documentation

- *(discord)* Document the Thread ID notification setting. ([#&#8203;3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29))
- *(docker)* Add cap-drop and security-opt to docker command ([#&#8203;3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa))
- Clarify ai disclosure policy further ([#&#8203;3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960))

##### ⚡ Performance

- Bound tmdb cache & split scan lookups into their own tier ([#&#8203;3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1))

##### 🚜 Refactor

- *(avatarproxy)* Remove unused auth header from avatarproxy ([#&#8203;3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652))
- *(ui)* Use the Radio component instead of RadioGroup.Option ([#&#8203;3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915))
- *(ui)* Use headlessui flat named exports ([#&#8203;3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de))

##### 🧪 Testing

- *(cypress)* Stop dirty restartRequired flag cascading across specs ([#&#8203;3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c))
- Block outbound HTTP in unit tests ([#&#8203;3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b))
- Add scanner update rate override for testing ([#&#8203;3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9))
- *(actions)* Update github actions (major) ([#&#8203;3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04))
- *(actions)* Update github actions ([#&#8203;3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059))
- *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#&#8203;3541](seerr-team/seerr#3541)) - ([4fd0da0](seerr-team/seerr@4fd0da0))
- *(i18n)* Update translations from Weblate - ([68c5bc8](seerr-team/seerr@68c5bc8))
- *(i18n)* Update translations from Weblate - ([5f97227](seerr-team/seerr@5f97227))
- *(i18n)* Update translations from Weblate - ([5c04640](seerr-team/seerr@5c04640))
- *(i18n)* Update translations from Weblate - ([cc592e8](seerr-team/seerr@cc592e8))
- *(release)* Prepare v3.5.0 - ([e2f24cb](seerr-team/seerr@e2f24cb))
- *(release)* Prepare 3.5.0 release - ([cd0fb22](seerr-team/seerr@cd0fb22))
- Remove third party action dawidd6/action-download-artifact ([#&#8203;3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473))
- Fix release workflow verify attestation ([#&#8203;3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659))
- Exclude .pnpm-store from Docker build context ([#&#8203;3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7))

##### New Contributors ❤️

- [@&#8203;atilaszsz](https://github.com/atilaszsz) made their first contribution
- [@&#8203;aussierk](https://github.com/aussierk) made their first contribution
- [@&#8203;Xyerophyte](https://github.com/Xyerophyte) made their first contribution
- [@&#8203;Knat-Dev](https://github.com/Knat-Dev) made their first contribution
- [@&#8203;britsync07-prog](https://github.com/britsync07-prog) made their first contribution
- [@&#8203;MannXo](https://github.com/MannXo) made their first contribution
- [@&#8203;bartdelange](https://github.com/bartdelange) made their first contribution
- [@&#8203;Arul1998](https://github.com/Arul1998) made their first contribution
- [@&#8203;tuvokian](https://github.com/tuvokian) made their first contribution
- [@&#8203;peruzzof](https://github.com/peruzzof) made their first contribution
- [@&#8203;lichie567](https://github.com/lichie567) made their first contribution
- [@&#8203;samtheruby](https://github.com/samtheruby) made their first contribution

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Berlin)

- 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 [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTUuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMTUuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/963
hbjydev pushed a commit to hbjydev/phoebe that referenced this pull request Sep 28, 2026
….0) (#793)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/seerr-team/seerr](https://github.com/seerr-team/seerr) | minor | `v3.4.1` → `v3.5.0` |

---

### Release Notes

<details>
<summary>seerr-team/seerr (ghcr.io/seerr-team/seerr)</summary>

### [`v3.5.0`](https://github.com/seerr-team/seerr/releases/tag/v3.5.0)

[Compare Source](seerr-team/seerr@v3.4.1...v3.5.0)

##### [3.5.0](https://github.com/seerr-team/seerr/compare/v3.4.1..v3.5.0) - 2026-09-28

##### 🚀 Features

- *(api)* Send a Seerr user agent on outbound requests ([#&#8203;3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20))
- *(notifications)* Add support for ntfy.sh tags ([#&#8203;3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10))
- *(notifications)* Add embed poster option for Gotify ([#&#8203;3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa))
- *(overriderules)* Apply override rules to advanced requests ([#&#8203;2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a))
- *(settings)* Hide already requested media ([#&#8203;1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177))
- *(users)* Add search box for user lookup by username or email ([#&#8203;2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816))
- Add a demo feature ([#&#8203;3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca))
- Add support for custom plex metadata provider guid scheme in scanner ([#&#8203;3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83))

##### 🐛 Bug Fixes

- *(api)* Stop library reads from resetting enabled flags ([#&#8203;3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef))
- *(auth)* Refresh avatar on Quick Connect login ([#&#8203;3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8))
- *(datasource)* Break import cycle mistyping postgres timestamps ([#&#8203;3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd))
- *(datasource)* Register entities and subscribers explicitly ([#&#8203;3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6))
- *(db)* Remap leftover Overseerr DELETED status after migration ([#&#8203;3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8))
- *(db)* Drop stale auth unique on sqlite push subscriptions ([#&#8203;3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e))
- *(discover)* Fix tv title sorting and validate sortBy per media type ([#&#8203;3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058))
- *(jellyfin-api)* Update Authorization headers for Jellyfin ([#&#8203;3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a))
- *(login)* Hide quick connect button for emby servers ([#&#8203;3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787))
- *(override-rules)* Keep values set by advanced requesters ([#&#8203;3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443))
- *(override-rules)* Match default \*arr server by id ([#&#8203;3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b))
- *(plex)* Limit concurrent watchlist metadata requests ([#&#8203;3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d))
- *(request)* Render anime notice alert in a div instead of a p ([#&#8203;3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9))
- *(requests)* Serialize requests for the same title ([#&#8203;3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7))
- *(requests)* Stop editing a request from re-requesting covered seasons ([#&#8203;3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2))
- *(requests)* Enforce the quota when editing a request ([#&#8203;3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977))
- *(requests)* Skip seasons with no episodes when requesting all seasons ([#&#8203;2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b))
- *(requests)* Scope download status to requested seasons on request cards ([#&#8203;3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc))
- *(requests)* Serialize request creation per user ([#&#8203;3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd))
- *(requests)* Stop editing a request from stealing another's season ([#&#8203;3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc))
- *(requests)* Reset orphaned season statuses when a request is deleted ([#&#8203;3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54))
- *(requests)* Enforce pending and failed states on request routes ([#&#8203;3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e))
- *(scanner)* Confirm orphan candidates against the servers before declining ([#&#8203;3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0))
- *(server)* Respond instead of hanging on proxy route errors ([#&#8203;3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b))
- *(settings)* Mutate the query-string status key for modal immediately ([#&#8203;3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb))
- *(sonarr)* Apply configured series type to non-anime requests ([#&#8203;3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a))
- *(sonarr)* Decouple anime root folder routing from seriesType ([#&#8203;3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a))
- *(subscriber)* Keep issue comment lookups on the owning save's connection ([#&#8203;3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9))
- *(subscriber)* Keep request status updates on the owning save's connection ([#&#8203;3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c))
- *(tv)* Prevent phantom specials from blocking season request ([#&#8203;3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75))
- *(ui)* Stop the slideover backdrop flashing back on close ([#&#8203;3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4))
- *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#&#8203;3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555))
- *(ui)* Don't mark empty collections as available ([#&#8203;3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404))
- *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#&#8203;3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947))
- Fix empty discordId in comment webhooks ([#&#8203;3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b))
- Prevent hideAvailable/hideBlocklisted from filtering person results ([#&#8203;3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6))
- Stop masking connection failures across media server sync and login ([#&#8203;3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08))
- Keep library settings when renamed on media server ([#&#8203;3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5))
- Changes the suggested url from plex's "hosted" app ([#&#8203;3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e))

##### 📖 Documentation

- *(discord)* Document the Thread ID notification setting. ([#&#8203;3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29))
- *(docker)* Add cap-drop and security-opt to docker command ([#&#8203;3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa))
- Clarify ai disclosure policy further ([#&#8203;3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960))

##### ⚡ Performance

- Bound tmdb cache & split scan lookups into their own tier ([#&#8203;3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1))

##### 🚜 Refactor

- *(avatarproxy)* Remove unused auth header from avatarproxy ([#&#8203;3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652))
- *(ui)* Use the Radio component instead of RadioGroup.Option ([#&#8203;3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915))
- *(ui)* Use headlessui flat named exports ([#&#8203;3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de))

##### 🧪 Testing

- *(cypress)* Stop dirty restartRequired flag cascading across specs ([#&#8203;3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c))
- Block outbound HTTP in unit tests ([#&#8203;3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b))
- Add scanner update rate override for testing ([#&#8203;3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9))
- *(actions)* Update github actions (major) ([#&#8203;3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04))
- *(actions)* Update github actions ([#&#8203;3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059))
- *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#&#8203;3541](seerr-team/seerr#3541)) - ([4fd0da0](seerr-team/seerr@4fd0da0))
- *(i18n)* Update translations from Weblate - ([68c5bc8](seerr-team/seerr@68c5bc8))
- *(i18n)* Update translations from Weblate - ([5f97227](seerr-team/seerr@5f97227))
- *(i18n)* Update translations from Weblate - ([5c04640](seerr-team/seerr@5c04640))
- *(i18n)* Update translations from Weblate - ([cc592e8](seerr-team/seerr@cc592e8))
- *(release)* Prepare v3.5.0 - ([e2f24cb](seerr-team/seerr@e2f24cb))
- *(release)* Prepare 3.5.0 release - ([cd0fb22](seerr-team/seerr@cd0fb22))
- Remove third party action dawidd6/action-download-artifact ([#&#8203;3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473))
- Fix release workflow verify attestation ([#&#8203;3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659))
- Exclude .pnpm-store from Docker build context ([#&#8203;3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7))

##### New Contributors ❤️

- [@&#8203;atilaszsz](https://github.com/atilaszsz) made their first contribution
- [@&#8203;aussierk](https://github.com/aussierk) made their first contribution
- [@&#8203;Xyerophyte](https://github.com/Xyerophyte) made their first contribution
- [@&#8203;Knat-Dev](https://github.com/Knat-Dev) made their first contribution
- [@&#8203;britsync07-prog](https://github.com/britsync07-prog) made their first contribution
- [@&#8203;MannXo](https://github.com/MannXo) made their first contribution
- [@&#8203;bartdelange](https://github.com/bartdelange) made their first contribution
- [@&#8203;Arul1998](https://github.com/Arul1998) made their first contribution
- [@&#8203;tuvokian](https://github.com/tuvokian) made their first contribution
- [@&#8203;peruzzof](https://github.com/peruzzof) made their first contribution
- [@&#8203;lichie567](https://github.com/lichie567) made their first contribution
- [@&#8203;samtheruby](https://github.com/samtheruby) made their first contribution

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/London)

- 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 [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.hayden.moe/hayden/phoebe/pulls/793
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Sep 28, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [seerr/seerr](https://github.com/seerr-team/seerr) | minor | `v3.4.1` → `v3.5.0` |

---

### Release Notes

<details>
<summary>seerr-team/seerr (seerr/seerr)</summary>

### [`v3.5.0`](https://github.com/seerr-team/seerr/releases/tag/v3.5.0)

[Compare Source](seerr-team/seerr@v3.4.1...v3.5.0)

> \[!WARNING]
> **Breaking change: Plex and Jellyfin library API endpoints ([#&#8203;3321](seerr-team/seerr#3321
>
> `GET /settings/plex/library` and `GET /settings/jellyfin/library` no longer accept the `sync` or `enable` query parameters, and reading libraries no longer changes their enabled state. If you have scripts, integrations, or third-party clients that use these to sync or toggle libraries, switch to:
>
> - Sync libraries: `POST /settings/plex/library/sync` and `POST /settings/jellyfin/library/sync`
> - Enable or disable a library: `PUT /settings/plex/library/{libraryId}` and `PUT /settings/jellyfin/library/{libraryId}`
>
> The web UI already uses the new endpoints, so only direct API consumers are affected. Because of that limited scope, this ships in a minor release rather than a major one.

##### 🚀 Features

- *(api)* Send a Seerr user agent on outbound requests ([#&#8203;3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20))
- *(notifications)* Add support for ntfy.sh tags ([#&#8203;3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10))
- *(notifications)* Add embed poster option for Gotify ([#&#8203;3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa))
- *(overriderules)* Apply override rules to advanced requests ([#&#8203;2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a))
- *(settings)* Hide already requested media ([#&#8203;1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177))
- *(users)* Add search box for user lookup by username or email ([#&#8203;2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816))
- Add a demo feature ([#&#8203;3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca))
- Add support for custom plex metadata provider guid scheme in scanner ([#&#8203;3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83))

##### 🐛 Bug Fixes

- *(api)* Stop library reads from resetting enabled flags ([#&#8203;3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef))
- *(auth)* Refresh avatar on Quick Connect login ([#&#8203;3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8))
- *(datasource)* Break import cycle mistyping postgres timestamps ([#&#8203;3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd))
- *(datasource)* Register entities and subscribers explicitly ([#&#8203;3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6))
- *(db)* Remap leftover Overseerr DELETED status after migration ([#&#8203;3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8))
- *(db)* Drop stale auth unique on sqlite push subscriptions ([#&#8203;3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e))
- *(discover)* Fix tv title sorting and validate sortBy per media type ([#&#8203;3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058))
- *(jellyfin-api)* Update Authorization headers for Jellyfin ([#&#8203;3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a))
- *(login)* Hide quick connect button for emby servers ([#&#8203;3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787))
- *(override-rules)* Keep values set by advanced requesters ([#&#8203;3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443))
- *(override-rules)* Match default \*arr server by id ([#&#8203;3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b))
- *(plex)* Limit concurrent watchlist metadata requests ([#&#8203;3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d))
- *(request)* Render anime notice alert in a div instead of a p ([#&#8203;3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9))
- *(requests)* Serialize requests for the same title ([#&#8203;3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7))
- *(requests)* Stop editing a request from re-requesting covered seasons ([#&#8203;3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2))
- *(requests)* Enforce the quota when editing a request ([#&#8203;3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977))
- *(requests)* Skip seasons with no episodes when requesting all seasons ([#&#8203;2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b))
- *(requests)* Scope download status to requested seasons on request cards ([#&#8203;3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc))
- *(requests)* Serialize request creation per user ([#&#8203;3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd))
- *(requests)* Stop editing a request from stealing another's season ([#&#8203;3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc))
- *(requests)* Reset orphaned season statuses when a request is deleted ([#&#8203;3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54))
- *(requests)* Enforce pending and failed states on request routes ([#&#8203;3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e))
- *(scanner)* Confirm orphan candidates against the servers before declining ([#&#8203;3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0))
- *(server)* Respond instead of hanging on proxy route errors ([#&#8203;3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b))
- *(settings)* Mutate the query-string status key for modal immediately ([#&#8203;3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb))
- *(sonarr)* Apply configured series type to non-anime requests ([#&#8203;3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a))
- *(sonarr)* Decouple anime root folder routing from seriesType ([#&#8203;3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a))
- *(subscriber)* Keep issue comment lookups on the owning save's connection ([#&#8203;3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9))
- *(subscriber)* Keep request status updates on the owning save's connection ([#&#8203;3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c))
- *(tv)* Prevent phantom specials from blocking season request ([#&#8203;3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75))
- *(ui)* Stop the slideover backdrop flashing back on close ([#&#8203;3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4))
- *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#&#8203;3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555))
- *(ui)* Don't mark empty collections as available ([#&#8203;3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404))
- *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#&#8203;3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947))
- Fix empty discordId in comment webhooks ([#&#8203;3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b))
- Prevent hideAvailable/hideBlocklisted from filtering person results ([#&#8203;3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6))
- Stop masking connection failures across media server sync and login ([#&#8203;3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08))
- Keep library settings when renamed on media server ([#&#8203;3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5))
- Changes the suggested url from plex's "hosted" app ([#&#8203;3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e))

##### 📖 Documentation

- *(discord)* Document the Thread ID notification setting. ([#&#8203;3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29))
- *(docker)* Add cap-drop and security-opt to docker command ([#&#8203;3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa))
- Clarify ai disclosure policy further ([#&#8203;3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960))

##### ⚡ Performance

- Bound tmdb cache & split scan lookups into their own tier ([#&#8203;3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1))

##### 🚜 Refactor

- *(avatarproxy)* Remove unused auth header from avatarproxy ([#&#8203;3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652))
- *(ui)* Use the Radio component instead of RadioGroup.Option ([#&#8203;3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915))
- *(ui)* Use headlessui flat named exports ([#&#8203;3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de))

##### 🧪 Testing

- *(cypress)* Stop dirty restartRequired flag cascading across specs ([#&#8203;3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c))
- Block outbound HTTP in unit tests ([#&#8203;3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b))
- Add scanner update rate override for testing ([#&#8203;3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9))
- *(actions)* Update github actions (major) ([#&#8203;3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04))
- *(actions)* Update github actions ([#&#8203;3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059))
- *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#&#8203;3541](seerr-team/seerr#3541)) - ([4fd0da0](seerr-team/seerr@4fd0da0))
- *(i18n)* Update translations from Weblate - ([68c5bc8](seerr-team/seerr@68c5bc8))
- *(i18n)* Update translations from Weblate - ([5f97227](seerr-team/seerr@5f97227))
- *(i18n)* Update translations from Weblate - ([5c04640](seerr-team/seerr@5c04640))
- *(i18n)* Update translations from Weblate - ([cc592e8](seerr-team/seerr@cc592e8))
- *(release)* Prepare v3.5.0 - ([e2f24cb](seerr-team/seerr@e2f24cb))
- *(release)* Prepare 3.5.0 release - ([cd0fb22](seerr-team/seerr@cd0fb22))
- Remove third party action dawidd6/action-download-artifact ([#&#8203;3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473))
- Fix release workflow verify attestation ([#&#8203;3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659))
- Exclude .pnpm-store from Docker build context ([#&#8203;3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7))

##### New Contributors ❤️

- [@&#8203;atilaszsz](https://github.com/atilaszsz) made their first contribution
- [@&#8203;aussierk](https://github.com/aussierk) made their first contribution
- [@&#8203;Xyerophyte](https://github.com/Xyerophyte) made their first contribution
- [@&#8203;Knat-Dev](https://github.com/Knat-Dev) made their first contribution
- [@&#8203;britsync07-prog](https://github.com/britsync07-prog) made their first contribution
- [@&#8203;MannXo](https://github.com/MannXo) made their first contribution
- [@&#8203;bartdelange](https://github.com/bartdelange) made their first contribution
- [@&#8203;Arul1998](https://github.com/Arul1998) made their first contribution
- [@&#8203;tuvokian](https://github.com/tuvokian) made their first contribution
- [@&#8203;peruzzof](https://github.com/peruzzof) made their first contribution
- [@&#8203;lichie567](https://github.com/lichie567) made their first contribution
- [@&#8203;samtheruby](https://github.com/samtheruby) made their first contribution

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- 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 [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjExNS4xMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9taW5vciJdfQ==-->

Reviewed-on: https://git.greyrock.io/todd/home-ops/pulls/294
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Sep 29, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [seerr/seerr](https://github.com/seerr-team/seerr) | minor | `v3.4.1` → `v3.5.0` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/567) for more information.

---

### Release Notes

<details>
<summary>seerr-team/seerr (seerr/seerr)</summary>

### [`v3.5.0`](https://github.com/seerr-team/seerr/releases/tag/v3.5.0)

[Compare Source](seerr-team/seerr@v3.4.1...v3.5.0)

> \[!WARNING]
> **Breaking change: Plex and Jellyfin library API endpoints ([#&#8203;3321](seerr-team/seerr#3321
>
> `GET /settings/plex/library` and `GET /settings/jellyfin/library` no longer accept the `sync` or `enable` query parameters, and reading libraries no longer changes their enabled state. If you have scripts, integrations, or third-party clients that use these to sync or toggle libraries, switch to:
>
> - Sync libraries: `POST /settings/plex/library/sync` and `POST /settings/jellyfin/library/sync`
> - Enable or disable a library: `PUT /settings/plex/library/{libraryId}` and `PUT /settings/jellyfin/library/{libraryId}`
>
> The web UI already uses the new endpoints, so only direct API consumers are affected. Because of that limited scope, this ships in a minor release rather than a major one.

##### 🚀 Features

- *(api)* Send a Seerr user agent on outbound requests ([#&#8203;3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20))
- *(notifications)* Add support for ntfy.sh tags ([#&#8203;3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10))
- *(notifications)* Add embed poster option for Gotify ([#&#8203;3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa))
- *(overriderules)* Apply override rules to advanced requests ([#&#8203;2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a))
- *(settings)* Hide already requested media ([#&#8203;1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177))
- *(users)* Add search box for user lookup by username or email ([#&#8203;2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816))
- Add a demo feature ([#&#8203;3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca))
- Add support for custom plex metadata provider guid scheme in scanner ([#&#8203;3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83))

##### 🐛 Bug Fixes

- *(api)* Stop library reads from resetting enabled flags ([#&#8203;3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef))
- *(auth)* Refresh avatar on Quick Connect login ([#&#8203;3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8))
- *(datasource)* Break import cycle mistyping postgres timestamps ([#&#8203;3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd))
- *(datasource)* Register entities and subscribers explicitly ([#&#8203;3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6))
- *(db)* Remap leftover Overseerr DELETED status after migration ([#&#8203;3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8))
- *(db)* Drop stale auth unique on sqlite push subscriptions ([#&#8203;3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e))
- *(discover)* Fix tv title sorting and validate sortBy per media type ([#&#8203;3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058))
- *(jellyfin-api)* Update Authorization headers for Jellyfin ([#&#8203;3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a))
- *(login)* Hide quick connect button for emby servers ([#&#8203;3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787))
- *(override-rules)* Keep values set by advanced requesters ([#&#8203;3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443))
- *(override-rules)* Match default \*arr server by id ([#&#8203;3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b))
- *(plex)* Limit concurrent watchlist metadata requests ([#&#8203;3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d))
- *(request)* Render anime notice alert in a div instead of a p ([#&#8203;3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9))
- *(requests)* Serialize requests for the same title ([#&#8203;3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7))
- *(requests)* Stop editing a request from re-requesting covered seasons ([#&#8203;3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2))
- *(requests)* Enforce the quota when editing a request ([#&#8203;3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977))
- *(requests)* Skip seasons with no episodes when requesting all seasons ([#&#8203;2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b))
- *(requests)* Scope download status to requested seasons on request cards ([#&#8203;3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc))
- *(requests)* Serialize request creation per user ([#&#8203;3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd))
- *(requests)* Stop editing a request from stealing another's season ([#&#8203;3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc))
- *(requests)* Reset orphaned season statuses when a request is deleted ([#&#8203;3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54))
- *(requests)* Enforce pending and failed states on request routes ([#&#8203;3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e))
- *(scanner)* Confirm orphan candidates against the servers before declining ([#&#8203;3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0))
- *(server)* Respond instead of hanging on proxy route errors ([#&#8203;3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b))
- *(settings)* Mutate the query-string status key for modal immediately ([#&#8203;3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb))
- *(sonarr)* Apply configured series type to non-anime requests ([#&#8203;3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a))
- *(sonarr)* Decouple anime root folder routing from seriesType ([#&#8203;3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a))
- *(subscriber)* Keep issue comment lookups on the owning save's connection ([#&#8203;3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9))
- *(subscriber)* Keep request status updates on the owning save's connection ([#&#8203;3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c))
- *(tv)* Prevent phantom specials from blocking season request ([#&#8203;3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75))
- *(ui)* Stop the slideover backdrop flashing back on close ([#&#8203;3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4))
- *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#&#8203;3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555))
- *(ui)* Don't mark empty collections as available ([#&#8203;3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404))
- *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#&#8203;3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947))
- Fix empty discordId in comment webhooks ([#&#8203;3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b))
- Prevent hideAvailable/hideBlocklisted from filtering person results ([#&#8203;3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6))
- Stop masking connection failures across media server sync and login ([#&#8203;3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08))
- Keep library settings when renamed on media server ([#&#8203;3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5))
- Changes the suggested url from plex's "hosted" app ([#&#8203;3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e))

##### 📖 Documentation

- *(discord)* Document the Thread ID notification setting. ([#&#8203;3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29))
- *(docker)* Add cap-drop and security-opt to docker command ([#&#8203;3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa))
- Clarify ai disclosure policy further ([#&#8203;3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960))

##### ⚡ Performance

- Bound tmdb cache & split scan lookups into their own tier ([#&#8203;3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1))

##### 🚜 Refactor

- *(avatarproxy)* Remove unused auth header from avatarproxy ([#&#8203;3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652))
- *(ui)* Use the Radio component instead of RadioGroup.Option ([#&#8203;3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915))
- *(ui)* Use headlessui flat named exports ([#&#8203;3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de))

##### 🧪 Testing

- *(cypress)* Stop dirty restartRequired flag cascading across specs ([#&#8203;3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c))
- Block outbound HTTP in unit tests ([#&#8203;3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b))
- Add scanner update rate override for testing ([#&#8203;3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142))

##### ⚙️ Miscellaneous Tasks

- *(actions)* Update github actions ([#&#8203;3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9))
- *(actions)* Update github actions (major) ([#&#8203;3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04))
- *(actions)* Update github actions ([#&#8203;3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059))
- *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#&#8203;3541](seerr-team/seerr#3541)) - ([4fd0da0](seerr-team/seerr@4fd0da0))
- *(i18n)* Update translations from Weblate - ([68c5bc8](seerr-team/seerr@68c5bc8))
- *(i18n)* Update translations from Weblate - ([5f97227](seerr-team/seerr@5f97227))
- *(i18n)* Update translations from Weblate - ([5c04640](seerr-team/seerr@5c04640))
- *(i18n)* Update translations from Weblate - ([cc592e8](seerr-team/seerr@cc592e8))
- *(release)* Prepare v3.5.0 - ([e2f24cb](seerr-team/seerr@e2f24cb))
- *(release)* Prepare 3.5.0 release - ([cd0fb22](seerr-team/seerr@cd0fb22))
- Remove third party action dawidd6/action-download-artifact ([#&#8203;3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473))
- Fix release workflow verify attestation ([#&#8203;3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659))
- Exclude .pnpm-store from Docker build context ([#&#8203;3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7))

##### New Contributors ❤️

- [@&#8203;atilaszsz](https://github.com/atilaszsz) made their first contribution
- [@&#8203;aussierk](https://github.com/aussierk) made their first contribution
- [@&#8203;Xyerophyte](https://github.com/Xyerophyte) made their first contribution
- [@&#8203;Knat-Dev](https://github.com/Knat-Dev) made their first contribution
- [@&#8203;britsync07-prog](https://github.com/britsync07-prog) made their first contribution
- [@&#8203;MannXo](https://github.com/MannXo) made their first contribution
- [@&#8203;bartdelange](https://github.com/bartdelange) made their first contribution
- [@&#8203;Arul1998](https://github.com/Arul1998) made their first contribution
- [@&#8203;tuvokian](https://github.com/tuvokian) made their first contribution
- [@&#8203;peruzzof](https://github.com/peruzzof) made their first contribution
- [@&#8203;lichie567](https://github.com/lichie567) made their first contribution
- [@&#8203;samtheruby](https://github.com/samtheruby) made their first contribution

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Paris)

- 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 [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/2215
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.

Quick connect should be hidden when using Emby

6 participants