Skip to content

feat(settings): hide already requested media - #1855

Merged
fallenbagel merged 7 commits into
seerr-team:developfrom
0xSysR3ll:feat-hide-requested-media
Sep 7, 2026
Merged

fallenbagel merged 7 commits into
seerr-team:developfrom
0xSysR3ll:feat-hide-requested-media

Conversation

@0xSysR3ll

@0xSysR3ll 0xSysR3ll commented Aug 18, 2025 •

Copy link
Copy Markdown
Member

Description

This PR introduces a new setting that allows users to hide media that has been requested but is not yet available from the "Discover" home page and related categories.

How Has This Been Tested?

Screenshots / Logs (if applicable)

image

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)

Issues Fixed or Closed

Summary by CodeRabbit

  • New Features
    • Added a “Hide Requested Media” toggle in Settings to hide requested-but-not-yet-available movie/TV items across Discover, Recommended, Similar, and media detail browsing; it’s off by default. Requested items remain searchable.
  • Documentation
    • Added documentation explaining the new Hide Requested Media behavior and its coverage.
  • Localization
    • Added the UI label and tooltip text for the new setting.

@gauthier-th gauthier-th mentioned this pull request Sep 10, 2025
@github-actions github-actions Bot added the merge conflict Cannot merge due to merge conflicts label Oct 6, 2025
@github-actions

github-actions Bot commented Oct 6, 2025

Copy link
Copy Markdown

This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.

@0xSysR3ll
0xSysR3ll force-pushed the feat-hide-requested-media branch from 6510445 to 4974f31 Compare October 8, 2025 17:10
@0xSysR3ll
0xSysR3ll requested a review from a team as a code owner October 8, 2025 17:10
@github-actions github-actions Bot removed the merge conflict Cannot merge due to merge conflicts label Oct 8, 2025
@github-actions

Copy link
Copy Markdown

This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.

@github-actions github-actions Bot added the merge conflict Cannot merge due to merge conflicts label Oct 30, 2025
@Altheran88

Copy link
Copy Markdown

@0xSysR3ll would you be willing to resolve the merge conflicts so it can be merged ? :) Thanks a lot for your contribution !

@0xSysR3ll

0xSysR3ll commented Nov 10, 2025 •

Copy link
Copy Markdown
Member Author

@0xSysR3ll would you be willing to resolve the merge conflicts so it can be merged ? :) Thanks a lot for your contribution !

I could, but since we're currently in feature freeze, it's not relevant at the moment.
Don’t worry - this will be merged once the merger is complete. :)

@0xSysR3ll
0xSysR3ll force-pushed the feat-hide-requested-media branch from 4974f31 to ed467b7 Compare March 5, 2026 20:39
@github-actions github-actions Bot removed the merge conflict Cannot merge due to merge conflicts label Mar 5, 2026
@coderabbitai

coderabbitai Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds the hideRequested setting across backend and frontend contracts, defaults, UI, and documentation. Discovery-related views filter requested but unavailable media when enabled, while search remains available.

Changes

Hide requested media setting

Layer / File(s) Summary
Settings contract and defaults
server/lib/settings/index.ts, server/interfaces/api/settingsInterfaces.ts, seerr-api.yml, src/context/SettingsContext.tsx, src/pages/_app.tsx
Defines hideRequested, defaults it to false, propagates it through public settings, and adds it to the API schema and client defaults.
Settings UI and documentation
src/components/Settings/SettingsMain/index.tsx, src/i18n/locale/en.json, docs/using-seerr/settings/general.md
Adds the checkbox, submission field, translations, and documentation for hiding requested media.
Request-aware media filtering
server/entity/Media.ts, src/hooks/useDiscover.ts, src/components/MediaSlider/index.tsx, src/components/Search/index.tsx
Loads active request state and filters requested movie and TV titles when enabled, while search opts out of the filter.

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

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant SettingsUI
    participant SettingsAPI
    participant Discover
    participant MediaGetRelatedMedia
    participant Filter

    User->>SettingsUI: Enable hideRequested
    SettingsUI->>SettingsAPI: Submit hideRequested=true
    SettingsAPI-->>SettingsUI: Return updated settings
    Discover->>MediaGetRelatedMedia: Fetch related media
    MediaGetRelatedMedia-->>Discover: Return hasActiveRequest state
    Discover->>Filter: Remove requested movie and TV titles
    Filter-->>Discover: Return filtered titles
Loading

