-
v1.3.15 Stable
released this
2026-09-02 21:12:52 +01:00 | 54 commits to main since this release📅 Originally published on GitHub: Wed, 02 Sep 2026 20:13:32 GMT
🏷️ Git tag created: Wed, 02 Sep 2026 20:12:52 GMTWhat's Changed
- seleniumbase==4.53.5 by @calibrain in https://github.com/calibrain/shelfmark/pull/1299
- fix(bypass): stop handing solvers DDoS-Guard's ?check=1 probe URL by @calibrain in https://github.com/calibrain/shelfmark/pull/1300
Full Changelog: https://github.com/calibrain/shelfmark/compare/v1.3.14...v1.3.15
Downloads
-
v1.3.14 Stable
released this
2026-09-01 17:59:33 +01:00 | 56 commits to main since this release📅 Originally published on GitHub: Tue, 01 Sep 2026 20:19:42 GMT
🏷️ Git tag created: Tue, 01 Sep 2026 16:59:33 GMTWhat's Changed
- build(deps): bump the gh-actions group with 3 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1280
- build(deps-dev): bump the npm-deps group in /src/frontend with 7 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1279
- build(deps): bump python from
ce40764tocae66f2by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1278 - build(deps): bump the python-deps group with 2 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1277
- fix(bypass): wait for the solved page before reading its source by @jfmlima in https://github.com/calibrain/shelfmark/pull/1286
- feat(homepage): Always show controls by @ndawg in https://github.com/calibrain/shelfmark/pull/1269
- fix: trim a credit list in search_author to the first name by @nfvelten in https://github.com/calibrain/shelfmark/pull/1290
- build(deps): bump the python-deps group with 3 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1288
- fix(search): stop reading real Anna's Archive pages as unsolved challenges by @calibrain in https://github.com/calibrain/shelfmark/pull/1294
- fix(search): reach the server's deadline, query one author (#1285, #1252) by @calibrain in https://github.com/calibrain/shelfmark/pull/1287
- fix(prowlarr): rank releases by author instead of querying for it (#1293) by @calibrain in https://github.com/calibrain/shelfmark/pull/1295
New Contributors
- @ndawg made their first contribution in https://github.com/calibrain/shelfmark/pull/1269
- @nfvelten made their first contribution in https://github.com/calibrain/shelfmark/pull/1290
Full Changelog: https://github.com/calibrain/shelfmark/compare/v1.3.13...v1.3.14
Downloads
-
v1.3.13 Stable
released this
2026-08-30 08:09:13 +01:00 | 67 commits to main since this release📅 Originally published on GitHub: Sun, 30 Aug 2026 16:17:02 GMT
🏷️ Git tag created: Sun, 30 Aug 2026 07:09:13 GMTWhat's Changed
- fix(download): escalating per-host cooldown on HTTP 429 by @calibrain in https://github.com/calibrain/shelfmark/pull/1263
- feat(audiobook): recognise .mp4 as an audiobook format by @jakesterpdx in https://github.com/calibrain/shelfmark/pull/1264
- feat(prowlarr): warn when an indexer declares a format Shelfmark can't process by @jakesterpdx in https://github.com/calibrain/shelfmark/pull/1265
- Change test for fake extension that wont work by @calibrain in https://github.com/calibrain/shelfmark/pull/1266
- feat(search): let each user pick their own default book languages by @helgehelge123 in https://github.com/calibrain/shelfmark/pull/1255
- fix(search): follow-ups to per-user book languages by @calibrain in https://github.com/calibrain/shelfmark/pull/1267
- feat(newznab): support multiple named indexers by @zab1996 in https://github.com/calibrain/shelfmark/pull/1271
- feat(packs): inspect multi-book releases and file each book separately by @lancemarks in https://github.com/calibrain/shelfmark/pull/1270
- build(deps): bump seleniumbase from 4.52.1 to 4.52.2 in the python-deps group by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1273
- fix(packs): don't disrupt normal downloads when inspecting for packs by @calibrain in https://github.com/calibrain/shelfmark/pull/1274
- fix(qbittorrent): keep magnets whose metadata is still pending by @jfmlima in https://github.com/calibrain/shelfmark/pull/1282
- fix: search, Prowlarr and qBittorrent follow-ups (#1276, #1283) by @calibrain in https://github.com/calibrain/shelfmark/pull/1284
New Contributors
- @jakesterpdx made their first contribution in https://github.com/calibrain/shelfmark/pull/1264
- @zab1996 made their first contribution in https://github.com/calibrain/shelfmark/pull/1271
- @lancemarks made their first contribution in https://github.com/calibrain/shelfmark/pull/1270
- @jfmlima made their first contribution in https://github.com/calibrain/shelfmark/pull/1282
Full Changelog: https://github.com/calibrain/shelfmark/compare/v1.3.12...v1.3.13
Downloads
-
v1.3.12 Stable
released this
2026-08-24 06:57:42 +01:00 | 79 commits to main since this release📅 Originally published on GitHub: Mon, 24 Aug 2026 05:58:49 GMT
🏷️ Git tag created: Mon, 24 Aug 2026 05:57:42 GMTWhat's Changed
- fix(prowlarr): stop turning indexer failures into empty results and 404s by @calibrain in https://github.com/calibrain/shelfmark/pull/1251
- fix: preserve multi-file audiobook folders by @mvanhorn in https://github.com/calibrain/shelfmark/pull/1237
- fix: group multi-file audiobooks that arrive as an archive by @calibrain in https://github.com/calibrain/shelfmark/pull/1254
- fix/group archive extracted audiobooks by @calibrain in https://github.com/calibrain/shelfmark/pull/1261
- build(deps): bump the python-deps group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1260
- build(deps): bump the gh-actions group with 5 updates by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1248
- build(deps): bump astral-sh/uv from 0.11.3 to 0.12.5 in the docker-base-image-digests group by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1247
- build(deps-dev): bump knip from 6.32.1 to 6.32.2 in /src/frontend in the npm-deps group by @dependabot[bot] in https://github.com/calibrain/shelfmark/pull/1246
- fix(search): let manual search switch media type under forced combined search by @calibrain in https://github.com/calibrain/shelfmark/pull/1262
Full Changelog: https://github.com/calibrain/shelfmark/compare/v1.3.11...v1.3.12
Downloads
-
v1.2.1 Stable
released this
2026-03-21 15:48:06 +00:00 | 303 commits to main since this release📅 Originally published on GitHub: Sat, 21 Mar 2026 16:01:14 GMT
🏷️ Git tag created: Sat, 21 Mar 2026 15:48:06 GMTNew Features
Combined Book + Audiobook Downloads (#773, #777)
- Added a combined search mode for book + audiobook results
- Select both formats in the release modal and download or request them together
- Supports mixed policies per content type
Additional Features (#741, #745)
- Split default release source selection by content type
- Split browser download by content type, with per-user override support
- Added a torrent removal option
- Added a "Hide links" option
- Added full Hardcover reading status support and separated reading statuses from dedicated lists
- Added an option to disable automatic Hardcover list removal on download
Improvements
- Improved whitelisted indexer searches by using title + author queries (#774)
- Search queries now persist after auth redirect (#735)
- IRC can now be used for audiobook searches (#735)
- Renamed BookLore output mode to Grimmory (#791)
- Moved SeleniumBase scratch paths to
/tmpfor better compatibility on some systems (#735) - Updated the frontend to React 19 and rolled up dependency updates (#765, #766)
Fixes
- Fixed stale activity dismiss handling (#768)
- Fixed browser downloads not firing in some completed-state cases (#745)
- Fixed Anna's Archive "All Languages" query generation and added a no-language fallback (#735)
- Fixed NFS transfer callback handling (#741)
- Improved qBittorrent completion handling for additional client setups (#741)
- Fixed a TypeScript build error (#770)
- Fixed entrypoint
gosuwrite testing (#772) - Blocked SSRF in the image cover proxy and sanitized settings tab names to prevent path traversal (#763)
Downloads
-
v1.2.0 Stable
released this
2026-03-07 19:13:28 +00:00 | 322 commits to main since this release📅 Originally published on GitHub: Sat, 07 Mar 2026 19:28:38 GMT
🏷️ Git tag created: Sat, 07 Mar 2026 19:13:28 GMTNew Features
Redesigned Search Tools (#712)
- Search fields restructured into a unified left-hand selector with dynamic options that adapt to each metadata provider
- Includes Author, Title, ISBN, Hardcover Lists, Hardcover Series, and Manual source query.
- Search mode and metadata provider are now selectable directly from the advanced search view
- Series search - search by series via Hardcover with live suggestions as you type
Hardcover List Integration (#694, #710, #719)
- Browse and search public Hardcover lists, or your own private lists, including "Want to Read"
- Either pick a list from your collection via the search selector dropdown, or paste a list URL into the search box to view its contents directly
- Add and remove books from lists and set "Want to Read" status - accessible from search results, the details modal, and the release modal
- Books are automatically removed from a list when you download them from that list's page
Manual Search (#687)
- New option to search release sources directly, bypassing metadata providers
- Respects user policies - hidden when the user's default policy is "Request Book" or "Blocked"
- Caution: Limited metadata means manual downloads may not play well with path/renaming templates
Download Retries (#679)
- Retry failed downloads manually from the activity sidebar
- Re-run failed post-processing without re-downloading the file
Admin Download on Behalf of Users (#679)
- New "Download as" selector lets admins download on behalf of any user, inheriting that user's output preferences (destination, email, BookLore library, etc.)
Per-User Search Defaults (#679)
- Users can now set their preferred search mode, metadata provider, and release source in User Preferences / My Account
Additional Features
- Sort releases by format - new sort option in the release modal (#679)
{OriginalName}renaming variable - keep the exact downloaded filename when using custom rename patterns (#679)- Manual request approval - admins can manually approve book/audiobook requests without requiring a download (#660)
Improvements
Download History & Activity Overhaul (#700, #703, #706)
- Completely rebuilt download tracking - downloads are now recorded in the database when queued, not just when they complete
- Each user gets their own independent activity and history view; admins continue to see everything
- Downloads, requests, and history now fully persist across container updates and restarts
- History entries can still serve downloaded files after tasks leave the active queue
Login Session Persistence (#686)
- Login sessions now persist across container updates and restarts via a stored secret key
Other Improvements
- File transfers now fall back to copy-then-delete when hardlink/move fails, improving reliability across filesystems (#660, #718)
- Content type dropdown is hidden when a content type is blocked for the current user (#705)
- Release scoring refactored for improved accuracy in the release modal (#665)
Fixes
- Apprise validation did not catch configuration errors early enough (#667, #668, #671)
- Apprise output was not visible in Shelfmark's logs (#667, #668, #671)
- Default language setting was not applied to search queries (#704)
- CWA ingest folder not detected when file movement fell back to copy (#691)
- Mirror list not refreshing correctly (#695)
- Default sort preference not applied consistently; series ordering broken (#715)
- Duplicate scoring keys in the release modal caused incorrect release ordering (#660)
- Search state went stale after completing a download (#660)
- Releases with multiple formats were incorrectly excluded by the format filter (#660)
- Clicking "Test connection" in settings reset unsaved changes on the page (#660)
- rTorrent download path not discovered correctly (#660)
/loginendpoint health check returned incorrect status (#660)- Hardcover author names with initials were not parsed correctly (#705)
- Custom scripts could block the main thread (#686)
- Mirror configuration wouldn't be overridden on app updates (#718)
- User and request database concurrency conflicts (#686, #668, #718)
- Users created via reverse proxy auth were not provisioned correctly (#665)
- Auth migration issue for users who ran dev builds during multi-user development (#665)
- Activity dismissals not working correctly in no-auth mode (#667)
Note: The last couple of updates rounded out Shelfmark's core feature set. Going forward, the focus shifts to stability, bug fixes and QOL improvements rather than new major features. See the README for details about feature scope and contributions. Thanks.
Downloads
-
v1.1.2 Stable
released this
2026-02-23 10:09:16 +00:00 | 347 commits to main since this release📅 Originally published on GitHub: Mon, 23 Feb 2026 10:58:05 GMT
🏷️ Git tag created: Mon, 23 Feb 2026 10:09:16 GMTImprovements
- SSL certificate validation setting - new toggle to disable SSL certificate verification for network requests, applied across all download clients, metadata providers, and bypass services. Toggle between enabled, disabled locally, and disabled overall. (#642)
- OIDC UX polish (#636):
HIDE_LOCAL_AUTHenv var - hides the password login option when OIDC is enabledOIDC_AUTO_REDIRECTenv var - automatically redirects to the OIDC provider on the login page- Improved first-time OIDC setup flow, including local admin user creation
- Callback URL label displayed on OIDC settings page
- Added OIDC env var configuration info in settings
- Added OIDC documentation (
docs/oidc.md) and Users & Requests documentation (docs/users-and-requests.md)
Fixes
- Fixed direct search mode request flow not completing correctly (#644)
- Fixed certain OIDC providers not linking emails to existing local user accounts (#642)
- Fixed OIDC name fallback when provider returns limited user info (#632)
- Fixed "All Languages" search filter reverting to the default language (#642)
- Fixed download/request dismissal not working correctly with multiple admin users (#642)
- Fixed request state handling on the details modal (#642)
- Fixed Prowlarr sort-by-peers option not appearing (#642)
- Fixed qBittorrent save path bug (#636)
- Unpinned flask dependency
Downloads
-
v1.1.1 Stable
released this
2026-02-20 13:42:15 +00:00 | 353 commits to main since this release📅 Originally published on GitHub: Fri, 20 Feb 2026 13:55:10 GMT
🏷️ Git tag created: Fri, 20 Feb 2026 13:42:15 GMTNew Features
Multi-User Request System (#615, #617, #620)
- Book request workflow -users can request books with notes; admins review, approve, and fulfil requests
- Policy-based configuration -set download/request/block policies per content type or per source (e.g. allow direct downloads, set Prowlarr to request-only)
- Per-user policy overrides for tailored access control
- New Activity Sidebar -replaces downloads sidebar, combining active downloads with requests; sidebar can now be pinned
- Request retry support and admin-level request management
OIDC Authentication (#606, #612)
- OIDC login with auto-discovery and group-based admin mapping. Works with all OIDC providers.
- Auto-provisioning of OIDC users (configurable) and email-based account linking
- Password fallback when OIDC is enabled to prevent admin lockout
Multi-User Support (#606, #612, #613)
- User management -create, edit, and delete users with admin/user roles
- Per-user settings -custom download destinations, BookLore library/path, email recipients, and
{User}template variable - Per-user download visibility -non-admins only see their own downloads
- Works with users from all sources (Local, OIDC, reverse proxy, Calibre-web)
Notification Support (#618)
- Apprise-based notifications for request events and download completions
- Supports sending notifications to virtually any service
- Configurable globally or per user, with full customization of events and notification services
AudiobookBay Release Source (#619, #621, #623)
- New release source - search ABB directly from the UI
- Results include title, language, format, bitrate and size
- Downloads via configured torrent client
- Configurable hostname, max search pages, and rate limit delay
Email Output Mode (#603, #604)
- Email delivery as an alternative output mode for downloaded books
- Send books as file attachments using configured SMTP email
- Email recipient can be configured per-user
Improvements
- Booklore Bookdrop API destination support as an alternative to specific library selection (#625)
- Download path options for all torrent clients (#625)
- Add tag support to qBittorrent downloads (#610)
- Add threading to file system operations for improved performance (#602)
- Enhanced custom scripting -JSON download info, more consistent activation, decoupled from staging (#591)
- Hardlink-before-move optimization for file transfers (#591)
- New BookLore API file formats (#591)
- Improved login cookie naming for reverse proxy compatibility (#591)
- Fix Transmission URL parsing (#591)
- Fix healthcheck starvation during large file processing (#591)
v1.1.1 hotfix
- Pin Flask dependency until session bug introduced in 3.1.3 is fixed
Downloads
-
released this
2026-02-06 10:04:31 +00:00 | 373 commits to main since this release📅 Originally published on GitHub: Fri, 06 Feb 2026 10:36:36 GMT
🏷️ Git tag created: Fri, 06 Feb 2026 10:04:31 GMTImprovements:
- Updated AA mirror list with latest available URLs
- Added customizable mirror list for AA URLs in the settings UI
- Added rich search and results formatting for whitelisted indexers, including format, language and author (Currently: MAM is whitelisted)
- Added "days" age for usenet/torrent releases
- Reworked internal bypasser to use pure CDP functions. Removed Chrome Webdriver dependencies and complexity.
- For external downloads, added locating and retry mechanism for discovering files instead of immediately failing
- Added client side storage of Book/Audiobook search preference
- Added M4A supported audiobook option
- Added flags column for freeleech, VIP etc, for all Prowlarr results. (#539 by @dawescc)
- Enhanced naming template features with arbitrary prefix/suffix support (#560 by @seekermarcel)
Fixes:
- Fixed reverse proxy base URL in edge cases
- Improved file transfer counting and logging with hardlink fallback warnings
- Fixed proxy auth header for REMOTE_USER scenario
- Fixed base path resolution timing issue for subpath deployments (#572 by @andykelk)
- Improved entrypoint chown efficiency
- Added
ONBOARDINGenv variable, default true
Downloads
-
released this
2026-01-26 08:02:26 +00:00 | 382 commits to main since this release📅 Originally published on GitHub: Mon, 26 Jan 2026 16:05:47 GMT
🏷️ Git tag created: Mon, 26 Jan 2026 08:02:26 GMT- Hotfix: Reverts Chromium and SeleniumBase dependencies to 1.0.1 versions - Fixes bypass not succeeding with slow download sources
Downloads
mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-09-24 09:00:22 +01:00