Repository navigation
fix(datasource): register entities and subscribers explicitly - #3375
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe 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. ChangesDatabase build and test safety
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to 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: 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
Poem
🚥 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 |
There was a problem hiding this comment.
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.tsand adjustedbuild:serverto 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.
seerr
|
||||||||||||||||||||||||||||
| Project |
seerr
|
| Branch Review |
develop
|
| Run status |
|
| Run duration | 02m 13s |
| Commit |
|
| Committer | fallenbagel |
| View all properties for this run ↗︎ | |
| Test results | |
|---|---|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
33
|
| View all changes introduced in this branch ↗︎ | |
a34e853 to
8dbc244
Compare
There was a problem hiding this comment.
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=falsemay not actually disable update checks because Express query values are strings; on the server,/statustreats any defined value ascheckUpdateand then usesif (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 parsingreq.query.checkUpdateAvailableas 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
seedTestDbcan be called withpreserveDb: trueand then it won’t drop the DB. Also, including the currentNODE_ENVvalue 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.`
);
8dbc244 to
4d414ba
Compare
4d414ba to
31f3e2d
Compare
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.
31f3e2d to
da2175a
Compare
…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>
….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
Backport of upstream 0f79ee6 (seerr-team#3375).
Description
TypeORM entities and subscribers load from directory globs over every
.tsfile underserver/entityandserver/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 callssetupTestDb()again. That registers a second rootbeforeandbeforeEachafter 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:servercompiles every.tsunderserver, test files included, and production loadsdist/entity/**/*.js, so a compiled test file there runs its module body at boot.seedTestDbcallsdropDatabase()on the shareddataSourcewith no check on which database it's pointing at, then rebuilds the schema and seedsadmin@seerr.devwithPermission.ADMINand a hardcoded bcrypt hash. I confirmed this against a throwaway sqlite file underNODE_ENV=productionand 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/entityordist/subscriber, so there's nothing to fix or disclose.Now,
seedTestDbandresetTestDbrefuse to run unlessNODE_ENVis test.cypress:prepare, now opts in viaseedTestDb({ allowOutsideTest: true }). This deny-unless-permitted was added because a plain node process with noNODE_ENVset resolves todevConfigagainstconfig/db/db.sqlite3, someone's real database if they're running from source.In addition,
build:serverpoints at a newserver/tsconfig.build.jsonthat excludes*.test.ts, sodiststops shipping the compiled test files it currently produces. Config was separated because becausetypecheck:serveris the only thing type checking those files, and the roottsconfigcoverssrconly and excluding at the base would've silently dropped the files from CI.Lastly, typeORM gets the
entityandsubscriberclasses directly instead of globs, which also drops the duplicatedts/jspatterns across the five config variants. Narrowing the globs to skip*.test.tswould 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 anentityand it throwsEntityMetadataNotFoundErrorthe first time its repository is used anyways. Much more safer this way. Migrations stay globbed.How Has This Been Tested?
Screenshots / Logs (if applicable)
Checklist:
pnpm buildpnpm i18n:extractSummary by CodeRabbit
Bug Fixes
Build
Tests