Possibly related PRs

  • seerr-team/seerr#3191: Changes request status handling used to determine whether media requests remain active.
  • seerr-team/seerr#3264: Implements the same hide-requested-media setting and related filtering behavior.

Suggested reviewers: gauthier-th, fallenbagel

Poem

🐰 Requests wait behind the screen,
Discovery stays neat and clean.
Search still finds each queued delight,
A checkbox hides them from sight.

🚥 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 matches the main change: adding support to hide already requested media.
Linked Issues check ✅ Passed The PR implements the requested discovery-page filtering for already requested media and keeps search results visible.
Out of Scope Changes check ✅ Passed The changes stay focused on the new hide-requested setting, related filtering, and supporting UI/API/schema updates.

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.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/hooks/useDiscover.ts (1)

16-19: Consider improving type precision for requests.

The requests field is typed as unknown[], but based on the server entity (server/entity/Media.ts), this is actually MediaRequest[]. While unknown[] works since only .length is accessed, a more precise type would improve maintainability if future code needs to access request properties.

🔧 Suggested type refinement
 interface BaseMedia {
   id: number;
   mediaType: string;
   mediaInfo?: {
     status: MediaStatus;
-    requests?: unknown[];
+    requests?: { length: number }[];
   };
 }

Alternatively, if MediaRequest is importable from @server/entity/Media, a full type could be used.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/hooks/useDiscover.ts` around lines 16 - 19, The mediaInfo.requests
property is typed too loosely as unknown[]; change its type to MediaRequest[]
(importing MediaRequest from `@server/entity/Media`) so the mediaInfo definition
in useDiscover.ts becomes mediaInfo?: { status: MediaStatus; requests?:
MediaRequest[]; } to improve type safety and future property access.
🤖 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/MediaSlider/index.tsx`:
- Around line 85-94: The filter in titles.filter incorrectly requires
(i.mediaType === 'movie' || i.mediaType === 'tv') for all entries, which drops
person results when settings.currentSettings.hideRequested is true; change the
predicate to explicitly allow person entries through (e.g., (i.mediaType ===
'person') || ((i.mediaType === 'movie' || i.mediaType === 'tv') &&
(i.mediaInfo?.status === MediaStatus.AVAILABLE || i.mediaInfo?.status ===
MediaStatus.PARTIALLY_AVAILABLE || !i.mediaInfo?.requests ||
i.mediaInfo.requests.length === 0))). Keep the null-safe accesses (i.mediaInfo?)
and use the existing symbols settings.currentSettings.hideRequested,
titles.filter, mediaType, MediaStatus, and mediaInfo to locate and update the
code.

---

Nitpick comments:
In `@src/hooks/useDiscover.ts`:
- Around line 16-19: The mediaInfo.requests property is typed too loosely as
unknown[]; change its type to MediaRequest[] (importing MediaRequest from
`@server/entity/Media`) so the mediaInfo definition in useDiscover.ts becomes
mediaInfo?: { status: MediaStatus; requests?: MediaRequest[]; } to improve type
safety and future property access.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7cd9fd0b-4b5d-4007-aff4-907919a1d6bd

📥 Commits

Reviewing files that changed from the base of the PR and between e25c1a5 and ed467b7.

📒 Files selected for processing (11)
  • docs/using-seerr/settings/general.md
  • seerr-api.yml
  • server/entity/Media.ts
  • server/interfaces/api/settingsInterfaces.ts
  • server/lib/settings/index.ts
  • src/components/MediaSlider/index.tsx
  • src/components/Search/index.tsx
  • src/components/Settings/SettingsMain/index.tsx
  • src/context/SettingsContext.tsx
  • src/hooks/useDiscover.ts
  • src/pages/_app.tsx

Comment thread src/components/MediaSlider/index.tsx 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

Adds a new main setting to optionally hide requested-but-unavailable media from Discover surfaces (home “Discover” and related recommendation/similar lists), while keeping requested items visible in search.

Changes:

  • Introduces hideRequested in server/public settings and wires it through the Settings UI.
  • Implements client-side filtering in useDiscover and MediaSlider based on requested state.
  • Updates docs, OpenAPI schema, and English locale strings for the new option.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/pages/_app.tsx Adds hideRequested to initial public settings fallback.
