What's Changed
- build(deps): bump the python-deps group with 2 updates by @dependabot[bot] in #1302
- fix: keep polling queued Real-Debrid torrents by @mvanhorn in #1303
- fix(bypass): keep Anna's Archive's aa_ddg_check so clearance replays by @jfmlima in #1305
- fix(postprocess): attach unmatched chaptered audio files to existing book group (#1176) by @amasen02 in #1309
- build(deps): bump the gh-actions group with 3 updates by @dependabot[bot] in #1310
- build(deps): bump the npm-deps group in /src/frontend with 4 updates by @dependabot[bot] in #1308
- build(deps): bump python from
cae66f2tocad9a2cby @dependabot[bot] in #1307 - build(deps): bump the docker-base-image-digests group with 2 updates by @dependabot[bot] in #1306
- Deep-link Search By mode via URL hash by @nfvelten in #1311
- build(deps): bump the python-deps group across 1 directory with 4 updates by @dependabot[bot] in #1327
- Keep default filters out of the URL hash by @nfvelten in #1314
- feat(download): add Blackhole torrent handoff by @atirna in #1312
- feat(naming): add {FirstAuthor} template token by @viniciuspx in #1322
- fix: share rotating log file handlers by @eikopf in #1316
- fix(prowlarr): skip indexers in Prowlarr failure back-off by @jfmlima in #1324
- fix: prevent Anna's Archive download countdown resets by preserving browser sessions by @broglea in #1325
- build(deps): bump the docker-base-image-digests group with 2 updates by @dependabot[bot] in #1328
- build(deps-dev): bump the npm-deps group in /src/frontend with 4 updates by @dependabot[bot] in #1329
- build(deps-dev): bump vitest from 4.1.11 to 5.0.0 in /src/frontend by @dependabot[bot] in #1330
- fix(irc): search by surname, and rank the answer by author (#1331) by @Kukkerem in #1332
- fix(irc): rank a surname-only result as partial, not wrong (#1332) by @calibrain in #1334
- feat(sources): add Libgen as a direct catalogue search source by @klaidliadon in #1326
- refactor: make direct download provider-driven by @TomJansen in #1337
- fix(sources): restore Direct Download search errors and language matches by @calibrain in #1339
- fix(sources): send a Referer when fetching libgen ads.php pages by @klaidliadon in #1340
- Feature: Add Download counts to search result displays and Download sidebar by @RoninTech in #1336
- Extract archives when zip/rar are enabled as supported formats by @funkypenguin in #1343
- fix(download): complete consumed Blackhole handoffs by @atirna in #1345
- Add configurable word separator for naming templates by @viniciuspx in #1333
- build(deps): bump the python-deps group across 1 directory with 5 updates by @dependabot[bot] in #1344
- fix: unbreak main and follow up on the Blackhole handoff review by @calibrain in #1346
- build(deps): bump python-socketio from 5.16.4 to 5.17.0 in the python-deps group by @dependabot[bot] in #1347
- Added the ability to sort direct search results by Most downloads by @RoninTech in #1351
- feat: Add TorBox client support and settings integration by @marcelorodrigo in #1342
- refactor: extract the per-source release search out of /api/releases by @splitsec2 in #1355
- build(deps): bump the docker-base-image-digests group with 2 updates by @dependabot[bot] in #1348
- build(deps): bump the npm-deps group in /src/frontend with 9 updates by @dependabot[bot] in #1349
- build(deps): bump the gh-actions group with 6 updates by @dependabot[bot] in #1350
- feat(auth): provision proxy users as non-admin once an admin exists by @splitsec2 in #1356
- fix(users): apply user updates only after the payload validates by @splitsec2 in #1360
- fix(download): default is_admin to False in the request policy guard by @splitsec2 in #1358
- fix(oidc): reject backslash paths in the return_to sanitizer by @splitsec2 in #1359
- fix(queue): don't stamp CANCELLED over a finished download by @splitsec2 in #1361
- fix(download): check task ownership before serving queued files by @splitsec2 in #1357
- Feature: Show the AA search result stats by @RoninTech in #1362
- fix(requests): reject non-object items in the batch endpoint by @splitsec2 in #1369
- fix(http): keep the host of a protocol-relative download link by @splitsec2 in #1368
- fix(googlebooks): page by the capped size, not the raw limit by @splitsec2 in #1370
- fix(deluge): send seeding ratio limit under Deluge's own keys by @splitsec2 in #1367
- feat(auth): static API_KEY (env) accepted as Bearer or X-Api-Key, cookie or key by @gavinmcfall in #1366
- fix(auth): rename the API_KEY env var to SHELFMARK_API_KEY by @calibrain in #1374
- fix: bypass recordings, welib wrong-md5 links, footer build sha (#1364) by @calibrain in #1373
- build(deps): bump the python-deps group with 4 updates by @dependabot[bot] in #1375
- ci: debounce dev image builds instead of building nightly by @calibrain in #1376
- fix(download): stream a completed book instead of buffering it in RAM - lowering memory needs significantly by @splitsec2 in #1378
- perf(docker): keep the heavy build layers cacheable across builds - save 11minutes per build by @splitsec2 in #1379
- test(auth): stop proxy provisioning tests depending on run order by @splitsec2 in #1381
- feat(search): add a configurable default content type by @splitsec2 in #1371
- feat(library): mark search results already in a Calibre library by @splitsec2 in #1377
- Default to english when no lang is slected by @calibrain in #1396
- fix(auth): fail closed when auth prerequisites are missing (#1387) by @calibrain in #1397
- build(deps): bump the gh-actions group with 4 updates by @dependabot[bot] in #1395
- fix(audiobookbay): reuse the resolved magnet when retrying (#1388) by @calibrain in #1398
- build(deps): bump the npm-deps group in /src/frontend with 7 updates by @dependabot[bot] in #1394
- build(deps): bump seleniumbase from 4.54.9 to 4.54.10 in the python-deps group by @dependabot[bot] in #1382
- feat: narrator, series and bitrate columns for MyAnonamouse results by @adman234 in #1390
- build(deps): bump astral-sh/uv from 0.12.16 to 0.12.19 in the docker-base-image-digests group across 1 directory by @dependabot[bot] in #1392
- fix(mam): keep the session ID on MAM and rerun Prowlarr's exact search by @calibrain in #1399
- fix(ui): contain the result count added in #1362 by @calibrain in #1363
New Contributors
- @amasen02 made their first contribution in #1309
- @atirna made their first contribution in #1312
- @viniciuspx made their first contribution in #1322
- @eikopf made their first contribution in #1316
- @broglea made their first contribution in #1325
- @klaidliadon made their first contribution in #1326
- @TomJansen made their first contribution in #1337
- @RoninTech made their first contribution in #1336
- @marcelorodrigo made their first contribution in #1342
- @splitsec2 made their first contribution in #1355
- @gavinmcfall made their first contribution in #1366
Full Changelog: v1.3.15...v1.4.0