Repository navigation
fix: stop masking connection failures across media server sync and login - #3324
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
14bbf72 to
7c9d87d
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors the setup/media-server settings screens to reduce redundant SWR traffic and ensure the Setup “Continue” gate reflects the current SWR cache (instead of manual validation callbacks/state).
Changes:
- Stop constant 1s polling of
/settings/{plex,jellyfin}/syncby makingrefreshIntervalconditional onrunning. - Remove the Setup-time double-fetch by subscribing Setup to the same SWR settings key as the settings components (dropping
validateLibraries/onCompletecallback wiring). - Introduce a dedicated
isSetupSettingsprop forSettingsPlex(matching the existing Jellyfin pattern), avoiding use of a callback prop as a mode flag.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/i18n/locale/en.json | Removes an unused Setup validation error string. |
| src/components/Setup/index.tsx | Switches Setup “Continue” gating to derive from SWR-cached media server settings (removes callback-driven validation). |
| src/components/Settings/SettingsPlex.tsx | Adds isSetupSettings prop and changes sync polling to be conditional on running. |
| src/components/Settings/SettingsJellyfin.tsx | Removes onComplete callback usage and changes sync polling to be conditional on running. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7c9d87d to
39b9566
Compare
39b9566 to
04a45d0
Compare
The loading guard required dataTautulli but only checked the Plex error, so a failed Tautulli request would leave the spinner up indefinitely in both setup and normal settings. Setup hides the Tautulli section entirely, so the request is skipped there rather than awaited.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
server/api/jellyfin.ts:418
- In the getLibraries fallback, any HTTP error from the /Views request (e.response present, e.g. 500) currently returns an empty array. Callers then interpret this as “no libraries” and may surface SYNC_ERROR_NO_LIBRARIES, masking real server/API failures. Consider throwing an ApiError for response errors so upstream can distinguish “request failed” from “no libraries found.”
if (!e.response) {
throw new ApiError(502, ApiErrorCode.ConnectionError);
}
return [];
src/components/Setup/index.tsx:85
- mediaServerSettingsComplete is derived only from the last known libraries data. If SWR has cached data but the current revalidation errored (mediaServerSettingsError), the Setup “Continue” gate can still be treated as complete even though libraries failed to load. Folding the error state into the completeness calculation keeps the gate consistent with the inline error alert.
const mediaServerSettingsComplete = !!mediaServerSettings?.libraries?.some(
(library) => library.enabled
);
….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 ([#​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 ([#​3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20)) - *(notifications)* Add support for ntfy.sh tags ([#​3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10)) - *(notifications)* Add embed poster option for Gotify ([#​3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa)) - *(overriderules)* Apply override rules to advanced requests ([#​2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a)) - *(settings)* Hide already requested media ([#​1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177)) - *(users)* Add search box for user lookup by username or email ([#​2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816)) - Add a demo feature ([#​3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca)) - Add support for custom plex metadata provider guid scheme in scanner ([#​3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83)) ##### 🐛 Bug Fixes - *(api)* Stop library reads from resetting enabled flags ([#​3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef)) - *(auth)* Refresh avatar on Quick Connect login ([#​3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8)) - *(datasource)* Break import cycle mistyping postgres timestamps ([#​3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd)) - *(datasource)* Register entities and subscribers explicitly ([#​3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6)) - *(db)* Remap leftover Overseerr DELETED status after migration ([#​3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8)) - *(db)* Drop stale auth unique on sqlite push subscriptions ([#​3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e)) - *(discover)* Fix tv title sorting and validate sortBy per media type ([#​3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058)) - *(jellyfin-api)* Update Authorization headers for Jellyfin ([#​3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a)) - *(login)* Hide quick connect button for emby servers ([#​3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787)) - *(override-rules)* Keep values set by advanced requesters ([#​3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443)) - *(override-rules)* Match default \*arr server by id ([#​3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b)) - *(plex)* Limit concurrent watchlist metadata requests ([#​3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d)) - *(request)* Render anime notice alert in a div instead of a p ([#​3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9)) - *(requests)* Serialize requests for the same title ([#​3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7)) - *(requests)* Stop editing a request from re-requesting covered seasons ([#​3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2)) - *(requests)* Enforce the quota when editing a request ([#​3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977)) - *(requests)* Skip seasons with no episodes when requesting all seasons ([#​2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b)) - *(requests)* Scope download status to requested seasons on request cards ([#​3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc)) - *(requests)* Serialize request creation per user ([#​3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd)) - *(requests)* Stop editing a request from stealing another's season ([#​3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc)) - *(requests)* Reset orphaned season statuses when a request is deleted ([#​3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54)) - *(requests)* Enforce pending and failed states on request routes ([#​3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e)) - *(scanner)* Confirm orphan candidates against the servers before declining ([#​3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0)) - *(server)* Respond instead of hanging on proxy route errors ([#​3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b)) - *(settings)* Mutate the query-string status key for modal immediately ([#​3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb)) - *(sonarr)* Apply configured series type to non-anime requests ([#​3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a)) - *(sonarr)* Decouple anime root folder routing from seriesType ([#​3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a)) - *(subscriber)* Keep issue comment lookups on the owning save's connection ([#​3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9)) - *(subscriber)* Keep request status updates on the owning save's connection ([#​3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c)) - *(tv)* Prevent phantom specials from blocking season request ([#​3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75)) - *(ui)* Stop the slideover backdrop flashing back on close ([#​3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4)) - *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#​3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555)) - *(ui)* Don't mark empty collections as available ([#​3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404)) - *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#​3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947)) - Fix empty discordId in comment webhooks ([#​3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b)) - Prevent hideAvailable/hideBlocklisted from filtering person results ([#​3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6)) - Stop masking connection failures across media server sync and login ([#​3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08)) - Keep library settings when renamed on media server ([#​3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5)) - Changes the suggested url from plex's "hosted" app ([#​3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e)) ##### 📖 Documentation - *(discord)* Document the Thread ID notification setting. ([#​3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29)) - *(docker)* Add cap-drop and security-opt to docker command ([#​3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa)) - Clarify ai disclosure policy further ([#​3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960)) ##### ⚡ Performance - Bound tmdb cache & split scan lookups into their own tier ([#​3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1)) ##### 🚜 Refactor - *(avatarproxy)* Remove unused auth header from avatarproxy ([#​3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652)) - *(ui)* Use the Radio component instead of RadioGroup.Option ([#​3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915)) - *(ui)* Use headlessui flat named exports ([#​3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de)) ##### 🧪 Testing - *(cypress)* Stop dirty restartRequired flag cascading across specs ([#​3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c)) - Block outbound HTTP in unit tests ([#​3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b)) - Add scanner update rate override for testing ([#​3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9)) - *(actions)* Update github actions (major) ([#​3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04)) - *(actions)* Update github actions ([#​3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059)) - *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#​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 ([#​3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473)) - Fix release workflow verify attestation ([#​3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659)) - Exclude .pnpm-store from Docker build context ([#​3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7)) ##### New Contributors ❤️ - [@​atilaszsz](https://github.com/atilaszsz) made their first contribution - [@​aussierk](https://github.com/aussierk) made their first contribution - [@​Xyerophyte](https://github.com/Xyerophyte) made their first contribution - [@​Knat-Dev](https://github.com/Knat-Dev) made their first contribution - [@​britsync07-prog](https://github.com/britsync07-prog) made their first contribution - [@​MannXo](https://github.com/MannXo) made their first contribution - [@​bartdelange](https://github.com/bartdelange) made their first contribution - [@​Arul1998](https://github.com/Arul1998) made their first contribution - [@​tuvokian](https://github.com/tuvokian) made their first contribution - [@​peruzzof](https://github.com/peruzzof) made their first contribution - [@​lichie567](https://github.com/lichie567) made their first contribution - [@​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
….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 ([#​3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20)) - *(notifications)* Add support for ntfy.sh tags ([#​3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10)) - *(notifications)* Add embed poster option for Gotify ([#​3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa)) - *(overriderules)* Apply override rules to advanced requests ([#​2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a)) - *(settings)* Hide already requested media ([#​1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177)) - *(users)* Add search box for user lookup by username or email ([#​2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816)) - Add a demo feature ([#​3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca)) - Add support for custom plex metadata provider guid scheme in scanner ([#​3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83)) ##### 🐛 Bug Fixes - *(api)* Stop library reads from resetting enabled flags ([#​3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef)) - *(auth)* Refresh avatar on Quick Connect login ([#​3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8)) - *(datasource)* Break import cycle mistyping postgres timestamps ([#​3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd)) - *(datasource)* Register entities and subscribers explicitly ([#​3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6)) - *(db)* Remap leftover Overseerr DELETED status after migration ([#​3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8)) - *(db)* Drop stale auth unique on sqlite push subscriptions ([#​3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e)) - *(discover)* Fix tv title sorting and validate sortBy per media type ([#​3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058)) - *(jellyfin-api)* Update Authorization headers for Jellyfin ([#​3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a)) - *(login)* Hide quick connect button for emby servers ([#​3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787)) - *(override-rules)* Keep values set by advanced requesters ([#​3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443)) - *(override-rules)* Match default \*arr server by id ([#​3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b)) - *(plex)* Limit concurrent watchlist metadata requests ([#​3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d)) - *(request)* Render anime notice alert in a div instead of a p ([#​3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9)) - *(requests)* Serialize requests for the same title ([#​3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7)) - *(requests)* Stop editing a request from re-requesting covered seasons ([#​3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2)) - *(requests)* Enforce the quota when editing a request ([#​3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977)) - *(requests)* Skip seasons with no episodes when requesting all seasons ([#​2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b)) - *(requests)* Scope download status to requested seasons on request cards ([#​3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc)) - *(requests)* Serialize request creation per user ([#​3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd)) - *(requests)* Stop editing a request from stealing another's season ([#​3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc)) - *(requests)* Reset orphaned season statuses when a request is deleted ([#​3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54)) - *(requests)* Enforce pending and failed states on request routes ([#​3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e)) - *(scanner)* Confirm orphan candidates against the servers before declining ([#​3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0)) - *(server)* Respond instead of hanging on proxy route errors ([#​3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b)) - *(settings)* Mutate the query-string status key for modal immediately ([#​3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb)) - *(sonarr)* Apply configured series type to non-anime requests ([#​3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a)) - *(sonarr)* Decouple anime root folder routing from seriesType ([#​3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a)) - *(subscriber)* Keep issue comment lookups on the owning save's connection ([#​3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9)) - *(subscriber)* Keep request status updates on the owning save's connection ([#​3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c)) - *(tv)* Prevent phantom specials from blocking season request ([#​3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75)) - *(ui)* Stop the slideover backdrop flashing back on close ([#​3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4)) - *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#​3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555)) - *(ui)* Don't mark empty collections as available ([#​3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404)) - *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#​3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947)) - Fix empty discordId in comment webhooks ([#​3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b)) - Prevent hideAvailable/hideBlocklisted from filtering person results ([#​3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6)) - Stop masking connection failures across media server sync and login ([#​3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08)) - Keep library settings when renamed on media server ([#​3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5)) - Changes the suggested url from plex's "hosted" app ([#​3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e)) ##### 📖 Documentation - *(discord)* Document the Thread ID notification setting. ([#​3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29)) - *(docker)* Add cap-drop and security-opt to docker command ([#​3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa)) - Clarify ai disclosure policy further ([#​3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960)) ##### ⚡ Performance - Bound tmdb cache & split scan lookups into their own tier ([#​3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1)) ##### 🚜 Refactor - *(avatarproxy)* Remove unused auth header from avatarproxy ([#​3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652)) - *(ui)* Use the Radio component instead of RadioGroup.Option ([#​3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915)) - *(ui)* Use headlessui flat named exports ([#​3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de)) ##### 🧪 Testing - *(cypress)* Stop dirty restartRequired flag cascading across specs ([#​3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c)) - Block outbound HTTP in unit tests ([#​3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b)) - Add scanner update rate override for testing ([#​3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9)) - *(actions)* Update github actions (major) ([#​3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04)) - *(actions)* Update github actions ([#​3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059)) - *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#​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 ([#​3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473)) - Fix release workflow verify attestation ([#​3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659)) - Exclude .pnpm-store from Docker build context ([#​3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7)) ##### New Contributors ❤️ - [@​atilaszsz](https://github.com/atilaszsz) made their first contribution - [@​aussierk](https://github.com/aussierk) made their first contribution - [@​Xyerophyte](https://github.com/Xyerophyte) made their first contribution - [@​Knat-Dev](https://github.com/Knat-Dev) made their first contribution - [@​britsync07-prog](https://github.com/britsync07-prog) made their first contribution - [@​MannXo](https://github.com/MannXo) made their first contribution - [@​bartdelange](https://github.com/bartdelange) made their first contribution - [@​Arul1998](https://github.com/Arul1998) made their first contribution - [@​tuvokian](https://github.com/tuvokian) made their first contribution - [@​peruzzof](https://github.com/peruzzof) made their first contribution - [@​lichie567](https://github.com/lichie567) made their first contribution - [@​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
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 ([#​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 ([#​3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20)) - *(notifications)* Add support for ntfy.sh tags ([#​3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10)) - *(notifications)* Add embed poster option for Gotify ([#​3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa)) - *(overriderules)* Apply override rules to advanced requests ([#​2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a)) - *(settings)* Hide already requested media ([#​1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177)) - *(users)* Add search box for user lookup by username or email ([#​2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816)) - Add a demo feature ([#​3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca)) - Add support for custom plex metadata provider guid scheme in scanner ([#​3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83)) ##### 🐛 Bug Fixes - *(api)* Stop library reads from resetting enabled flags ([#​3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef)) - *(auth)* Refresh avatar on Quick Connect login ([#​3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8)) - *(datasource)* Break import cycle mistyping postgres timestamps ([#​3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd)) - *(datasource)* Register entities and subscribers explicitly ([#​3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6)) - *(db)* Remap leftover Overseerr DELETED status after migration ([#​3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8)) - *(db)* Drop stale auth unique on sqlite push subscriptions ([#​3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e)) - *(discover)* Fix tv title sorting and validate sortBy per media type ([#​3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058)) - *(jellyfin-api)* Update Authorization headers for Jellyfin ([#​3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a)) - *(login)* Hide quick connect button for emby servers ([#​3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787)) - *(override-rules)* Keep values set by advanced requesters ([#​3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443)) - *(override-rules)* Match default \*arr server by id ([#​3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b)) - *(plex)* Limit concurrent watchlist metadata requests ([#​3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d)) - *(request)* Render anime notice alert in a div instead of a p ([#​3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9)) - *(requests)* Serialize requests for the same title ([#​3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7)) - *(requests)* Stop editing a request from re-requesting covered seasons ([#​3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2)) - *(requests)* Enforce the quota when editing a request ([#​3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977)) - *(requests)* Skip seasons with no episodes when requesting all seasons ([#​2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b)) - *(requests)* Scope download status to requested seasons on request cards ([#​3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc)) - *(requests)* Serialize request creation per user ([#​3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd)) - *(requests)* Stop editing a request from stealing another's season ([#​3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc)) - *(requests)* Reset orphaned season statuses when a request is deleted ([#​3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54)) - *(requests)* Enforce pending and failed states on request routes ([#​3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e)) - *(scanner)* Confirm orphan candidates against the servers before declining ([#​3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0)) - *(server)* Respond instead of hanging on proxy route errors ([#​3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b)) - *(settings)* Mutate the query-string status key for modal immediately ([#​3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb)) - *(sonarr)* Apply configured series type to non-anime requests ([#​3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a)) - *(sonarr)* Decouple anime root folder routing from seriesType ([#​3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a)) - *(subscriber)* Keep issue comment lookups on the owning save's connection ([#​3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9)) - *(subscriber)* Keep request status updates on the owning save's connection ([#​3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c)) - *(tv)* Prevent phantom specials from blocking season request ([#​3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75)) - *(ui)* Stop the slideover backdrop flashing back on close ([#​3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4)) - *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#​3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555)) - *(ui)* Don't mark empty collections as available ([#​3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404)) - *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#​3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947)) - Fix empty discordId in comment webhooks ([#​3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b)) - Prevent hideAvailable/hideBlocklisted from filtering person results ([#​3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6)) - Stop masking connection failures across media server sync and login ([#​3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08)) - Keep library settings when renamed on media server ([#​3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5)) - Changes the suggested url from plex's "hosted" app ([#​3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e)) ##### 📖 Documentation - *(discord)* Document the Thread ID notification setting. ([#​3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29)) - *(docker)* Add cap-drop and security-opt to docker command ([#​3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa)) - Clarify ai disclosure policy further ([#​3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960)) ##### ⚡ Performance - Bound tmdb cache & split scan lookups into their own tier ([#​3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1)) ##### 🚜 Refactor - *(avatarproxy)* Remove unused auth header from avatarproxy ([#​3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652)) - *(ui)* Use the Radio component instead of RadioGroup.Option ([#​3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915)) - *(ui)* Use headlessui flat named exports ([#​3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de)) ##### 🧪 Testing - *(cypress)* Stop dirty restartRequired flag cascading across specs ([#​3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c)) - Block outbound HTTP in unit tests ([#​3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b)) - Add scanner update rate override for testing ([#​3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9)) - *(actions)* Update github actions (major) ([#​3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04)) - *(actions)* Update github actions ([#​3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059)) - *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#​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 ([#​3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473)) - Fix release workflow verify attestation ([#​3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659)) - Exclude .pnpm-store from Docker build context ([#​3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7)) ##### New Contributors ❤️ - [@​atilaszsz](https://github.com/atilaszsz) made their first contribution - [@​aussierk](https://github.com/aussierk) made their first contribution - [@​Xyerophyte](https://github.com/Xyerophyte) made their first contribution - [@​Knat-Dev](https://github.com/Knat-Dev) made their first contribution - [@​britsync07-prog](https://github.com/britsync07-prog) made their first contribution - [@​MannXo](https://github.com/MannXo) made their first contribution - [@​bartdelange](https://github.com/bartdelange) made their first contribution - [@​Arul1998](https://github.com/Arul1998) made their first contribution - [@​tuvokian](https://github.com/tuvokian) made their first contribution - [@​peruzzof](https://github.com/peruzzof) made their first contribution - [@​lichie567](https://github.com/lichie567) made their first contribution - [@​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
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 ([#​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 ([#​3395](seerr-team/seerr#3395)) - ([a123d20](seerr-team/seerr@a123d20)) - *(notifications)* Add support for ntfy.sh tags ([#​3350](seerr-team/seerr#3350)) - ([92bad10](seerr-team/seerr@92bad10)) - *(notifications)* Add embed poster option for Gotify ([#​3332](seerr-team/seerr#3332)) - ([afb17aa](seerr-team/seerr@afb17aa)) - *(overriderules)* Apply override rules to advanced requests ([#​2164](seerr-team/seerr#2164)) - ([794743a](seerr-team/seerr@794743a)) - *(settings)* Hide already requested media ([#​1855](seerr-team/seerr#1855)) - ([6f5a177](seerr-team/seerr@6f5a177)) - *(users)* Add search box for user lookup by username or email ([#​2482](seerr-team/seerr#2482)) - ([aae8816](seerr-team/seerr@aae8816)) - Add a demo feature ([#​3017](seerr-team/seerr#3017)) - ([38581ca](seerr-team/seerr@38581ca)) - Add support for custom plex metadata provider guid scheme in scanner ([#​3316](seerr-team/seerr#3316)) - ([7baed83](seerr-team/seerr@7baed83)) ##### 🐛 Bug Fixes - *(api)* Stop library reads from resetting enabled flags ([#​3321](seerr-team/seerr#3321)) - ([985ddef](seerr-team/seerr@985ddef)) - *(auth)* Refresh avatar on Quick Connect login ([#​3504](seerr-team/seerr#3504)) - ([d4eeea8](seerr-team/seerr@d4eeea8)) - *(datasource)* Break import cycle mistyping postgres timestamps ([#​3449](seerr-team/seerr#3449)) - ([d7b08bd](seerr-team/seerr@d7b08bd)) - *(datasource)* Register entities and subscribers explicitly ([#​3375](seerr-team/seerr#3375)) - ([0f79ee6](seerr-team/seerr@0f79ee6)) - *(db)* Remap leftover Overseerr DELETED status after migration ([#​3510](seerr-team/seerr#3510)) - ([2bebae8](seerr-team/seerr@2bebae8)) - *(db)* Drop stale auth unique on sqlite push subscriptions ([#​3391](seerr-team/seerr#3391)) - ([5f4cb1e](seerr-team/seerr@5f4cb1e)) - *(discover)* Fix tv title sorting and validate sortBy per media type ([#​3305](seerr-team/seerr#3305)) - ([2759058](seerr-team/seerr@2759058)) - *(jellyfin-api)* Update Authorization headers for Jellyfin ([#​3502](seerr-team/seerr#3502)) - ([de57e7a](seerr-team/seerr@de57e7a)) - *(login)* Hide quick connect button for emby servers ([#​3369](seerr-team/seerr#3369)) - ([d103787](seerr-team/seerr@d103787)) - *(override-rules)* Keep values set by advanced requesters ([#​3539](seerr-team/seerr#3539)) - ([b919443](seerr-team/seerr@b919443)) - *(override-rules)* Match default \*arr server by id ([#​3428](seerr-team/seerr#3428)) - ([7fae95b](seerr-team/seerr@7fae95b)) - *(plex)* Limit concurrent watchlist metadata requests ([#​3251](seerr-team/seerr#3251)) - ([103976d](seerr-team/seerr@103976d)) - *(request)* Render anime notice alert in a div instead of a p ([#​3331](seerr-team/seerr#3331)) - ([1fd35f9](seerr-team/seerr@1fd35f9)) - *(requests)* Serialize requests for the same title ([#​3380](seerr-team/seerr#3380)) - ([cc6f5c7](seerr-team/seerr@cc6f5c7)) - *(requests)* Stop editing a request from re-requesting covered seasons ([#​3379](seerr-team/seerr#3379)) - ([10483e2](seerr-team/seerr@10483e2)) - *(requests)* Enforce the quota when editing a request ([#​3378](seerr-team/seerr#3378)) - ([8f0a977](seerr-team/seerr@8f0a977)) - *(requests)* Skip seasons with no episodes when requesting all seasons ([#​2698](seerr-team/seerr#2698)) - ([1dbf19b](seerr-team/seerr@1dbf19b)) - *(requests)* Scope download status to requested seasons on request cards ([#​3412](seerr-team/seerr#3412)) - ([c604bcc](seerr-team/seerr@c604bcc)) - *(requests)* Serialize request creation per user ([#​3377](seerr-team/seerr#3377)) - ([d7dc7bd](seerr-team/seerr@d7dc7bd)) - *(requests)* Stop editing a request from stealing another's season ([#​3376](seerr-team/seerr#3376)) - ([17fc4cc](seerr-team/seerr@17fc4cc)) - *(requests)* Reset orphaned season statuses when a request is deleted ([#​3279](seerr-team/seerr#3279)) - ([970bb54](seerr-team/seerr@970bb54)) - *(requests)* Enforce pending and failed states on request routes ([#​3385](seerr-team/seerr#3385)) - ([9f6403e](seerr-team/seerr@9f6403e)) - *(scanner)* Confirm orphan candidates against the servers before declining ([#​3399](seerr-team/seerr#3399)) - ([34b28d0](seerr-team/seerr@34b28d0)) - *(server)* Respond instead of hanging on proxy route errors ([#​3501](seerr-team/seerr#3501)) - ([a53f49b](seerr-team/seerr@a53f49b)) - *(settings)* Mutate the query-string status key for modal immediately ([#​3432](seerr-team/seerr#3432)) - ([5af32cb](seerr-team/seerr@5af32cb)) - *(sonarr)* Apply configured series type to non-anime requests ([#​3329](seerr-team/seerr#3329)) - ([42bee2a](seerr-team/seerr@42bee2a)) - *(sonarr)* Decouple anime root folder routing from seriesType ([#​3328](seerr-team/seerr#3328)) - ([93c0b6a](seerr-team/seerr@93c0b6a)) - *(subscriber)* Keep issue comment lookups on the owning save's connection ([#​3536](seerr-team/seerr#3536)) - ([68e01b9](seerr-team/seerr@68e01b9)) - *(subscriber)* Keep request status updates on the owning save's connection ([#​3366](seerr-team/seerr#3366)) - ([059008c](seerr-team/seerr@059008c)) - *(tv)* Prevent phantom specials from blocking season request ([#​3351](seerr-team/seerr#3351)) - ([7997f75](seerr-team/seerr@7997f75)) - *(ui)* Stop the slideover backdrop flashing back on close ([#​3451](seerr-team/seerr#3451)) - ([df743f4](seerr-team/seerr@df743f4)) - *(ui)* Stop appear leaking onto the DOM in Modal and SlideOver ([#​3446](seerr-team/seerr#3446)) - ([da4b555](seerr-team/seerr@da4b555)) - *(ui)* Don't mark empty collections as available ([#​3431](seerr-team/seerr#3431)) - ([92f8404](seerr-team/seerr@92f8404)) - *(webpush)* Resolve push subscription bugs for multi-device and shared browsers ([#​3142](seerr-team/seerr#3142)) - ([59d5947](seerr-team/seerr@59d5947)) - Fix empty discordId in comment webhooks ([#​3467](seerr-team/seerr#3467)) - ([e73825b](seerr-team/seerr@e73825b)) - Prevent hideAvailable/hideBlocklisted from filtering person results ([#​3434](seerr-team/seerr#3434)) - ([0be53e6](seerr-team/seerr@0be53e6)) - Stop masking connection failures across media server sync and login ([#​3324](seerr-team/seerr#3324)) - ([4d17e08](seerr-team/seerr@4d17e08)) - Keep library settings when renamed on media server ([#​3323](seerr-team/seerr#3323)) - ([c9f2ac5](seerr-team/seerr@c9f2ac5)) - Changes the suggested url from plex's "hosted" app ([#​3250](seerr-team/seerr#3250)) - ([d3c070e](seerr-team/seerr@d3c070e)) ##### 📖 Documentation - *(discord)* Document the Thread ID notification setting. ([#​3481](seerr-team/seerr#3481)) - ([7afbb29](seerr-team/seerr@7afbb29)) - *(docker)* Add cap-drop and security-opt to docker command ([#​3472](seerr-team/seerr#3472)) - ([a4f5eaa](seerr-team/seerr@a4f5eaa)) - Clarify ai disclosure policy further ([#​3358](seerr-team/seerr#3358)) - ([dea5960](seerr-team/seerr@dea5960)) ##### ⚡ Performance - Bound tmdb cache & split scan lookups into their own tier ([#​3367](seerr-team/seerr#3367)) - ([59ad5f1](seerr-team/seerr@59ad5f1)) ##### 🚜 Refactor - *(avatarproxy)* Remove unused auth header from avatarproxy ([#​3503](seerr-team/seerr#3503)) - ([b211652](seerr-team/seerr@b211652)) - *(ui)* Use the Radio component instead of RadioGroup.Option ([#​3454](seerr-team/seerr#3454)) - ([46d5915](seerr-team/seerr@46d5915)) - *(ui)* Use headlessui flat named exports ([#​3453](seerr-team/seerr#3453)) - ([aa8e0de](seerr-team/seerr@aa8e0de)) ##### 🧪 Testing - *(cypress)* Stop dirty restartRequired flag cascading across specs ([#​3368](seerr-team/seerr#3368)) - ([39ff48c](seerr-team/seerr@39ff48c)) - Block outbound HTTP in unit tests ([#​3511](seerr-team/seerr#3511)) - ([abe2f3b](seerr-team/seerr@abe2f3b)) - Add scanner update rate override for testing ([#​3241](seerr-team/seerr#3241)) - ([7a76142](seerr-team/seerr@7a76142)) ##### ⚙️ Miscellaneous Tasks - *(actions)* Update github actions ([#​3478](seerr-team/seerr#3478)) - ([a3dbbd9](seerr-team/seerr@a3dbbd9)) - *(actions)* Update github actions (major) ([#​3471](seerr-team/seerr#3471)) - ([6bf3d04](seerr-team/seerr@6bf3d04)) - *(actions)* Update github actions ([#​3306](seerr-team/seerr#3306)) - ([5a5f059](seerr-team/seerr@5a5f059)) - *(duplicate-detector)* Switch embeddings to bge-small-en-v1.5 ([#​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 ([#​3480](seerr-team/seerr#3480)) - ([6fa7473](seerr-team/seerr@6fa7473)) - Fix release workflow verify attestation ([#​3337](seerr-team/seerr#3337)) - ([090c659](seerr-team/seerr@090c659)) - Exclude .pnpm-store from Docker build context ([#​3313](seerr-team/seerr#3313)) - ([bd491c7](seerr-team/seerr@bd491c7)) ##### New Contributors ❤️ - [@​atilaszsz](https://github.com/atilaszsz) made their first contribution - [@​aussierk](https://github.com/aussierk) made their first contribution - [@​Xyerophyte](https://github.com/Xyerophyte) made their first contribution - [@​Knat-Dev](https://github.com/Knat-Dev) made their first contribution - [@​britsync07-prog](https://github.com/britsync07-prog) made their first contribution - [@​MannXo](https://github.com/MannXo) made their first contribution - [@​bartdelange](https://github.com/bartdelange) made their first contribution - [@​Arul1998](https://github.com/Arul1998) made their first contribution - [@​tuvokian](https://github.com/tuvokian) made their first contribution - [@​peruzzof](https://github.com/peruzzof) made their first contribution - [@​lichie567](https://github.com/lichie567) made their first contribution - [@​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
Description
Previously, stopping the Jellyfin server and hitting Sync Libraries returned "Something went wrong while syncing libraries" with no real error in Setup, because the connection failure got treated the same as "no libraries found," and the fallback check for that case failed too and threw the wrong error entirely. Now sync distinguishes an unreachable server from an empty library list, and the toast says the server is unreachable instead of giving a generic error.
Connection failures in every Jellyfin API method threw either
InvalidAuthTokenor a bareUnknownerror on any failure, so a downed server looked like a bad token everywhere. Login now catches this too: signing in while Jellyfin is unreachable gives the same "unable to connect" message instead of a generic login failure. Plex sync no longer silentlyclears the library list on failure either and it throws, so both the route and the startup migration can leave existing config in place and let the user (or the next boot) retry.
In addition, Setup's Continue gate used to run its own validation request that toasted on failure. Switching that to reuse the settings data already being fetched removes a redundant request on every library toggle, but that path is silent on failure, so this PR adds an inline alert to keep users from being stuck on a disabled Continue button with no explanation.
Moreover, scan status polling ran at a constant 1 second regardless of whether a sync was actually in progress. It now backs off to 10 seconds when idle and only ramps up while scanning. This should cut idle traffic significantly without missing scans triggered by the job scheduler.
Also cleans up now-unused setup-flow state and makes Plex's setup-mode handling consistent with Jellyfin's.
How Has This Been Tested?
Screenshots / Logs (if applicable)
Checklist:
pnpm buildpnpm i18n:extractSummary by CodeRabbit
Bug Fixes
Improvements