src/i18n/locale/en.json Adds English strings for the new toggle + tooltip.
src/hooks/useDiscover.ts Adds hideRequested option and filtering logic for discover-style queries.
src/context/SettingsContext.tsx Adds hideRequested to default settings context.
src/components/Settings/SettingsMain/index.tsx Adds the “Hide Requested Media” checkbox and includes it in save payload.
src/components/Search/index.tsx Explicitly disables requested filtering for search results.
src/components/MediaSlider/index.tsx Adds requested filtering for slider-based lists.
server/lib/settings/index.ts Adds hideRequested to settings models, defaults, and public settings exposure.
server/interfaces/api/settingsInterfaces.ts Extends PublicSettingsResponse with hideRequested.
server/entity/Media.ts Loads media.requests in getRelatedMedia to support requested detection.
seerr-api.yml Adds hideRequested to the documented MainSettings schema.
docs/using-seerr/settings/general.md Documents the new setting and expected behavior.

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

Comment thread src/hooks/useDiscover.ts Resolved
Comment thread src/hooks/useDiscover.ts Resolved
Comment thread src/components/MediaSlider/index.tsx Resolved
Comment thread server/entity/Media.ts Resolved
@0xSysR3ll 0xSysR3ll changed the title feat(settings): add 'Hide Requested Media' option to settings feat(settings): hide already requested media Jun 18, 2026
@Asinin3

Asinin3 commented Jun 18, 2026

Copy link
Copy Markdown

Could this also hide previously requested and available content that is now unavailable?

Would be nice for hiding content you grabbed them deleted without having to manually add to a blocklist

@andersennl

Copy link
Copy Markdown

Thanks for working on this. I’d really like to see this feature land. I noticed the PR is still open and has a few unresolved review comments from March. Is this still planned, and is there anything specific blocking it? I’d be happy to help test it if that would be useful.

@0xSysR3ll

Copy link
Copy Markdown
Member Author

Thanks for working on this. I’d really like to see this feature land. I noticed the PR is still open and has a few unresolved review comments from March. Is this still planned, and is there anything specific blocking it? I’d be happy to help test it if that would be useful.

Hello,

This is still planned. As you may have noticed, I'm a member of the Seerr team so I've been busy with other stuff (including PRs) – like the rest of the team.

I'll get back to this as soon as I can, and we'll review it once it's ready.

@andersennl

andersennl commented Jul 21, 2026 •

Copy link
Copy Markdown

Thanks for working on this. I’d really like to see this feature land. I noticed the PR is still open and has a few unresolved review comments from March. Is this still planned, and is there anything specific blocking it? I’d be happy to help test it if that would be useful.

Hello,

This is still planned. As you may have noticed, I'm a member of the Seerr team so I've been busy with other stuff (including PRs) – like the rest of the team.

I'll get back to this as soon as I can, and we'll review it once it's ready.

Hi, thanks for getting back to me. I didn't realize you were on the Seerr team when I first asked.

Quick heads-up: not knowing whether this PR was still active, I opened a separate one in the meantime and reused part of your work (credited in my PR).

Since you're clearly the right person to land this, I'm happy to defer to you. If anything in my version is useful, you're welcome to take it. Otherwise just say the word and I'll close mine so we don't have two open. Whatever's easiest for you.

@0xSysR3ll

Copy link
Copy Markdown
Member Author

Quick heads-up: not knowing whether this PR was still active, I opened a separate one in the meantime and reused part of your work (credited in my PR).

FYI, a PR is considered as stale after 30 days of inactivity and a label is applied to it.

Since you're clearly the right person to land this, I'm happy to defer to you. If anything in my version is useful, you're welcome to take it. Otherwise just say the word and I'll close mine so we don't have two open. Whatever's easiest for you.

I saw your PR (thanks for the credit btw) but I'll take over this PR and have a look at what you added.
You can close yours.
Thanks for the contribution, though! 🙂

Comment thread server/entity/Media.ts Resolved
@fallenbagel

Copy link
Copy Markdown
Member

Unrelated to this PR, but noticed while reviewing that you added a commit to drop non-movie/tv results. So i thought of checking the existing hideAvailable/hideBlocklisted filters in useDiscover and MediaSlider use (mediaType === 'movie' || mediaType === 'tv') && status !== .., which drops non-movie/tv results (e.g. person) entirely when those settings are on, since the whole condition is false for anything else. This PR's hideRequested filter actually handles it correctly with an early return true for other types.

Just thought of noting this, as seems worth a follow-up to align the other two filters with the same pattern. Let me actually file an issue for it

This PR introduces a new setting that allows users to hide media that has been requested but is not yet available from the "Discover" home page and related categories.

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
…tter type safety

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
…y status

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
@0xSysR3ll
0xSysR3ll force-pushed the feat-hide-requested-media branch from c8d0914 to 69233d3 Compare August 27, 2026 13:10

