Skip to content

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

Merged
fallenbagel merged 3 commits into
developfrom
fix/test-file-entity-loading
Aug 31, 2026
Merged

fallenbagel merged 3 commits into
developfrom
fix/test-file-entity-loading

Conversation

@fallenbagel

@fallenbagel fallenbagel commented Aug 12, 2026 •

Copy link
Copy Markdown
Member

Description

TypeORM entities and subscribers load from directory globs over every .ts file under server/entity and server/subscriber. While it is harmless today since neither folder has a test file, but drop one in and requiring it runs the module body, which calls setupTestDb() again. That registers a second root before and beforeEach after the runner already built its tree, so two schema rebuilds collide on the single in-memory sqlite connection: "cannot start a transaction within a transaction," every test cancelled, nothing in the failure pointing at the actual file or the actual error.

Production is worse. build:server compiles every .ts under server, test files included, and production loads dist/entity/**/*.js, so a compiled test file there runs its module body at boot. seedTestDb calls dropDatabase() on the shared dataSource with no check on which database it's pointing at, then rebuilds the schema and seeds admin@seerr.dev with Permission.ADMIN and a hardcoded bcrypt hash. I confirmed this against a throwaway sqlite file under NODE_ENV=production and it dropped a table I'd put there first, rebuilt 15 tables, and left those two accounts behind.

Important

No released version is affected. No tag ships a test file under dist/entity or dist/subscriber, so there's nothing to fix or disclose.

Now, seedTestDb and resetTestDb refuse to run unless NODE_ENV is test. cypress:prepare, now opts in via seedTestDb({ allowOutsideTest: true }). This deny-unless-permitted was added because a plain node process with no NODE_ENV set resolves to devConfig against config/db/db.sqlite3, someone's real database if they're running from source.

In addition, build:server points at a new server/tsconfig.build.json that excludes *.test.ts, so dist stops shipping the compiled test files it currently produces. Config was separated because because typecheck:server is the only thing type checking those files, and the root tsconfig covers src only and excluding at the base would've silently dropped the files from CI.

Lastly, typeORM gets the entity and subscriber classes directly instead of globs, which also drops the duplicated ts/js patterns across the five config variants. Narrowing the globs to skip *.test.ts would achieve the same thing provided the files named are named that way in directories and a differently named test file, a helper, or a newly globbed directory brings the whole thing back. Classes mean nothing is matched by pattern, at the cost of a list to keep current, forget to add an entity and it throws EntityMetadataNotFoundError the first time its repository is used anyways. Much more safer this way. Migrations stay globbed.

How Has This Been Tested?

  • Checked the dist if the test files were carried after build
  • Checked if the tests still run
  • Checked if entities and subscribers were properly loaded.

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

    • Improved database configuration reliability across supported environments.
    • Added configurable PostgreSQL connection timeouts, defaulting to 30 seconds.
    • Prevented accidental test database seeding or resets outside test environments.
  • Build

    • Updated server builds to exclude test files from production compilation.
  • Tests

    • Added coverage verifying safeguards against unsafe test database operations.

Copilot AI lite review requested due to automatic review settings August 12, 2026 05:25
@coderabbitai

coderabbitai Bot commented Aug 12, 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: 0002995b-6a21-4eb8-aff0-b998dc72b1a2

📥 Commits

Reviewing files that changed from the base of the PR and between 4d414ba and da2175a.

📒 Files selected for processing (1)
  • package.json

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The change adds explicit server build settings, shared database entity and subscriber registration, configurable PostgreSQL connection timeouts, and safeguards for test database mutations outside test mode.

Changes

Database build and test safety

Layer / File(s) Summary
Explicit database build and registration
server/tsconfig.build.json, server/datasource.ts, package.json
The server build excludes test files. Data sources use shared entity and subscriber arrays. PostgreSQL configurations read DB_CONNECT_TIMEOUT_MS with a 30-second default. node-cache is removed.
Test database environment guard
server/utils/seedTestDb.ts, server/scripts/prepareTestDb.ts, server/utils/seedTestDb.test.ts
Seeding and resetting reject execution outside NODE_ENV=test unless seeding receives allowOutsideTest. Tests verify the rejection behavior and restore the environment.

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

Merge Risk: ⚪ Minimal · up to da217

The change explicitly registers datasource entities and subscribers, excludes test files from server builds, and guards destructive test-database operations outside test mode; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: 0xsysr3ll, danshilm

Sequence Diagram(s)

sequenceDiagram
  participant prepareTestDb
  participant seedTestDb
  participant assertTestDatabase
  prepareTestDb->>seedTestDb: Call with allowOutsideTest: true
  seedTestDb->>assertTestDatabase: Validate runtime environment
  assertTestDatabase-->>seedTestDb: Allow seeding or throw
  seedTestDb-->>prepareTestDb: Complete database preparation
Loading

Poem

A rabbit checks the database gate

Test mode opens; production must wait
Shared entities hop into line
Timeouts tick for thirty seconds fine
Safe seeds now burrow straight

🚥 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 and concisely describes the primary datasource change: explicit registration of entities and subscribers instead of filesystem globs.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@fallenbagel fallenbagel changed the title fix/test file entity loading fix(requests): stop editing a request from stealing another's season Aug 12, 2026
@fallenbagel fallenbagel changed the title fix(requests): stop editing a request from stealing another's season fix(datasource): don't load test files as entities Aug 12, 2026

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 hardens and stabilizes the server’s test database setup and TypeORM entity/subscriber loading, while keeping server builds free of test-only files.

