Skip to content

Releases: booklore-app/booklore

Release v2.0.5

01 Mar 16:13
0da83f7

Choose a tag to compare

🌟 What's New in v2.0.5

🐛 Bug Fixes

  • Fix flaky thisPeriod month test (#3130) by @acx10
  • Fix /app/data and /bookdrop ownership on fresh Docker installs (#3119) (#3128) by @acx10
  • fix(epub): restore Calibre + Booklore metadata extraction from PR #1879, add age/content rating new metadata fields.. (#3114) by @jadehawk
  • fix: Populate ASIN field from Audible metadata search results (#2985) by @blitzar3k
  • Fix thumbnail missing-file test assertion (#3121) by @acx10
  • fix image download failing on HTTPS URLs (#3118) by @acx10

🛠️ Refactoring & Maintenance

📦 Dependencies

⚙️ CI/CD

📖 Documentation

  • Add folder structure docs hint to library creator (#3123) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v2.0.5
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v2.0.5

Full Changelog: v2.0.4...v2.0.5

Release v2.0.4

28 Feb 01:54
9f6cd24

Choose a tag to compare

🌟 What's New in v2.0.4

🚀 New Features

✨ Enhancements

  • Improve book searcher UX (#3093) by @acx10
  • add codec, chapter count, and bitrate magic shelf filters (#3065) by @acx10
  • Save cover and fetch metadata by ISBN for physical books (#3035) (#3046) by @acx10

🎨 UI Tweaks

  • style tag component to match github label aesthetics (#3068) by @acx10

🐛 Bug Fixes

  • Fix audio player cover pushing controls off-screen on resize (#2927) (#3100) by @acx10
  • Fix metadata search save clearing age rating and content rating (#3069) (#3098) by @acx10
  • fix title sort using series name instead of book title (#3070) (#3097) by @acx10
  • Fix author endpoints leaking authors across library boundaries (#3077) (#3096) by @acx10
  • Fix search metadata tab showing stale title after editing (#3085) (#3092) by @acx10
  • Show bulk transfer buttons on mobile in metadata picker (#3083) (#3091) by @acx10
  • Fix selection footer overflow on mobile and narrow viewports (#3090) by @acx10
  • Clear book selection when navigating between libraries/shelves (#3073) (#3089) by @acx10
  • fix: Add non-lowercased auth header to include list (#3078) by @iszla
  • fix comic book deletion failing with transient entity error (#3000) (#3067) by @acx10
  • fix magic shelf audiobook duration filter (#3059) (#3064) by @acx10
  • revert uuid and eslint bumps that broke CI peer deps (#3058) by @acx10
  • fix NPE when re-attaching a book file to a physical book after deleting the previous one (#3056) by @acx10
  • fix auto-save on navigation not working in multi-book metadata editor (#3019) (#3051) by @acx10
  • fix series page blank for names with trailing whitespace (#3040) (#3049) by @acx10
  • fix prev/next book navigation arrows not showing in metadata viewer (#2969) (#3042) by @acx10
  • fix medium and high severity security vulnerabilities (#3062) by @acx10
  • fix medium severity security vulnerabilities (#3061) by @acx10
  • Fix critical and high severity security vulnerabilities (#3060) by @acx10

🛠️ Refactoring & Maintenance

  • Improve stats button icon in topbar (#3095) by @acx10
  • Add option to disable support button animation (#3075) (#3094) by @acx10
  • tune jvm flags for containerized deployments (#3063) by @acx10
  • fix(goodreads): handle null and blank timestamps in date conversion (#3034) by @balazs-szucs
  • show friendly error when email send fails and warn on large attachments (#3008) (#3055) by @acx10

📦 Dependencies

  • chore(deps): bump the gradle-dependencies group in /booklore-api with 8 updates (#3048) by @dependabot[bot]
  • chore(deps): bump the npm-dependencies group in /booklore-ui with 19 updates (#3050) by @dependabot[bot]

📖 Documentation

  • add backend and frontend conventions to contributing docs (#3081) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v2.0.4
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v2.0.4

Full Changelog: v2.0.3...v2.0.4

Release v2.0.3

26 Feb 19:10

Choose a tag to compare

🌟 What's New in v2.0.3

✨ Enhancements

  • Add detach book file feature and fix attach not respecting move preference (#3024) by @acx10

🎨 UI Tweaks

  • Use app-tag component with operation-based colors for audit log actions (#3029) by @acx10

🐛 Bug Fixes

  • Fix bookdrop metadata picker bugs (#3032) by @acx10
  • Fix sort resetting to default when toggling series collapse (#3031) by @acx10
  • Disable horizontal swipe navigation in CBX infinite/long strip scroll modes (#3026) by @acx10
  • Fix trailing spaces in metadata fields (#3025) by @acx10
  • fix(http): enable restricted headers for DNS rebinding protection and improve host header handling (#3022) by @balazs-szucs
  • Fix cover not persisting after metadata search copy (#3003) by @acx10
  • Fix cover preview overlay stuck after mobile back gesture (#3002) by @acx10
  • Fix attach file without move when source/target have different library paths (#2999) by @acx10
  • Fix stale selection state and shelf view not updating after edits (#2996) by @acx10
  • Fix bookdrop notification Hibernate NPE (#2993) by @acx10
  • Fix audiobook chapter extraction for M4B/M4A formats (#2976) by @acx10
  • Fix navigation links in the README file (#2964) by @vkhvostov
  • Apply content restrictions to OPDS and Komga feeds (#2937) by @acx10

📦 Dependencies

  • Bump rollup to fix path traversal CVE (#3004) by @acx10

🛠️ Refactoring & Maintenance

  • Translations update from Hosted Weblate (#2990) by @acx10
  • Translations update from Hosted Weblate (#2956) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v2.0.3
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v2.0.3

Full Changelog: v2.0.2...v2.0.3

Release v2.0.2

25 Feb 19:59
ab1abba

Choose a tag to compare

🌟 What's New in v2.0.2

✨ Enhancements

  • Use square covers for audiobook-only libraries (#2945) by @acx10

🐛 Bug Fixes

  • Fix Kobo sync URLs missing port when Host header omits it (#2986) by @acx10
  • Allow any file format for supplementary file uploads (#2954) by @acx10
  • Fix wrong icon on bookdrop finalize confirmation button (#2951) by @acx10
  • Fix Docker build for Alpine 3.23 unrar removal (#2950) by @acx10
  • Fix finished date update on physical books (#2949) by @acx10
  • Fix CBR/RAR5 support via unrar CLI fallback (#2948) by @acx10
  • Fix metadata weights and provider fields DTO mismatch with UI (#2947) by @acx10
  • Fix off-center info button on physical book cards (#2946) by @acx10
  • Fix settings deserialization failure on upgrade (#2928) by @acx10
  • Fix i18n fallback for languages with empty translation strings (#2898) by @acx10

🛠️ Refactoring & Maintenance

  • refactor(misc): Harden request handling, tighten defaults, and pin CI deps (#2878) by @balazs-szucs
  • Smarter AUTO_DETECT for audiobook series folders and multi-part files (#2900) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v2.0.2
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v2.0.2

Full Changelog: v2.0.1...v2.0.2

Release v2.0.1

24 Feb 04:15
eb1ee1d

Choose a tag to compare

🌟 What's New in v2.0.1

🐛 Bug Fixes

  • Fix max upload size description to include all file formats (#2894) by @acx10
  • Fix magic shelf physical book filter and polish UI (#2888) by @acx10
  • Fix metadata settings not saving due to null deserialization error (#2886) by @acx10
  • Fix Kobo download/image URLs using wrong port behind reverse proxy (#2875) by @acx10
  • Fix app crash on startup when /bookdrop volume is not mounted (#2873) by @acx10

🛠️ Refactoring & Maintenance

  • Hide sidecar tab for physical books (#2887) by @acx10
  • Translations update from Hosted Weblate (#2866) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v2.0.1
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v2.0.1

Full Changelog: v2.0.0...v2.0.1

Release v2.0.0

23 Feb 17:00
3e854d2

Choose a tag to compare

🌟 What's New in v2.0.0

This is the biggest Booklore release yet, with nearly 200 commits touching every part of the application:

  • Multi-Format Book Support & Audiobooks: Books can now have multiple file formats (EPUB, PDF, CBZ, etc.) attached to a single entry. Full audiobook support is here with a dedicated player, streaming playback, narrator filtering, and session tracking.
  • Duplicate Book Detection & Merge: Booklore can now detect duplicate books across your library. A new merge tool lets you combine duplicates, choose which formats to keep, and optionally move files, all without losing metadata.
  • Author Metadata via Audnexus: Author pages now pull rich metadata (bios, images) from the Audnexus API, with a dedicated author browser, detail page, and editor.
  • Series Browser: A brand new series browser page with search, filtering, sorting, and resizable cards for browsing your series collection at a glance.
  • Annotation Notebook: All your highlights, notes, and bookmarks are now collected in a searchable, paginated notebook view.
  • Audit Log System: Admins can now see a full audit trail of significant actions (user management, library changes, metadata operations) with geo flags, relative timestamps, and filterable logs.
  • Bidirectional Kobo Sync: Full two-way reading progress sync with Kobo devices, plus shelves and magic shelves now sync as Kobo tags.
  • Cascading Sidebar Filters: Filters now cascade, so selecting an author narrows available series, genres, etc. You can also customize which filters are visible.
  • 10+ New Statistics Charts: A massive expansion of the stats page with reading heatmaps, distribution charts, completion races, and more.
  • PDF Annotations & Reader Upgrades: The PDF reader now supports annotations, dark/light mode toggle, and Range streaming. The ebook reader gains fullscreen, keyboard shortcuts, and go-to-percentage. The CBX reader adds fullscreen, slideshow, RTL, and long strip mode.
  • Sidecar Metadata Files: Booklore can now read and write .metadata.json sidecar files alongside your books for portable metadata storage.
  • Extended Comic Metadata: Full ComicInfo.xml support with a dedicated comic metadata picker and write-back to CBZ/PDF files.
  • Internationalization via Weblate: Booklore is now fully translatable with Transloco and Weblate integration. Ships with 15+ languages including Hungarian, Slovenian, Croatian, Swedish, Chinese, and Japanese.
  • Java 25, Spring Boot 4, Gradle 9: The entire backend has been upgraded to the latest stack. Nginx has been removed; Angular is now served directly from Spring Boot.
  • Login Rate Limiting: Brute-force protection on the login endpoint. Plus new age and content rating support for restricted libraries.
  • Performance: Book list API optimized with ETag caching, delta sync, and IndexedDB. Project Lilliput compact object headers reduce heap usage.

🚀 New Features

  • Introduce multi-format book support, including audiobooks (#2486) by @acx10
  • Add duplicate book detection/merge and fix format-related data loss (#2820) by @acx10
  • Add author metadata via Audnexus with browser, detail, and editor pages (#2843) by @acx10
  • feat: add series browser page (#2771) by @acx10
  • feat: add annotation notebook with server-side pagination (#2736) by @acx10
  • feat: add audit log system for tracking admin-significant actions (#2759) by @acx10
  • Add bidirectional Kobo reading progress sync (#2791) by @acx10
  • feat(filters): implement cascading sidebar filters (#2616) by @acx10
  • feat(cbx-reader): add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts (#2632) by @acx10
  • feat(sidecar): add sidecar JSON metadata file support (#2657) by @acx10
  • feat(comic-metadata): add extended comic metadata support (#2654) by @acx10
  • feat(i18n): add Transloco translation framework with EN/ES and 7 language scaffolds (#2681) by @acx10
  • feat(api, build): Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 (#2597) by @balazs-szucs
  • Remove nginx and serve Angular directly from Spring Boot (#2662) by @acx10
  • feat: add login rate limiting to prevent brute-force attacks (#2761) by @acx10
  • feat(content-restrictions): add age rating and content rating support (#2619) by @acx10
  • feat(sorting): add multi-field sorting support (#2628) by @acx10
  • feat(metadata): add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ (#2552) by @balazs-szucs
  • feat(metadata) Save basic metadata to EPUB file - Bonus use Calibre Custom Columns for importing metadata. (#1879) by @jadehawk
  • feat: add grouped field dropdown and composite fields to magic shelf (#2750) by @acx10
  • feat(filters): add customizable visible filters setting (#2625) by @acx10
  • Add 10 advanced stats charts (#2850) by @acx10
  • feat(stats): add 5 new user statistics charts (#2703) by @acx10
  • feat(i18n): add Weblate integration and auth translations (#2727) by @acx10
  • feat: add else clause and value modifiers to file naming patterns (#2724) by @acx10
  • feat: add button to fetch metadata from book file (#2739) by @acx10
  • feat(google-books): add optional API key configuration (#2629) by @acx10

✨ Enhancements

  • feat(reader): add PDF annotations, Range streaming, and optimized chunk loading (#2701) by @acx10
  • feat(reader): add fullscreen, keyboard shortcuts, search cancel, and go-to-percentage (#2698) by @acx10
  • feat(reader): add dark/light mode toggle and improved close button to PDF reader (#2699) by @acx10
  • feat(kobo-sync): add user scoped 2 way kobo sync (#2452) by @b3nk3
  • feat(kobo-sync): Sync Shelves and Magic Shelves to Kobo Tags (#2236) by @xcashy
  • Redesign series page layout and book list tab (#2847) by @acx10
  • feat(sort): replace compound sort options with atomic fields and multi-sort support (#2686) by @acx10
  • Add moveFiles option to attach/merge and per-book delete in duplicate merger (#2833) by @acx10
  • feat: enhance audit logs with geo flags, relative time, and UX improvements (#2760) by @acx10
  • feat(bookdrop): add ability to poll the bookdrop folder (#2768) by @arjunsrinivasan1997
  • feat: add metadata presence filter to magic shelf (#2757) by @acx10
  • feat(upload): add upload progress tracking with progress bar and stats (#2640) by @acx10
  • feat(email): add format selection to email book dialog (#2650) by @acx10
  • feat(pwa): Enable fullscreen mode for Android immersive reading (#2649) by @alondero
  • Add Hungarian and Slovenian language support (#2846) by @acx10
  • fix(library-service): prevent concurrent library scans with a tracking set (#2637) by @balazs-szucs
  • feat: add configurable sidebar width setting (#2749) by @acx10
  • refactor(download): simplify file download to use browser native handling (#2639) by @acx10

🎨 UI Tweaks

  • Add visual polish to book card component (#2788) by @acx10
  • refactor: centralize access-denied card styles into shared mixin (#2515) by @acx10

🐛 Bug Fixes

  • fix(auth): resolve DST-related login failure for refresh tokens (#2624) by @acx10
  • Fix Kobo sync HeadersTooLargeException for large libraries (#2809) by @acx10
  • fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' (#2503) by @balazs-szucs
  • fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching (#2502) by @balazs-szucs
  • fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions (#2536) by @balazs-szucs
  • fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. (#2481) by @balazs-szucs
  • Fix null collection errors for PDFs, audiobooks, and physical books (#2817) by @acx10
  • fix(library-processing): re-fetch library entity after clearing entity manager during rescan (#2507) by @balazs-szucs
  • fix(file-move): ensure file moves are rolled back if database update fails (#2588) by @balazs-szucs
  • fix(file-move): update empty directory cleanup to handle multiple library paths (#2634) by @balazs-szucs
  • Fix CBR/CB7 to CBZ conversion losing track of file path (#2835) by @acx10
  • fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy (#2593) by @balazs-szucs
  • Fix PDF reader not loading alternate format files (#2836) by @acx10
  • fix(epub-cover-extract): improve cover image extraction with fallback handling (#2585) by @balazs-szucs
  • fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries (#2636) by @balazs-szucs
  • fix(book-rule-evaluator): fix file type handling and add mapping for specific formats to fix magic shelve based on filetype (#2480) by @balazs-szucs
  • Fix magic shelf rule evaluation for numeric comparisons (#2795) by @acx10
  • Fix read status NULL progress handling in rule evaluator (#2821) by @acx10
  • Fix bookdrop race condition processing files before fully written (#2785) by @acx10
  • fix(bookdrop): handle file modifications in Bookdrop event handler (#2559) by @balazs-szucs
  • fix(hardcover-sync): Don't send repeated read status to Hardcover.app (#2609) by @PhasecoreX
  • fix(api): Select correct Hardcover.app ISBN from lookup results (#2530) by @PhasecoreX
  • fix(ui): fix memory leaks and cascading API calls in metadata editor (#2716) by @acx10
  • fix: replace Quill editor with native HTML rendering for book descriptions (#2733) by @acx10
  • Fix reading stats queries not accounting for timezone (#2844) by @acx10
  • Fix reading session timeline long sessions, tooltip perf, and week mismatch (#2848) by @acx10
  • fix(reading-stats,ui): update heatmap to use local time formatting… (#2587) by @WorldTeacher
  • fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components (#2562) by @balazs-szucs
  • fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection (#2592) by @balazs-szucs
  • Fix OP...
Read more

Release v1.18.5

24 Jan 17:15
53f448f

Choose a tag to compare

🌟 What's New in v1.18.5

🚀 New Features

  • feat(book-browser): add responsive grid columns for mobile view (#2446) by @acx10

✨ Enhancements

  • feat(dashboard-settings): update sort field options for Surname, and Personal Rating (#2456) by @balazs-szucs
  • feat(themes): add AMOLED theme with distinct light and dark color schemes (#2457) by @balazs-szucs
  • feat(book-browser): preserve scroll position when navigating back fro… (#2449) by @acx10
  • feat(pwa): add offline handling and fallback support (#2444) by @acx10

🐛 Bug Fixes

  • fix(stats): show tooltip for single bubble and allow overflow in auth… (#2443) by @acx10
  • fix(opds): fix regression with browsing shelves (#2423) by @piffio

🛠️ Refactoring & Maintenance

  • fix(ui): use local asset for page background (#2445) by @imnotjames
  • perf: lazy-load accordion content in library metadata settings (#2442) by @acx10
  • fix(cbx-reader): prevent touch drag on mobile and fix header title ov… (#2441) by @acx10
  • refactor: reduce re-renders and improve filter sidebar performance (#2440) by @acx10
  • Add clear warning when deleting books that files will be permanently … (#2438) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v1.18.5
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v1.18.5

Full Changelog: v1.18.4...v1.18.5

Release v1.18.4

22 Jan 20:54
74fa38b

Choose a tag to compare

🌟 What's New in v1.18.4

This release introduces some of the largest and most impactful features Booklore has seen so far:

  • New Ebook Reader: Introducing a responsive, clean, and intuitive reader based on Foliate.js. Supports EPUB, AZW3, MOBI, and FB2 formats, with highlights, notes, and bookmarks for seamless reading.
  • Bi-Directional Reading Progress Sync: Reading progress now syncs automatically between Booklore and KoReader, with Kobo support coming in upcoming releases.
  • Streaming Ebook Reading (Beta): Large ebooks, such as multi-hundred-page cookbooks or textbooks, can now be read page by page, minimizing memory and storage usage.
  • Optimized PDF & CBZ Streaming: PDF and CBX files no longer need to be fully extracted for reading; pages are streamed directly, improving performance for large files.
  • Enhanced Charts: All charts have been redesigned for clarity and visual appeal. Three new chart types have been added: Taste Ratings, Reading Backlog, and Series Progress.
  • Komga-Compatible API: Connect your Komga apps, such as Mihon or Komelia, directly to Booklore for unified library management.
  • Progressive Web App Support: Booklore can now be installed as a PWA, allowing access without browser UI limitations for a cleaner reading experience.

Changes since (v1.18.1 to v1.18.4)

  • feat(book-uploader): Improved UX of drag&drop when adding books. (#2410) by @arthurgiroux
  • Fix 500 error in OPDS (#2434) by @acx10
  • fix(scan-library): prevent NPE during rescan for books with missing file associations (#2429) by @balazs-szucs
  • Fix H/L keys interfering with search in EPUB reader (#2426) by @acx10
  • Fix email sending failure due to lazy-loaded bookFiles outside session (#2405)
  • Hide Page View toggle on mobile portrait since two-page view is unsup… (#2425) by @acx10
  • fix(db): remove unused CBX/PDF cache cleanup cron entries (#2402)
  • Fix showstopper bugs in v1.18.0 (#2399) by @acx10
  • fix(reading sessions): Split sessions, re-calculate times in book overview (#2393) by @WorldTeacher

🚀 New Features (v1.18.0)

  • Introduced additional library charts to surface meaningful insights (#2390) by @acx10
  • Introduce three new analytical charts: Taste Ratings, Reading Backlog, and Series Progress (#2383) by @acx10
  • Initialize progress web app (#2351) by @acx10
  • feat(custom-covers): add functionality to generate custom covers for selected books (#2355) by @balazs-szucs
  • Implement streaming EPUB reader with on-demand loading (#2350) by @acx10
  • Feat/komga api (#2071) by @farfromrefug
  • Revamp streaming PDF reader to render pages on demand (#2332) by @acx10
  • Revamp the CBX reader layout for improved structure and usability (#2330) by @acx10
  • Add support for annotations and book notes in the new ebook reader (#2313) by @acx10
  • Bidirectional progress sync between koreader and booklore reader (#2312) by @acx10
  • feat(metadata): add configurable enabled fields for metadata editor a… (#2299) by @acx10
  • Implement Public Shelves (#1969) by @cjd
  • Introduce a new eBook reader with support for EPUB, MOBI, AZW3, and FB2 formats (#2258) by @acx10
  • feat(metadata): add auto-save metadata feature in editor settings (#2274) by @balazs-szucs
  • RanobeDB Light Novel metadata provider (#2221) by @Nedra1998

✨ Enhancements (v1.18.0)

  • feat(metadata): add 'Replace When Provided' option to metadata replacement modes (#2379) by @balazs-szucs
  • feat(google-parser): improve Google Books API integration with improved metadata handling and series extraction (#2375) by @balazs-szucs
  • feat(metadata): add replace mode option for metadata fetching (#2356) by @balazs-szucs
  • feat(comicVine): improve comic metadata structure with additional credits and fields (#2358) by @balazs-szucs
  • feat(library): add validation for library path accessibility during rescan (#2347) by @balazs-szucs
  • feat(ui): add password confirmations (#2291) by @arjunsrinivasan1997
  • feat(sort): Add sort by author surname and first name (#2292) by @balazs-szucs
  • feat(directory-picker): add selection actions for folders, add buttons for select all, deselect all, and select current folder (#2293) by @balazs-szucs
  • feat(hardcover): Improve Hardcover metadata accuracy and rate limiting (#2303) by @balazs-szucs
  • feat(shelf): add shelf filtering options and integrate into book processing (#2268) by @balazs-szucs
  • Stream CBX contents directly from the archive instead of unzipping and caching files (#2229) by @acx10

🎨 UI Tweaks (v1.18.0)

  • Polish view and metadata settings page UI (#2362) by @acx10
  • Optimize metadata picker for mobile layout (#2361) by @acx10

🐛 Bug Fixes (v1.18.0)

  • Fix touch issues with ebook reader (#2395) by @acx10
  • Fix failing book cover search due to HTTP 403 (#2392) by @acx10
  • fix: Refactor HardcoverSyncService to improve edition and page count (#2389) by @boludo00
  • fix(kobo): Update KoboResources file to match Calibre web to fix issues with Overdrive (#2367) by @cra21k
  • fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata (#2385) by @balazs-szucs
  • fix(PathPatternResolver): remove leading slash from resolved pattern if first component is empty (#2339) by @balazs-szucs
  • fix(ui): map comic book extensions to CBX filter in book details (#2338) by @balazs-szucs
  • fix: Reading stats UI (#2322) by @WorldTeacher
  • fix: split reading sessions based on the date (#2316) by @WorldTeacher
  • fix(chart-ui): resolve glitches in chart rendering (#2290) by @acx10
  • fix(comicvine): fix metadata search failing for titles containing '#' (#2273) by @balazs-szucs
  • fix(reading statistics ui): small fixes (#2276) by @WorldTeacher
  • fix(metadata-picker): handle null and empty values in fetched metadata processing (#2269) by @balazs-szucs
  • fix(OpdsFeedService): detect ZIP mime type for FB2 files when zipped (#2242) by @balazs-szucs
  • fix(epub): strip formatting from ISBN values to ensure correct extraction (#2248) by @balazs-szucs
  • feat(deps): add JPEG2000 support in PDFBox with Jai ImageIO dependencies (#2250) by @balazs-szucs
  • fix(metadata): missing lubimyczytac fields and fetch retry (#2179) by @Spynacz

🛠️ Refactoring & Maintenance (v1.18.0)

  • Refactor: Enhance healthcheck response with version info and DTO (#2378) by @hyun4965
  • perf(regex): introduce regex patterns for improved string handling invarious services (#2386) by @balazs-szucs
  • Fix: Yes/No buttons on bookdrop import have reversed colors/icons (#2363) by @acx10
  • Normalize book progress percentage rounding (#2359) by @acx10
  • chore(metadata-warning): add warnings about metadata quality for file naming and moving features (#2340) by @balazs-szucs
  • fix(api,epub): add cover extraction fallback using meta cover attribute for URL-encoded cover image hrefs (#2310) by @ajbanck
  • fix(amazon-parser): handle Amazon error responses and improve error logging (#2294) by @balazs-szucs
  • fix(metadata): ensure authors/genres are replaced, not merged, during metadata update by defaulting mergeCategories to false (#2304) by @balazs-szucs
  • chore(docs): update copyright year in README (#2323) by @balazs-szucs
  • Refactor metadata picker and parsers for Amazon, Goodreads, and Google (#2327) by @acx10
  • Refactor dialogs for a consistent look and feel (#2321) by @acx10
  • Refactor common dialog header and footer components (#2318) by @acx10
  • Refactor the Book Browser to simplify and streamline the implementation (#2317) by @acx10
  • Centralize book tag color definitions (#2314) by @acx10
  • Remove support for the legacy ePub reader (#2287) by @acx10
  • fix(parsers): increase request interval to prevent rate limiting issues (#2282) by @balazs-szucs
  • (Refactor) Extract file-specific information from book (#1734) by @piffio
  • Update query to use startTime instead of createdAt (#2272) by @WorldTeacher
  • feat(archive): add ArchiveType via Magic Numbers detection and integrate into book processing (#2220) by @balazs-szucs
  • fix(epub): normalize text nodes in EPUB metadata content.opf (#2222) by @balazs-szucs

📦 Dependencies (v1.18.0)

  • chore(deps): bump tar from 7.5.2 to 7.5.6 in /booklore-ui (#2387) by @dependabot[bot]
  • chore(deps): bump lodash-es from 4.17.21 to 4.17.23 in /booklore-ui (#2388) by @dependabot[bot]
  • chore: update Angular dependencies to latest minor/patch versions (#2285) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v1.18.4
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v1.18.4

Full Changelog: v1.17.0...v1.18.4

📸 Screenshots

Screenshot 2026-01-22 at 12 10 47 PM Screenshot 2026-01-22 at 12 06 23 PM Screenshot 2026-01-22 at 12 02 35 PM Screenshot 2026-01-22 at 12 01 46 PM Screenshot 2026-01-22 at 12 04 22 PM Screenshot 2026-01-22 at 12 04 27 PM Screenshot 2026-01-22 at 12 04 33 PM
Read more

Release v1.17.0

09 Jan 22:48
bde772e

Choose a tag to compare

🌟 What's New in v1.17.0

This release brings some exciting new features! Highlights include:

  • Custom Fonts in the EPUB Reader: Users can now upload and use up to 10 of their favorite fonts for a personalized reading experience.
  • Reading Progress Sync: Progress (in percent) now syncs to hardcover books and is tracked per user.
  • Revamped Metadata Search: The search UI has been redesigned to provide live, real-time results for a smoother and faster experience.

Plus, numerous performance improvements and bug fixes across the app. Enjoy!

🚀 New Features

✨ Enhancements

  • feat(series-page): implement multi-select functionality for book selection and add footer actions (#2167) by @balazs-szucs
  • Add per-user font management permission (#2210) by @acx10
  • Support individual “write to file” settings per book type, with configurable file size limits (#2206) by @acx10
  • feat(ComicVine): use structured search for ComicVine metadata fetching instead of generic /search (#2193) by @balazs-szucs
  • refactor(images): migrate to TwelveMonkeys ImageIO with graceful unsupported format handling (#2188) by @balazs-szucs
  • Show a persistent loader while a large library is being created (#2200) by @acx10
  • feat(magic-shelf): add ISBN-10 and ISBN-13 metadata fields to book rules (#2196) by @balazs-szucs
  • Implement memoization in the book card to reduce CPU usage during scrolling (#2198) by @acx10
  • feat(metadata): enhance XML parsing with secure processing and improved error handling (#2163) by @balazs-szucs
  • feat(magic-shelf): add genre filter support and improve category labeling in rule fields (#2075) by @balazs-szucs
  • feat(cover-generator): enhance cover resolution and redesign layout for improved aesthetics (#2125) by @balazs-szucs

🐛 Bug Fixes

  • fix(ui): use view preference override for magic shelves (#2215) by @xcashy
  • fix(kobo-sync): fix Kobo series handling for empty names and series number formatting (#2185) by @xcashy
  • fix(cbx): "Archive too large" error for invalid/corrupt CBX files (#2205) by @balazs-szucs
  • Fix: correctly update book cover hash on metadata refresh (#2149) by @acx10

🛠️ Refactoring & Maintenance

  • fix: Ignore access denied when doing library scan instead of failing (fixes #1342, #2122) (#2132) by @halkeye
  • feat(ui): add series number overlay for More in Series (#2208) by @xcashy
  • refactor(frontend): resolve linting errors, and EPUB reader lifecycle errors (#2127) by @balazs-szucs
  • Test (#2201) by @acx10
  • fix(parser): handle missing results table in GoodReads search and log a warning (instead of erroring) (#2187) by @balazs-szucs
  • fix(lubimyczytac): Fix Lubimyczytac metadata lock persistence (#2194) by @balazs-szucs
  • Move custom fonts management to Reader tab (#2161) by @acx10
  • fix(api): kobo proxy server unit tests (#2136) by @CounterClops
  • fix(docs): update issue report links to use specific templates (#2156) by @balazs-szucs
  • Add Vitest frontend tests to CI with JUnit reporting and coverage (#2151) by @acx10
  • Introduce Vitest as the frontend Angular testing framework for Booklore (#2150) by @acx10

📦 Dependencies

🐳 Docker Images

  • Docker Hub: booklore/booklore:v1.17.0
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v1.17.0

Full Changelog: v1.16.5...v1.17.0

📸 Screenshots:

Screenshot 2026-01-09 at 3 39 40 PM Screenshot 2026-01-09 at 3 39 57 PM Screenshot 2026-01-09 at 3 42 06 PM Screenshot 2026-01-09 at 3 40 29 PM Screenshot 2026-01-09 at 3 41 15 PM

Release v1.16.5

05 Jan 02:26
0510fb9

Choose a tag to compare

🌟 What's New in v1.16.5

🐛 Bug Fixes

  • Fix: Kobo sync missing book covers (v1.16.4) (#2147) by @acx10
  • Fix: User update fails when libraries are assigned (#2144) by @acx10

📖 Documentation

  • Update pull request, feature request, and bug report templates (#2145) by @acx10

🐳 Docker Images

  • Docker Hub: booklore/booklore:v1.16.5
  • GitHub Container Registry: ghcr.io/booklore-app/booklore:v1.16.5

Full Changelog: v1.16.4...v1.16.5