What's Changed
- Add Advanced Jules PR Reviewer action by @calibrain in #1523
- fix(search): name the proxy when a gateway cuts a search off by @calibrain in #1522
- ci(jules): review fork PRs through a gated pull_request_target workflow by @calibrain in #1528
- fix(network): apply HTTP proxy to Open Library and Prowlarr requests by @dbdefault in #1526
- ci(jules): review the whole PR diff, not just the latest push by @calibrain in #1529
- build(deps): bump publicsuffixlist from 1.1.0.20261017 to 1.1.0.20261018 by @dependabot[bot] in #1527
- feat(notifications): add {User}/{Email} placeholders to per-user routes by @AmalkrishnaAS in #1499
- refactor: one default and one reader for the Supported Book Formats list by @splitsec2 in #1532
- fix(search): give each provider its own slice of the search budget by @splitsec2 in #1537
- fix(queue): a late progress update no longer reopens a finished task by @splitsec2 in #1538
- docs(settings): say that the per-source limit replaces Max Concurrent Downloads by @splitsec2 in #1542
- fix(db): wait up to 30 s for a busy writer instead of SQLite's 5 s default by @splitsec2 in #1539
- fix(startup): the reconcile guard catches the same errors the rest of main.py does by @splitsec2 in #1540
- perf: reuse connections and cache Anna's Archive download counts by @splitsec2 in #1546
- perf: cut repeated work on search and cover paths by @splitsec2 in #1544
- fix(redaction): a non-admin's status message loses the links it quotes by @splitsec2 in #1541
- perf: cut repeated work on the status and activity paths by @splitsec2 in #1545
- feat: optional Hardcover wishlist sync with automated downloading (1 of 5) by @splitsec2 in #1516
- feat(sources): add Webshare.cz as a release source by @misko903 in #1543
- feat(metadata): add Deutsche Nationalbibliothek (DNB) metadata provider by @ProcyonX1 in #1547
- feat(library): Audiobookshelf library check, and the sync fails closed when a library cannot be read (2 of 5) by @splitsec2 in #1519
- feat(hardcover): ebooks, audiobooks or both, and stricter matching for automatic downloads (3 of 5) by @splitsec2 in #1533
- feat(hardcover): retries, error counting and a back-off for requests nothing matches (4 of 5) by @splitsec2 in #1534
- feat(hardcover): owned books, simpler queries, dead sources and failed releases (5 of 5) by @splitsec2 in #1535
- build(deps): bump cryptography from 46.0.7 to 50.0.0 by @dependabot[bot] in #1555
- fix: keep server paths and URLs out of an error response and a debug log by @splitsec2 in #1558
- fix: keep file links and API keys out of AllDebrid logs, fix Newznab debug log by @splitsec2 in #1559
- build(deps): bump oauthlib from 3.3.1 to 4.0.0 by @dependabot[bot] in #1556
- build(deps): update socket.io-parser, ws and baseline-browser-mapping in the lockfiles by @splitsec2 in #1560
- build(deps): bump certifi from 2026.7.22 to 2026.10.19 by @dependabot[bot] in #1554
- ci(codeql): skip the tests directory by @splitsec2 in #1557
- build(deps): bump werkzeug from 3.1.8 to 3.1.9 by @dependabot[bot] in #1553
- build(deps): bump astral-sh/uv from 0.12.24 to 0.13.5 in the docker-base-image-digests group by @dependabot[bot] in #1550
- build(deps): bump the gh-actions group with 3 updates by @dependabot[bot] in #1552
- build(deps): bump the npm-deps group in /src/frontend with 6 updates by @dependabot[bot] in #1551
- build(deps-dev): bump prek from 0.5.5 to 0.5.6 in the python-deps group by @dependabot[bot] in #1548
New Contributors
- @dbdefault made their first contribution in #1526
- @ProcyonX1 made their first contribution in #1547
Full Changelog: v1.5.0...v1.5.1