Changes:

  • Added an explicit NODE_ENV === 'test' guard to prevent accidental destructive seeding/resets, with an opt-in escape hatch for tooling.
  • Replaced TypeORM glob-based entity/subscriber discovery with explicit imports to ensure consistent entity loading.
  • Updated the server build config to exclude *.test.ts and adjusted build:server to use the new build tsconfig.

Reviewed changes

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

Show a summary per file
File Description
server/utils/seedTestDb.ts Adds a safety guard for destructive test DB operations and an opt-in override.
server/utils/seedTestDb.test.ts Adds unit tests for the test DB guard behavior.
server/tsconfig.build.json New build tsconfig excluding *.test.ts from server compilation output.
server/scripts/prepareTestDb.ts Opts into seeding outside NODE_ENV=test for Cypress preparation.
server/datasource.ts Switches entity/subscriber loading from glob strings to explicit imports/arrays.
package.json Updates build:server to use server/tsconfig.build.json (and matching tsc-alias).

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

Comment thread server/utils/seedTestDb.test.ts Resolved
@cypress

cypress Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

seerr    Run #3659

Run Properties:  status check passed Passed #3659  •  git commit 0f79ee663c: fix(datasource): register entities and subscribers explicitly (#3375)
Project seerr
Branch Review develop
Run status status check passed Passed #3659
Run duration 02m 13s
Commit git commit 0f79ee663c: fix(datasource): register entities and subscribers explicitly (#3375)
Committer fallenbagel
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 1
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 33
View all changes introduced in this branch ↗︎

@fallenbagel
fallenbagel force-pushed the fix/test-file-entity-loading branch from a34e853 to 8dbc244 Compare August 12, 2026 05:54
Copilot AI review requested due to automatic review settings August 12, 2026 05:54

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 7 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (2)

src/components/Settings/SettingsNetwork/index.tsx:179

  • checkUpdateAvailable=false may not actually disable update checks because Express query values are strings; on the server, /status treats any defined value as checkUpdate and then uses if (checkUpdate), so the string 'false' is truthy. This means the request keyed by this URL can still trigger GitHub update checking (and related rate limiting). Consider parsing req.query.checkUpdateAvailable as a real boolean server-side (e.g., === 'true'), or change the client/server contract to use a falsy value.
              // the key StatusChecker polls on, so the restart modal shows at once
              mutate('/api/v1/status?checkUpdateAvailable=false');

server/utils/seedTestDb.ts:27

  • The new guard error message says it "drops every table", but seedTestDb can be called with preserveDb: true and then it won’t drop the DB. Also, including the current NODE_ENV value would make the failure easier to diagnose in CI/automation.
  throw new Error(
    `Refusing to ${operation} while NODE_ENV is not test: this drops every table and seeds accounts with a known password.`
  );

@fallenbagel
fallenbagel marked this pull request as ready for review August 12, 2026 06:12
@fallenbagel
fallenbagel requested a review from a team as a code owner August 12, 2026 06:12
@fallenbagel fallenbagel added this to the v3.5.0 milestone Aug 12, 2026
Copilot AI review requested due to automatic review settings August 25, 2026 20:04
@fallenbagel
fallenbagel force-pushed the fix/test-file-entity-loading branch from 8dbc244 to 4d414ba Compare August 25, 2026 20:04

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 26, 2026 12:56
@fallenbagel
fallenbagel force-pushed the fix/test-file-entity-loading branch from 4d414ba to 31f3e2d Compare August 26, 2026 12:56

This comment was marked as spam.

@fallenbagel fallenbagel changed the title fix(datasource): don't load test files as entities fix(datasource): register entities and subscribers explicitly Aug 27, 2026
seedTestDb and resetTestDb operate on the shared dataSource, which points
at whatever NODE_ENV selects, and neither checked where it was pointing
before dropping every table and seeding an admin account with a hardcoded
password hash. Both now refuse unless NODE_ENV is test or ALLOW_DB_RESET
is set, which cypress:prepare passes because it seeds the on-disk dev
database on purpose.
The build compiled every .ts under server, so twelve test files shipped in
dist. Anything under dist/entity or dist/subscriber gets loaded by the
production entity and subscriber globs, which means a test file in one of
those directories would run at boot. The build now uses its own tsconfig
that excludes *.test.ts, while typecheck:server keeps using the base
config so the test files are still type checked.
The entity and subscriber options were globs over a whole directory, so
every file in server/entity and server/subscriber was required at
initialize, test files included. A test file there would run its module
body inside any process that opens the datasource, including a production
boot. Both options now take the classes directly, which also removes the
duplicate ts and js patterns across the five config variants. Migrations
stay globbed since they are ordered by filename and there are hundreds of
them.
Copilot AI review requested due to automatic review settings August 30, 2026 20:50
@fallenbagel
fallenbagel force-pushed the fix/test-file-entity-loading branch from 31f3e2d to da2175a Compare August 30, 2026 20:50

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@fallenbagel
fallenbagel merged commit 0f79ee6 into develop Aug 31, 2026
20 checks passed
@fallenbagel
fallenbagel deleted the fix/test-file-entity-loading branch August 31, 2026 00:23
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.

4 participants