@fallenbagel fallenbagel left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Lgtm

@seerr-automation-bot seerr-automation-bot added this to the v3.5.0 milestone Sep 7, 2026

@gauthier-th gauthier-th left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

At some point we should add a mechanism to fetch more items for sliders.
With the blocklist feature and this one, we could have sliders with very few items.

@fallenbagel

Copy link
Copy Markdown
Member

At some point we should add a mechanism to fetch more items for sliders.
With the blocklist feature and this one, we could have sliders with very few items.

True. Could be a follow up to this

@fallenbagel
fallenbagel merged commit 6f5a177 into seerr-team:develop Sep 7, 2026
15 checks passed
tehsu added a commit to tehsu/seerr that referenced this pull request Sep 12, 2026
…mary media server (#12)

* fix(subscriber): keep request status updates on the owning save's connection (seerr-team#3366)

* fix(override-rules): match default *arr server by id (seerr-team#3428)

* fix(ui): don't mark empty collections as available (seerr-team#3431)

* feat(users): add search box for user lookup by username or email (seerr-team#2482)

Co-authored-by: 0xsysr3ll <0xsysr3ll@pm.me>
Co-authored-by: Arul1998 <arulcornelious@gmail.com>

* perf: bound tmdb cache & split scan lookups into their own tier (seerr-team#3367)

* feat(notifications): add support for ntfy.sh tags (seerr-team#3350)

Co-authored-by: Bart de Lange <b.delange@vgz.nl>
Co-authored-by: 0xsysr3ll <31414959+0xSysR3ll@users.noreply.github.com>

* feat(api): send a Seerr user agent on outbound requests (seerr-team#3395)

* fix(settings): mutate the query-string status key for modal immediately (seerr-team#3432)

* fix: prevent hideAvailable/hideBlocklisted from filtering person results (seerr-team#3434)

Co-authored-by: mdsaimon1232 <mdsaimon552723@gmail.com>

* fix(discover): fix tv title sorting and validate sortBy per media type (seerr-team#3305)

* fix(datasource): register entities and subscribers explicitly (seerr-team#3375)

* chore(i18n): update translations from Weblate

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <dtalens@users.noreply.translate.seerr.dev>

* fix(ui): stop appear leaking onto the DOM in Modal and SlideOver (seerr-team#3446)

* fix(datasource): break import cycle mistyping postgres timestamps (seerr-team#3449)

* chore(deps): upgrade @headlessui/react to 2.2.10  (seerr-team#3450)

* fix(ui): stop the slideover backdrop flashing back on close (seerr-team#3451)

* refactor(ui): use headlessui flat named exports (seerr-team#3453)

* refactor(ui): use the Radio component instead of RadioGroup.Option (seerr-team#3454)

* fix(tv): prevent phantom specials from blocking season request (seerr-team#3351)

* fix(db): drop stale auth unique on sqlite push subscriptions (seerr-team#3391)

* fix(requests): enforce pending and failed states on request routes (seerr-team#3385)

* ci(actions): update github actions (seerr-team#3306)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(i18n): update translations from Weblate

Co-authored-by: Bas Trebus <bas.trebus@maastrichtuniversity.nl>
Co-authored-by: Gallyam <gallyamb@gmail.com>
Co-authored-by: Mateusz Lesiak <mateusz.lesiak01@gmail.com>
Co-authored-by: Miguel Pacheco <runway-venus-kung@duck.com>
Co-authored-by: Nils Karlsson Pyssling <nisse@users.noreply.translate.seerr.dev>
Co-authored-by: Samuel <samuelsilveira100@gmail.com>
Co-authored-by: SulliL <susu.leduc@gmail.com>
Co-authored-by: Thadah D. Denyse <thadahdenyse@protonmail.com>
Co-authored-by: Ulrik J <ulrikj@users.noreply.translate.seerr.dev>
Co-authored-by: Ustinov Mokei Iosipovich <niktonikto150@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <dtalens@users.noreply.translate.seerr.dev>
Co-authored-by: shaper868 <devilofdark485@gmail.com>
Co-authored-by: ugyes <ferenc.bodi@live.com>

* fix: fix empty discordId in comment webhooks (seerr-team#3467)

* fix(requests): reset orphaned season statuses when a request is deleted (seerr-team#3279)

* fix(requests): stop editing a request from stealing another's season (seerr-team#3376)

* fix(requests): serialize request creation per user (seerr-team#3377)

* docs(docker): add cap-drop and security-opt to docker command (seerr-team#3472)

* fix(requests): scope download status to requested seasons on request cards (seerr-team#3412)

* ci(actions): update github actions (major) (seerr-team#3471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update database (seerr-team#3458)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* ci(actions): update github actions (seerr-team#3478)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(i18n): update translations from Weblate

Co-authored-by: Kisnov <gabrielmarfil0@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>

* feat(settings): hide already requested media (seerr-team#1855)

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>

* chore(i18n): update translations from Weblate

Co-authored-by: Serhiy <sergey.bobrov83@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <dtalens@users.noreply.translate.seerr.dev>

* fix(requests): skip seasons with no episodes when requesting all seasons (seerr-team#2698)

Co-authored-by: Xyerophyte <Xyerophyte@users.noreply.github.com>

* docs(helm): fix documentation regarding chart signature verification (seerr-team#3420)

Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>

* fix(jellyfin-api): update Authorization headers for Jellyfin (seerr-team#3502)

* feat(auth): allow signing in with Jellyfin and Emby alongside the primary media server

Admins can now enable additional Jellyfin and/or Emby servers for sign-in under
Settings → Users, next to the primary media server (for example a Jellyfin
server alongside a Plex primary). These servers are only used for
authentication; libraries and availability keep coming from the primary server.

- The sign-in page offers every enabled method: the primary media server, the
  local account, and each additional server, with the Plex button alongside.
- POST /auth/jellyfin accepts a serverType and authenticates against the
  matching additional server, creating Jellyfin/Emby users with the default
  permissions (respecting the "new sign-in" setting).
- Quick Connect targets the additional Jellyfin server when the primary is not
  Jellyfin.
- Avatars are fetched from the server a user belongs to, and logout skips device
  cleanup for servers Seerr holds no API key for.
- Connection details of an enabled server are verified when saving.
- LabeledCheckbox now labels its own checkbox instead of always "localLogin".

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0165jYqnoUdK9rr5aSvmLPX4

---------

Signed-off-by: 0xsysr3ll <0xsysr3ll@pm.me>
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
Co-authored-by: fallenbagel <98979876+fallenbagel@users.noreply.github.com>
Co-authored-by: Austin Rikley <newsdecentralized@gmail.com>
Co-authored-by: 0xsysr3ll <31414959+0xSysR3ll@users.noreply.github.com>
Co-authored-by: Arul Cornelious <65539155+Arul1998@users.noreply.github.com>
Co-authored-by: 0xsysr3ll <0xsysr3ll@pm.me>
Co-authored-by: Arul1998 <arulcornelious@gmail.com>
Co-authored-by: Bart de Lange <32978882+bartdelange@users.noreply.github.com>
Co-authored-by: Bart de Lange <b.delange@vgz.nl>
Co-authored-by: Parman Mohammadalizadeh <prmma23@gmail.com>
Co-authored-by: Musfiqur Rahman Saimon <britsync07@gmail.com>
Co-authored-by: mdsaimon1232 <mdsaimon552723@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <dtalens@users.noreply.translate.seerr.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Bas Trebus <bas.trebus@maastrichtuniversity.nl>
Co-authored-by: Gallyam <gallyamb@gmail.com>
Co-authored-by: Mateusz Lesiak <mateusz.lesiak01@gmail.com>
Co-authored-by: Miguel Pacheco <runway-venus-kung@duck.com>
Co-authored-by: Nils Karlsson Pyssling <nisse@users.noreply.translate.seerr.dev>
Co-authored-by: Samuel <samuelsilveira100@gmail.com>
Co-authored-by: SulliL <susu.leduc@gmail.com>
Co-authored-by: Thadah D. Denyse <thadahdenyse@protonmail.com>
Co-authored-by: Ulrik J <ulrikj@users.noreply.translate.seerr.dev>
Co-authored-by: Ustinov Mokei Iosipovich <niktonikto150@gmail.com>
Co-authored-by: shaper868 <devilofdark485@gmail.com>
Co-authored-by: ugyes <ferenc.bodi@live.com>
Co-authored-by: Dor Peled <dor.peled@coralogix.com>
Co-authored-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
Co-authored-by: Kisnov <gabrielmarfil0@gmail.com>
Co-authored-by: Serhiy <sergey.bobrov83@gmail.com>
Co-authored-by: Harsh Abasaheb Chavan <99984066+Xyerophyte@users.noreply.github.com>
Co-authored-by: Xyerophyte <Xyerophyte@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
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
danbryan added a commit to bryanlabs/seerr that referenced this pull request Oct 22, 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.

Filter requested content from Discovery

8 participants