100 Commits
Author SHA1 Message Date
fallenbagel 8f2eceeaa5 fix(scanners): decline request when media resets to UNKNOWN (#3578) 2026-10-10 07:18:54 +08:00
fallenbagel cd8aa1f0da fix(jellyfin): handle season and episode items in recently added scan (#3551) 2026-09-28 15:13:54 +02:00
fallenbagel 9fda1c6270 Merge commit from fork
Media.getMedia() loads the requests and issues relations for GET /movie/:id and GET /tv/:id, and the
User relations hanging off them are eager, so every authenticated user could read any other user's
email and plexId out of mediaInfo. The same payload carried full issue contents, including comment
bodies, to viewers who are refused GET /issue. Media.filter() now strips the nested users and
withholds the issues from anyone lacking the perms that the endpoing requires, and drops the issue
fields nothing reads. Reported as a security advisory, GHSA-xc6j-6p6h-p799.
2026-09-28 07:06:44 +08:00
fallenbagel 53e77bf347 Merge commit from fork
User.settings is an eager relation, so it rode along into every response embedding a User, exposing
pushover, pushbullet, telegram, discord and PGP values through the request, issue, issue comment,
blocklist, and watchlist endpoints. It now omits it by using User.toJSON(). GET /auth/me builds
settings from seven non-credential fields the web app reads, so locale and region defaults keep
working. Reported as a security advisory, GHSA-8j73-j6rc-q8xh.
2026-09-28 07:06:04 +08:00
fallenbagel 4fd0da04e3 ci(duplicate-detector): switch embeddings to bge-small-en-v1.5 (#3541) 2026-09-26 18:19:41 +05:00
fallenbagel 68e01b98a3 fix(subscriber): keep issue comment lookups on the owning save's connection (#3536) 2026-09-25 15:15:05 +02:00
fallenbagel b919443202 fix(override-rules): keep values set by advanced requesters (#3539) 2026-09-24 14:18:28 +05:00
fallenbagel cc6f5c7631 fix(requests): serialize requests for the same title (#3380) 2026-09-23 14:17:54 +02:00
fallenbagel 10483e2c08 fix(requests): stop editing a request from re-requesting covered seasons (#3379) 2026-09-23 14:04:31 +02:00
fallenbagel 8f0a977de8 fix(requests): enforce the quota when editing a request (#3378) 2026-09-23 13:58:29 +02:00
fallenbagel 59d5947b4d fix(webpush): resolve push subscription bugs for multi-device and shared browsers (#3142) 2026-09-16 14:09:44 +02:00
fallenbagel 2bebae8369 fix(db): remap leftover Overseerr DELETED status after migration (#3510) 2026-09-15 07:33:44 +02:00
fallenbagel 34b28d0aba fix(scanner): confirm orphan candidates against the servers before declining (#3399) 2026-09-14 17:30:29 +02:00
fallenbagel abe2f3bb80 test: block outbound HTTP in unit tests (#3511) 2026-09-14 14:36:57 +05:00
fallenbagel d7dc7bdd34 fix(requests): serialize request creation per user (#3377) 2026-09-03 15:22:51 +05:00
fallenbagel 17fc4cc659 fix(requests): stop editing a request from stealing another's season (#3376) 2026-09-03 10:31:22 +02:00
fallenbagel e73825b2f1 fix: fix empty discordId in comment webhooks (#3467) 2026-09-02 13:05:12 +05:00
fallenbagel 9f6403e14e fix(requests): enforce pending and failed states on request routes (#3385) 2026-08-31 18:37:47 +05:00
fallenbagel 5f4cb1ea45 fix(db): drop stale auth unique on sqlite push subscriptions (#3391) 2026-08-31 17:16:57 +05:00
fallenbagel 7997f7564b fix(tv): prevent phantom specials from blocking season request (#3351) 2026-08-31 14:15:40 +02:00
fallenbagel 46d5915d6c refactor(ui): use the Radio component instead of RadioGroup.Option (#3454) 2026-08-31 20:10:49 +08:00
fallenbagel aa8e0de04c refactor(ui): use headlessui flat named exports (#3453) 2026-08-31 17:00:51 +05:00
fallenbagel df743f4638 fix(ui): stop the slideover backdrop flashing back on close (#3451) 2026-08-31 17:00:34 +05:00
fallenbagel 1cc2f116a2 chore(deps): upgrade @headlessui/react to 2.2.10 (#3450) 2026-08-31 16:58:27 +05:00
fallenbagel d7b08bddc0 fix(datasource): break import cycle mistyping postgres timestamps (#3449) 2026-08-31 09:13:03 +02:00
fallenbagel da4b555ca8 fix(ui): stop appear leaking onto the DOM in Modal and SlideOver (#3446) 2026-08-31 07:41:23 +02:00
fallenbagel 0f79ee663c fix(datasource): register entities and subscribers explicitly (#3375) 2026-08-31 05:23:12 +05:00
fallenbagel 2759058aeb fix(discover): fix tv title sorting and validate sortBy per media type (#3305) 2026-08-28 15:19:07 +02:00
fallenbagel 5af32cb27a fix(settings): mutate the query-string status key for modal immediately (#3432) 2026-08-27 17:15:17 +02:00
fallenbagel 59ad5f1916 perf: bound tmdb cache & split scan lookups into their own tier (#3367) 2026-08-27 18:09:14 +05:00
fallenbagel 059008cbb2 fix(subscriber): keep request status updates on the owning save's connection (#3366) 2026-08-18 07:32:47 +02:00
fallenbagel 4d17e08b91 fix: stop masking connection failures across media server sync and login (#3324) 2026-08-16 18:31:44 +05:00
fallenbagel c9f2ac58be fix: keep library settings when renamed on media server (#3323) 2026-08-16 18:31:44 +05:00
fallenbagel 985ddef3f0 fix(api): stop library reads from resetting enabled flags (#3321) 2026-08-16 18:31:43 +05:00
fallenbagel 39ff48c650 test(cypress): stop dirty restartRequired flag cascading across specs (#3368) 2026-08-11 15:10:30 +02:00
fallenbagel d103787a8f fix(login): hide quick connect button for emby servers (#3369) 2026-08-11 15:23:39 +05:00
fallenbagel dea596056a docs: clarify ai disclosure policy further (#3358) 2026-08-09 17:44:32 +02:00
fallenbagel 42bee2aa10 fix(sonarr): apply configured series type to non-anime requests (#3329) 2026-08-02 01:49:20 +05:00
fallenbagel 93c0b6a6d6 fix(sonarr): decouple anime root folder routing from seriesType (#3328) 2026-08-02 01:49:20 +05:00
fallenbagel 1fd35f9a5d fix(request): render anime notice alert in a div instead of a p (#3331) 2026-08-01 22:06:17 +02:00
fallenbagel 3ee6f9200c fix: don't delete requests when removing media from arr (#3288) 2026-07-30 00:49:56 +05:00
fallenbagel 8ea0c174ea fix: handle already-removed media in radarr/sonarr delete (#3209) 2026-07-30 00:49:55 +05:00
fallenbagel 669a58a61b fix(airdatebadge): anchor day diff to UTC midnight instead of raw ms delta
(#3273)
2026-07-23 16:54:31 +02:00
fallenbagel 8ccd0f6245 fix(discover): use added sort in recent requests slider (#3202) 2026-07-22 16:46:59 +02:00
fallenbagel bf5323faf4 docs(blog): rootless design and PUID/PGID rationale (#3105) 2026-07-21 16:38:25 +02:00
fallenbagel 46d8033599 fix(availability-sync): prevent false removals for merged-version Plex items (#3224) 2026-07-21 08:15:43 +08:00
fallenbagel f481b56a7a fix(subscriber): await request status updates (#3223) 2026-07-21 02:14:34 +02:00
fallenbagel 8e02d927df fix: prevent cross-instance external ID collisions (#3203) 2026-07-03 22:04:55 +02:00
fallenbagel 2e0e4ceb2a fix(scanners): decline orphaned requests when media is removed from servarr (#3191) 2026-07-03 21:39:14 +08:00
fallenbagel 74c8db42a6 feat: add jellyfin/emby quick connect authentication (#2212) 2026-07-03 13:32:20 +02:00
fallenbagel 8ad191f42b fix(proxy): proxy clients built before proxy init (#3196) 2026-06-25 01:49:58 +02:00
fallenbagel ef9edc832f fix(i18n): fallback to server locale for "Default" user lang in notifs (#3190) 2026-06-23 17:07:34 +08:00
fallenbagel 784faa9f84 fix: availability sync demotion and orphan season rollup edge cases (#3148) 2026-06-12 00:04:36 +02:00
fallenbagel ff88d528e5 fix(request): restore media status correctly when deleting requests (#3064) 2026-05-25 22:31:03 +02:00
fallenbagel 2588e49ac6 fix(watchlistsync): re-request deleted media from watchlist (#3072) 2026-05-25 20:15:04 +02:00
fallenbagel ee915b93a9 fix(media): clean up watchlist on error card delete (#3073) 2026-05-25 20:07:28 +02:00
fallenbagel 08b7bd4f46 refactor(docs): move REST API docs to navbar and dedicated sidebar (#3040) 2026-05-16 12:12:49 +02:00
fallenbagel df105b81e3 fix(docs): enable trailingSlash to prevent 404 flash on direct navigation (#3039) 2026-05-16 15:04:05 +08:00
fallenbagel d88242fd62 fix(docs): switch to SWC minimizer to fix broken runtime bundle
Terser emits digit-prefixed hex chunk-name keys unquoted in webpack's runtime, producing an invalid
object literal that crashes hydration. SWC quotes them correctly.

fix #3035
2026-05-16 14:17:29 +08:00
fallenbagel 9c34864ce6 fix(availability-sync): detect deleted seasons when media server retains empty season metadata (#2850) 2026-05-03 17:22:55 +02:00
fallenbagel 198e4e5953 fix(scanners): reset orphaned processing media from deleted Radarr/Sonarr entries (#2757) 2026-05-02 22:51:39 +02:00
fallenbagel ce51f6a83c fix(scanners): ignore unknown seasons in availability rollup and skip empty placeholder seasons (#2958) 2026-05-03 04:37:41 +08:00
fallenbagel ba6ed6c181 chore: cleanup intl polyfills and dev config (#2965) 2026-04-29 13:12:43 +02:00
fallenbagel d426e1ee37 fix: send availability notification if media is available before approval (#2819) 2026-04-22 13:47:37 +02:00
fallenbagel 2dfea0cc7e fix(media-request): remove cascade from modifiedBy to prevent user column wipe (#2911) 2026-04-20 12:09:54 +08:00
fallenbagel 5fdedb1591 fix(override-rules): use find() instead of index lookup for service resolution (#2903) 2026-04-19 16:11:36 +08:00
fallenbagel cd257bad2a feat(i18n): add server-side i18n for notification agents (#2731) 2026-04-17 19:39:59 +08:00
fallenbagel 7861db4941 fix(imdbRadarrProxy): pass headers and nodeCache as options instead of params (#2900) 2026-04-17 12:57:27 +02:00
fallenbagel 85bfdb2be3 ci(create-tag): add gh token to avoid api rate limit in tag version retrieval (#2886) 2026-04-16 04:29:35 +08:00
fallenbagel 66130beded fix(settings): persist new settings defaults to disk on startup (#2884) 2026-04-15 16:42:36 +02:00
fallenbagel aef2481722 fix: improve local login UX (#2849) 2026-04-15 16:24:22 +08:00
fallenbagel 43eff257e1 fix(overseerr-merge): sanitise corrupt quota values during overseerr migration (#2863) 2026-04-12 17:37:32 +02:00
fallenbagel 20ccd4bd38 fix(request): record modifiedBy on retry and add route tests (#2824) 2026-04-12 16:52:45 +02:00
fallenbagel 061121c326 fix(generate-password): await setPassword to fix race condition (#2845) 2026-04-09 21:32:28 +08:00
fallenbagel fe2c0416ef fix(emby): use static version in auth header for emby only (#2821) 2026-04-07 23:12:54 +02:00
fallenbagel 0b8f872828 fix(entities): replace MySQL-only onUpdate with @UpdateDateColumn (#2823) 2026-04-05 21:53:30 +08:00
fallenbagel 6f9b743ea9 docs(contributing-guide): fix a typo (#2807) 2026-04-02 14:03:28 +02:00
fallenbagel 58514ec5cf ci(pr-validation): make checklist box detection case-insensitive (#2802) 2026-04-02 10:39:37 +02:00
fallenbagel 986761f61f ci(pr-validation): update pull request permissions to write for validation jobs (#2800) 2026-04-02 14:23:15 +08:00
fallenbagel 67e27d5b79 ci(pr-validation): disable package manager cache in nodejs setup (#2799) 2026-04-02 14:12:04 +08:00
fallenbagel 772e83d104 chore: add PR validation workflow and update contributing guidelines (#2777) 2026-04-02 13:59:51 +08:00
fallenbagel 685cb449b1 refactor(watchlistsync): log media request creation after success instead of before (#2790) 2026-04-01 15:07:34 +02:00
fallenbagel 036d000f26 refactor(imageproxy): reduce noisy image cache logging (#2789) 2026-04-01 14:40:14 +02:00
fallenbagel 735ec47b1e fix(login): resolve stuck transition when switching login forms (#2779) 2026-03-30 15:34:32 +02:00
fallenbagel be5799756a fix(override-rules): remove users from useEffect dependency array (#2771) 2026-03-30 12:59:39 +02:00
fallenbagel 6c52a2f3ad fix(settings): serialize settings writes and prevent partial overwrites (#2696) 2026-03-16 11:29:41 +01:00
fallenbagel 0be18968b4 fix: disambiguate tmdb ids by media type across lookups (#2577) 2026-03-14 23:47:21 +05:00
fallenbagel 1dc51542aa fix(setup): fix Plex login not proceeding after authentication (#2596) 2026-03-04 03:22:01 +05:00
fallenbagel 9ec3d585d1 fix(email): correctly classify final MIME header in PGP email encryption (#2618) 2026-03-04 03:17:56 +05:00
fallenbagel a16d0464a6 fix(issues): update issue timestamp when adding comments (#2616) 2026-03-02 12:35:18 +01:00
fallenbagel 835e9176c0 fix(email): preserve newlines in PGP key textarea fields (#2617) 2026-03-02 16:33:11 +05:00
fallenbagel 61e0377361 feat(notifications): add priority setting for ntfy agent (#2306) 2026-03-02 04:37:57 +05:00
fallenbagel 5c34c91257 feat(sonarr): add monitorNewItems option to sonarr settings & modal (#2071) 2026-02-28 02:08:44 +05:00
fallenbagel 720a75b58d docs(blog): release notes for seerr v3.1.0 addressing critical security vulnerabilities [skip ci] (#2594) 2026-02-27 19:56:52 +01:00
fallenbagel 687f18b6b8 ci(create-tag): correct quote style in commit message for tag preparation (#2593) 2026-02-28 02:00:37 +08:00
fallenbagel 4f089b29d0 Merge commit from fork
Add ownership check to GET /api/v1/user/:id so the full user object(including eager-loaded settings
with notification credentials) is onlyreturned to the user themselves or MANAGE_USERS admins. All
otherauthenticated users receive a stripped response (which is the intended behaviour as
https://github.com/sct/overseerr/pull/3695#issuecomment-1817827774). Also expands
User.filteredFields to strip sensitive fileds to prevent leaking credentials
2026-02-28 00:58:28 +08:00
fallenbagel 4ae2068409 Merge commit from fork
Fix a logic flaw in the jellyfin auth guard that allowed unauthenticated users to register accounts
on Plex-configured instances by authenticating against an attacker-controlled Jellyfin server.
2026-02-28 00:36:17 +08:00
fallenbagel 3bcb4da1e5 feat(servarr-api): make Servarr API request timeout configurable (#2556) 2026-02-23 00:32:31 +01:00
fallenbagel 5013d1d54d fix(sonarr): use configured metadata provider for season filtering (#2516) 2026-02-22 18:13:39 +01:00
fallenbagel 68f56d2035 fix(jellyfin-scanner): include unmatched seasons in processable seasons (#2538) 2026-02-21 06:51:02 +05:00