61dfa270f448b668340b1fde007efbf5aeeddd9b
17 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 15423676b5 |
chore(deps): update booklore-app/booklore to v2 (major) (#4176)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [booklore-app/BookLore](https://github.com/booklore-app/BookLore) | major | `v1.18.5` → `v2.0.1` | | [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | major | `v1.18.5` → `v2.0.1` | --- ### Release Notes <details> <summary>booklore-app/BookLore (booklore-app/BookLore)</summary> ### [`v2.0.1`](https://github.com/booklore-app/booklore/releases/tag/v2.0.1) [Compare Source](https://github.com/booklore-app/BookLore/compare/v2.0.0...v2.0.1) #### 🌟 What's New in v2.0.1 #### 🐛 Bug Fixes - Fix max upload size description to include all file formats ([#​2894](https://github.com/booklore-app/BookLore/issues/2894)) by [@​acx10](https://github.com/acx10) - Fix magic shelf physical book filter and polish UI ([#​2888](https://github.com/booklore-app/BookLore/issues/2888)) by [@​acx10](https://github.com/acx10) - Fix metadata settings not saving due to null deserialization error ([#​2886](https://github.com/booklore-app/BookLore/issues/2886)) by [@​acx10](https://github.com/acx10) - Fix Kobo download/image URLs using wrong port behind reverse proxy ([#​2875](https://github.com/booklore-app/BookLore/issues/2875)) by [@​acx10](https://github.com/acx10) - Fix app crash on startup when /bookdrop volume is not mounted ([#​2873](https://github.com/booklore-app/BookLore/issues/2873)) by [@​acx10](https://github.com/acx10) #### 🛠️ Refactoring & Maintenance - Hide sidecar tab for physical books ([#​2887](https://github.com/booklore-app/BookLore/issues/2887)) by [@​acx10](https://github.com/acx10) - Translations update from Hosted Weblate ([#​2866](https://github.com/booklore-app/BookLore/issues/2866)) by [@​acx10](https://github.com/acx10) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v2.0.1` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.1` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1> ### [`v2.0.0`](https://github.com/booklore-app/booklore/releases/tag/v2.0.0) [Compare Source](https://github.com/booklore-app/BookLore/compare/v1.18.5...v2.0.0) #### 🌟 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](https://github.com/booklore-app/BookLore/issues/2486)) by [@​acx10](https://github.com/acx10) - Add duplicate book detection/merge and fix format-related data loss ([#​2820](https://github.com/booklore-app/BookLore/issues/2820)) by [@​acx10](https://github.com/acx10) - Add author metadata via Audnexus with browser, detail, and editor pages ([#​2843](https://github.com/booklore-app/BookLore/issues/2843)) by [@​acx10](https://github.com/acx10) - feat: add series browser page ([#​2771](https://github.com/booklore-app/BookLore/issues/2771)) by [@​acx10](https://github.com/acx10) - feat: add annotation notebook with server-side pagination ([#​2736](https://github.com/booklore-app/BookLore/issues/2736)) by [@​acx10](https://github.com/acx10) - feat: add audit log system for tracking admin-significant actions ([#​2759](https://github.com/booklore-app/BookLore/issues/2759)) by [@​acx10](https://github.com/acx10) - Add bidirectional Kobo reading progress sync ([#​2791](https://github.com/booklore-app/BookLore/issues/2791)) by [@​acx10](https://github.com/acx10) - feat(filters): implement cascading sidebar filters ([#​2616](https://github.com/booklore-app/BookLore/issues/2616)) by [@​acx10](https://github.com/acx10) - feat(cbx-reader): add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts ([#​2632](https://github.com/booklore-app/BookLore/issues/2632)) by [@​acx10](https://github.com/acx10) - feat(sidecar): add sidecar JSON metadata file support ([#​2657](https://github.com/booklore-app/BookLore/issues/2657)) by [@​acx10](https://github.com/acx10) - feat(comic-metadata): add extended comic metadata support ([#​2654](https://github.com/booklore-app/BookLore/issues/2654)) by [@​acx10](https://github.com/acx10) - feat(i18n): add Transloco translation framework with EN/ES and 7 language scaffolds ([#​2681](https://github.com/booklore-app/BookLore/issues/2681)) by [@​acx10](https://github.com/acx10) - feat(api, build): Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 ([#​2597](https://github.com/booklore-app/BookLore/issues/2597)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Remove nginx and serve Angular directly from Spring Boot ([#​2662](https://github.com/booklore-app/BookLore/issues/2662)) by [@​acx10](https://github.com/acx10) - feat: add login rate limiting to prevent brute-force attacks ([#​2761](https://github.com/booklore-app/BookLore/issues/2761)) by [@​acx10](https://github.com/acx10) - feat(content-restrictions): add age rating and content rating support ([#​2619](https://github.com/booklore-app/BookLore/issues/2619)) by [@​acx10](https://github.com/acx10) - feat(sorting): add multi-field sorting support ([#​2628](https://github.com/booklore-app/BookLore/issues/2628)) by [@​acx10](https://github.com/acx10) - feat(metadata): add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ ([#​2552](https://github.com/booklore-app/BookLore/issues/2552)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(metadata) Save basic metadata to EPUB file - Bonus use Calibre Custom Columns for importing metadata. ([#​1879](https://github.com/booklore-app/BookLore/issues/1879)) by [@​jadehawk](https://github.com/jadehawk) - feat: add grouped field dropdown and composite fields to magic shelf ([#​2750](https://github.com/booklore-app/BookLore/issues/2750)) by [@​acx10](https://github.com/acx10) - feat(filters): add customizable visible filters setting ([#​2625](https://github.com/booklore-app/BookLore/issues/2625)) by [@​acx10](https://github.com/acx10) - Add 10 advanced stats charts ([#​2850](https://github.com/booklore-app/BookLore/issues/2850)) by [@​acx10](https://github.com/acx10) - feat(stats): add 5 new user statistics charts ([#​2703](https://github.com/booklore-app/BookLore/issues/2703)) by [@​acx10](https://github.com/acx10) - feat(i18n): add Weblate integration and auth translations ([#​2727](https://github.com/booklore-app/BookLore/issues/2727)) by [@​acx10](https://github.com/acx10) - feat: add else clause and value modifiers to file naming patterns ([#​2724](https://github.com/booklore-app/BookLore/issues/2724)) by [@​acx10](https://github.com/acx10) - feat: add button to fetch metadata from book file ([#​2739](https://github.com/booklore-app/BookLore/issues/2739)) by [@​acx10](https://github.com/acx10) - feat(google-books): add optional API key configuration ([#​2629](https://github.com/booklore-app/BookLore/issues/2629)) by [@​acx10](https://github.com/acx10) #### ✨ Enhancements - feat(reader): add PDF annotations, Range streaming, and optimized chunk loading ([#​2701](https://github.com/booklore-app/BookLore/issues/2701)) by [@​acx10](https://github.com/acx10) - feat(reader): add fullscreen, keyboard shortcuts, search cancel, and go-to-percentage ([#​2698](https://github.com/booklore-app/BookLore/issues/2698)) by [@​acx10](https://github.com/acx10) - feat(reader): add dark/light mode toggle and improved close button to PDF reader ([#​2699](https://github.com/booklore-app/BookLore/issues/2699)) by [@​acx10](https://github.com/acx10) - feat(kobo-sync): add user scoped 2 way kobo sync ([#​2452](https://github.com/booklore-app/BookLore/issues/2452)) by [@​b3nk3](https://github.com/b3nk3) - feat(kobo-sync): Sync Shelves and Magic Shelves to Kobo Tags ([#​2236](https://github.com/booklore-app/BookLore/issues/2236)) by [@​xcashy](https://github.com/xcashy) - Redesign series page layout and book list tab ([#​2847](https://github.com/booklore-app/BookLore/issues/2847)) by [@​acx10](https://github.com/acx10) - feat(sort): replace compound sort options with atomic fields and multi-sort support ([#​2686](https://github.com/booklore-app/BookLore/issues/2686)) by [@​acx10](https://github.com/acx10) - Add moveFiles option to attach/merge and per-book delete in duplicate merger ([#​2833](https://github.com/booklore-app/BookLore/issues/2833)) by [@​acx10](https://github.com/acx10) - feat: enhance audit logs with geo flags, relative time, and UX improvements ([#​2760](https://github.com/booklore-app/BookLore/issues/2760)) by [@​acx10](https://github.com/acx10) - feat(bookdrop): add ability to poll the bookdrop folder ([#​2768](https://github.com/booklore-app/BookLore/issues/2768)) by [@​arjunsrinivasan1997](https://github.com/arjunsrinivasan1997) - feat: add metadata presence filter to magic shelf ([#​2757](https://github.com/booklore-app/BookLore/issues/2757)) by [@​acx10](https://github.com/acx10) - feat(upload): add upload progress tracking with progress bar and stats ([#​2640](https://github.com/booklore-app/BookLore/issues/2640)) by [@​acx10](https://github.com/acx10) - feat(email): add format selection to email book dialog ([#​2650](https://github.com/booklore-app/BookLore/issues/2650)) by [@​acx10](https://github.com/acx10) - feat(pwa): Enable fullscreen mode for Android immersive reading ([#​2649](https://github.com/booklore-app/BookLore/issues/2649)) by [@​alondero](https://github.com/alondero) - Add Hungarian and Slovenian language support ([#​2846](https://github.com/booklore-app/BookLore/issues/2846)) by [@​acx10](https://github.com/acx10) - fix(library-service): prevent concurrent library scans with a tracking set ([#​2637](https://github.com/booklore-app/BookLore/issues/2637)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat: add configurable sidebar width setting ([#​2749](https://github.com/booklore-app/BookLore/issues/2749)) by [@​acx10](https://github.com/acx10) - refactor(download): simplify file download to use browser native handling ([#​2639](https://github.com/booklore-app/BookLore/issues/2639)) by [@​acx10](https://github.com/acx10) #### 🎨 UI Tweaks - Add visual polish to book card component ([#​2788](https://github.com/booklore-app/BookLore/issues/2788)) by [@​acx10](https://github.com/acx10) - refactor: centralize access-denied card styles into shared mixin ([#​2515](https://github.com/booklore-app/BookLore/issues/2515)) by [@​acx10](https://github.com/acx10) #### 🐛 Bug Fixes - fix(auth): resolve DST-related login failure for refresh tokens ([#​2624](https://github.com/booklore-app/BookLore/issues/2624)) by [@​acx10](https://github.com/acx10) - Fix Kobo sync HeadersTooLargeException for large libraries ([#​2809](https://github.com/booklore-app/BookLore/issues/2809)) by [@​acx10](https://github.com/acx10) - fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#​2503](https://github.com/booklore-app/BookLore/issues/2503)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#​2502](https://github.com/booklore-app/BookLore/issues/2502)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#​2536](https://github.com/booklore-app/BookLore/issues/2536)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#​2481](https://github.com/booklore-app/BookLore/issues/2481)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix null collection errors for PDFs, audiobooks, and physical books ([#​2817](https://github.com/booklore-app/BookLore/issues/2817)) by [@​acx10](https://github.com/acx10) - fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#​2507](https://github.com/booklore-app/BookLore/issues/2507)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(file-move): ensure file moves are rolled back if database update fails ([#​2588](https://github.com/booklore-app/BookLore/issues/2588)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(file-move): update empty directory cleanup to handle multiple library paths ([#​2634](https://github.com/booklore-app/BookLore/issues/2634)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix CBR/CB7 to CBZ conversion losing track of file path ([#​2835](https://github.com/booklore-app/BookLore/issues/2835)) by [@​acx10](https://github.com/acx10) - fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#​2593](https://github.com/booklore-app/BookLore/issues/2593)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix PDF reader not loading alternate format files ([#​2836](https://github.com/booklore-app/BookLore/issues/2836)) by [@​acx10](https://github.com/acx10) - fix(epub-cover-extract): improve cover image extraction with fallback handling ([#​2585](https://github.com/booklore-app/BookLore/issues/2585)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#​2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(book-rule-evaluator): fix file type handling and add mapping for specific formats to fix magic shelve based on filetype ([#​2480](https://github.com/booklore-app/BookLore/issues/2480)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix magic shelf rule evaluation for numeric comparisons ([#​2795](https://github.com/booklore-app/BookLore/issues/2795)) by [@​acx10](https://github.com/acx10) - Fix read status NULL progress handling in rule evaluator ([#​2821](https://github.com/booklore-app/BookLore/issues/2821)) by [@​acx10](https://github.com/acx10) - Fix bookdrop race condition processing files before fully written ([#​2785](https://github.com/booklore-app/BookLore/issues/2785)) by [@​acx10](https://github.com/acx10) - fix(bookdrop): handle file modifications in Bookdrop event handler ([#​2559](https://github.com/booklore-app/BookLore/issues/2559)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#​2609](https://github.com/booklore-app/BookLore/issues/2609)) by [@​PhasecoreX](https://github.com/PhasecoreX) - fix(api): Select correct Hardcover.app ISBN from lookup results ([#​2530](https://github.com/booklore-app/BookLore/issues/2530)) by [@​PhasecoreX](https://github.com/PhasecoreX) - fix(ui): fix memory leaks and cascading API calls in metadata editor ([#​2716](https://github.com/booklore-app/BookLore/issues/2716)) by [@​acx10](https://github.com/acx10) - fix: replace Quill editor with native HTML rendering for book descriptions ([#​2733](https://github.com/booklore-app/BookLore/issues/2733)) by [@​acx10](https://github.com/acx10) - Fix reading stats queries not accounting for timezone ([#​2844](https://github.com/booklore-app/BookLore/issues/2844)) by [@​acx10](https://github.com/acx10) - Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#​2848](https://github.com/booklore-app/BookLore/issues/2848)) by [@​acx10](https://github.com/acx10) - fix(reading-stats,ui): update heatmap to use local time formatting… ([#​2587](https://github.com/booklore-app/BookLore/issues/2587)) by [@​WorldTeacher](https://github.com/WorldTeacher) - fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#​2562](https://github.com/booklore-app/BookLore/issues/2562)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#​2592](https://github.com/booklore-app/BookLore/issues/2592)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix OPDS shelf filter cartesian product ([#​2837](https://github.com/booklore-app/BookLore/issues/2837)) by [@​acx10](https://github.com/acx10) - fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#​2385](https://github.com/booklore-app/BookLore/issues/2385)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix additional file uploader bugs and improve metadata viewer ([#​2816](https://github.com/booklore-app/BookLore/issues/2816)) by [@​acx10](https://github.com/acx10) - Fix PWA offline fallback blocking localhost access when internet is disconnected ([#​2784](https://github.com/booklore-app/BookLore/issues/2784)) by [@​acx10](https://github.com/acx10) - fix(audiobook-reader): use preload=none for immediate streaming playback ([#​2518](https://github.com/booklore-app/BookLore/issues/2518)) by [@​acx10](https://github.com/acx10) - fix: reset audiobook progress and clear cached progress in UI ([#​2711](https://github.com/booklore-app/BookLore/issues/2711)) by [@​acx10](https://github.com/acx10) - Fix cbx reader prev/next book stacking on close ([#​2858](https://github.com/booklore-app/BookLore/issues/2858)) by [@​acx10](https://github.com/acx10) - Fix ebook reader header not hiding on mobile tap ([#​2857](https://github.com/booklore-app/BookLore/issues/2857)) by [@​acx10](https://github.com/acx10) - fix(reader): enable text copy in ebook reader ([#​2702](https://github.com/booklore-app/BookLore/issues/2702)) by [@​acx10](https://github.com/acx10) - Fix CBZ reader scroll position reset in infinite scroll mode ([#​2781](https://github.com/booklore-app/BookLore/issues/2781)) by [@​acx10](https://github.com/acx10) - Fix column gap +/- buttons in eBook reader default settings ([#​2780](https://github.com/booklore-app/BookLore/issues/2780)) by [@​acx10](https://github.com/acx10) - Fix email provider creation failing due to null shared field ([#​2794](https://github.com/booklore-app/BookLore/issues/2794)) by [@​acx10](https://github.com/acx10) - Fix audit logs pagination bug and add URL query param sync ([#​2787](https://github.com/booklore-app/BookLore/issues/2787)) by [@​acx10](https://github.com/acx10) - Fix audit log description overflow for bulk metadata refresh ([#​2783](https://github.com/booklore-app/BookLore/issues/2783)) by [@​acx10](https://github.com/acx10) - Fix multiple author card menus opening simultaneously ([#​2852](https://github.com/booklore-app/BookLore/issues/2852)) by [@​acx10](https://github.com/acx10) - Fix Goodreads label mappings and format config ([#​2779](https://github.com/booklore-app/BookLore/issues/2779)) by [@​AlfredSimpson](https://github.com/AlfredSimpson) - fix(ui): encode filter values in query params to handle commas in names ([#​2717](https://github.com/booklore-app/BookLore/issues/2717)) by [@​acx10](https://github.com/acx10) - fix(ui): prevent footer submenu from rendering off screen ([#​2714](https://github.com/booklore-app/BookLore/issues/2714)) by [@​acx10](https://github.com/acx10) - fix(ui): inline mobile charts submenu to prevent layout overflow ([#​2713](https://github.com/booklore-app/BookLore/issues/2713)) by [@​acx10](https://github.com/acx10) - fix(ui): correctly format lubimyczytac external rating link ([#​2491](https://github.com/booklore-app/BookLore/issues/2491)) by [@​sebhewelt](https://github.com/sebhewelt) - Fix iconDisplay binding syntax in metadata viewer ([#​2772](https://github.com/booklore-app/BookLore/issues/2772)) by [@​WorldTeacher](https://github.com/WorldTeacher) - Fix mobile toolbar overlapping on small screens ([#​2856](https://github.com/booklore-app/BookLore/issues/2856)) by [@​acx10](https://github.com/acx10) - Fix book browser header title overflow on mobile ([#​2808](https://github.com/booklore-app/BookLore/issues/2808)) by [@​acx10](https://github.com/acx10) - fix(book-browser): resolve footer menu not hiding after navigation back ([#​2626](https://github.com/booklore-app/BookLore/issues/2626)) by [@​acx10](https://github.com/acx10) - fix: align frontend Page interfaces with VIA\_DTO serialization format ([#​2751](https://github.com/booklore-app/BookLore/issues/2751)) by [@​acx10](https://github.com/acx10) - fix: show provider icons in metadata viewer when only ID is present ([#​2734](https://github.com/booklore-app/BookLore/issues/2734)) by [@​acx10](https://github.com/acx10) - fix: hide show-more button when description fits without truncation ([#​2766](https://github.com/booklore-app/BookLore/issues/2766)) by [@​acx10](https://github.com/acx10) - fix: use audiobook thumbnail for audiobook entries in notebook ([#​2763](https://github.com/booklore-app/BookLore/issues/2763)) by [@​acx10](https://github.com/acx10) - fix: show session numbers in book ([#​2696](https://github.com/booklore-app/BookLore/issues/2696)) by [@​WorldTeacher](https://github.com/WorldTeacher) - fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#​2684](https://github.com/booklore-app/BookLore/issues/2684)) by [@​acx10](https://github.com/acx10) - fix(series-multi-select): Fix transparency in series multi select pop-up ([#​2555](https://github.com/booklore-app/BookLore/issues/2555)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix: Filter text overwrites on long options ([#​2540](https://github.com/booklore-app/BookLore/issues/2540)) by [@​acx10](https://github.com/acx10) - Fix: Lock icons do not stay with publisher and series name input fields ([#​2539](https://github.com/booklore-app/BookLore/issues/2539)) by [@​acx10](https://github.com/acx10) - fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#​2690](https://github.com/booklore-app/BookLore/issues/2690)) by [@​acx10](https://github.com/acx10) #### ⚡ Performance - perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#​2753](https://github.com/booklore-app/BookLore/issues/2753)) by [@​acx10](https://github.com/acx10) - perf: enable compact object headers (Project Lilliput) ([#​2755](https://github.com/booklore-app/BookLore/issues/2755)) by [@​acx10](https://github.com/acx10) #### 🛠️ Refactoring & Maintenance - refactor: split BookService into BookFileService and BookMetadataManageService ([#​2758](https://github.com/booklore-app/BookLore/issues/2758)) by [@​acx10](https://github.com/acx10) - chore: fix memory leaks, add aria-labels, improve type safety and logging ([#​2764](https://github.com/booklore-app/BookLore/issues/2764)) by [@​acx10](https://github.com/acx10) - chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#​2762](https://github.com/booklore-app/BookLore/issues/2762)) by [@​acx10](https://github.com/acx10) - perf: strip unused fields from book list API response ([#​2741](https://github.com/booklore-app/BookLore/issues/2741)) by [@​acx10](https://github.com/acx10) - perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#​2598](https://github.com/booklore-app/BookLore/issues/2598)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(metadata): return full metadata from parsers instead of previews ([#​2689](https://github.com/booklore-app/BookLore/issues/2689)) by [@​acx10](https://github.com/acx10) - feat: comic metadata picker, lazy-load providers, and UI improvements ([#​2679](https://github.com/booklore-app/BookLore/issues/2679)) by [@​acx10](https://github.com/acx10) - Add complete translations for all supported languages ([#​2831](https://github.com/booklore-app/BookLore/issues/2831)) by [@​acx10](https://github.com/acx10) - Add Hungarian and Slovenian language support ([#​2846](https://github.com/booklore-app/BookLore/issues/2846)) by [@​acx10](https://github.com/acx10) - Add Croatian and Swedish translations for login page ([#​2786](https://github.com/booklore-app/BookLore/issues/2786)) by [@​acx10](https://github.com/acx10) - feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#​2742](https://github.com/booklore-app/BookLore/issues/2742)) by [@​acx10](https://github.com/acx10) - feat: add i18n translations for book components, services, and readers (en/es) ([#​2738](https://github.com/booklore-app/BookLore/issues/2738)) by [@​acx10](https://github.com/acx10) - fix(i18n): dynamic sidebar translations and UI font normalization ([#​2683](https://github.com/booklore-app/BookLore/issues/2683)) by [@​acx10](https://github.com/acx10) - feat: disable PDF printing for users without download permission ([#​2737](https://github.com/booklore-app/BookLore/issues/2737)) by [@​acx10](https://github.com/acx10) - feat(ui): add file name column to table view and include filename in search ([#​2712](https://github.com/booklore-app/BookLore/issues/2712)) by [@​acx10](https://github.com/acx10) - feat(ui): provide hyperlinks for books as book cards in grid view ([#​2500](https://github.com/booklore-app/BookLore/issues/2500)) by [@​berb](https://github.com/berb) - feat(ui): Add sort by filePath ([#​1180](https://github.com/booklore-app/BookLore/issues/1180) and [#​2364](https://github.com/booklore-app/BookLore/issues/2364)) ([#​2512](https://github.com/booklore-app/BookLore/issues/2512)) by [@​chiguirepower](https://github.com/chiguirepower) - feat(icons): Made icons for libraries and shelves optional with no default icons. ([#​2599](https://github.com/booklore-app/BookLore/issues/2599)) by [@​arthurgiroux](https://github.com/arthurgiroux) - fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#​2694](https://github.com/booklore-app/BookLore/issues/2694)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#​2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#​2513](https://github.com/booklore-app/BookLore/issues/2513)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(ui): reload shelves when enabling Kobo sync ([#​2715](https://github.com/booklore-app/BookLore/issues/2715)) by [@​acx10](https://github.com/acx10) - fix(ui): standardize button labels and styles across components ([#​2560](https://github.com/booklore-app/BookLore/issues/2560)) by [@​balazs-szucs](https://github.com/balazs-szucs) - chore: redesign README for cleaner layout and visual polish ([#​2728](https://github.com/booklore-app/BookLore/issues/2728)) by [@​acx10](https://github.com/acx10) - fix: make README logo visible in GitHub light mode ([#​2756](https://github.com/booklore-app/BookLore/issues/2756)) by [@​acx10](https://github.com/acx10) - chore: clean up PR template and contributing guide ([#​2660](https://github.com/booklore-app/BookLore/issues/2660)) by [@​acx10](https://github.com/acx10) - fix(file naming): add leading zero to series index ([#​2642](https://github.com/booklore-app/BookLore/issues/2642)) by [@​WorldTeacher](https://github.com/WorldTeacher) - Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#​2620](https://github.com/booklore-app/BookLore/issues/2620)) by [@​jmswangit](https://github.com/jmswangit) - test(API): add missing tests for BookMapperV2 ([#​2495](https://github.com/booklore-app/BookLore/issues/2495)) by [@​piffio](https://github.com/piffio) - fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#​2520](https://github.com/booklore-app/BookLore/issues/2520)) by [@​acx10](https://github.com/acx10) - fix(ui): clean cached properties ([#​2499](https://github.com/booklore-app/BookLore/issues/2499)) by [@​piffio](https://github.com/piffio) - fix(additional-file-uploader): add file size validation with UI feedback ([#​2516](https://github.com/booklore-app/BookLore/issues/2516)) by [@​acx10](https://github.com/acx10) - fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#​2479](https://github.com/booklore-app/BookLore/issues/2479)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(series-page): add missing overlay preference service to book card ([#​2466](https://github.com/booklore-app/BookLore/issues/2466)) by [@​xcashy](https://github.com/xcashy) - fix(docker): add build and gradle directories to volumes in docker compose ([#​2459](https://github.com/booklore-app/BookLore/issues/2459)) by [@​balazs-szucs](https://github.com/balazs-szucs) #### 📦 Dependencies - chore(deps): bump org.springframework.boot from 4.0.2 to 4.0.3 in /booklore-api in the gradle-dependencies group ([#​2813](https://github.com/booklore-app/BookLore/issues/2813)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#​2814](https://github.com/booklore-app/BookLore/issues/2814)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#​2687](https://github.com/booklore-app/BookLore/issues/2687)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#​2721](https://github.com/booklore-app/BookLore/issues/2721)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#​2542](https://github.com/booklore-app/BookLore/issues/2542)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#​2659](https://github.com/booklore-app/BookLore/issues/2659)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#​2720](https://github.com/booklore-app/BookLore/issues/2720)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#​2805](https://github.com/booklore-app/BookLore/issues/2805)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#​2534](https://github.com/booklore-app/BookLore/issues/2534)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#​2815](https://github.com/booklore-app/BookLore/issues/2815)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#​2722](https://github.com/booklore-app/BookLore/issues/2722)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump [@​modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@​angular/cli](https://github.com/angular/cli) in /booklore-ui ([#​2612](https://github.com/booklore-app/BookLore/issues/2612)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump actions/setup-node from 4 to 6 ([#​2573](https://github.com/booklore-app/BookLore/issues/2573)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) #### ⚙️ CI/CD - ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#​2705](https://github.com/booklore-app/BookLore/issues/2705)) by [@​acx10](https://github.com/acx10) - chore: add performance label to release drafter categories ([#​2754](https://github.com/booklore-app/BookLore/issues/2754)) by [@​acx10](https://github.com/acx10) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v2.0.0` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.0` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0> #### 📸 Screenshots <img width="750" alt="Book browser with audiobook library and cascading sidebar filters" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-browser-audiobooks-library.png" /> <img width="750" alt="Book detail page with multi-format support and alternative formats" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-detail-multi-format.png" /> <img width="300" alt="Audiobook player with streaming playback" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/audiobook-player.png" /> <img width="300" alt="Ebook reader" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/ebook-reader.png" /> <img width="750" alt="CBX comic reader with fullscreen, slideshow, RTL, and long strip mode" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/cbx-comic-reader.png" /> <img width="750" alt="Annotation notebook with highlights, notes, and bookmarks" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/annotation-notebook.png" /> <img width="750" alt="Author browser with Audnexus metadata" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/author-browser.png" /> <img width="750" alt="Series browser with search, filter, and sort" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/series-browser.png" /> <img width="500" alt="Reading Clock statistics chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-clock-stats.png" /> <img width="750" alt="Reading Survival Curve and Book Length Sweet Spot charts" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-survival-book-length-charts.png" /> <img width="750" alt="Reading Completion Race chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-completion-race.png" /> </details> <details> <summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary> ### [`v2.0.1`](https://github.com/booklore-app/booklore/releases/tag/v2.0.1) [Compare Source](https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1) #### 🌟 What's New in v2.0.1 #### 🐛 Bug Fixes - Fix max upload size description to include all file formats ([#​2894](https://github.com/booklore-app/booklore/issues/2894)) by [@​acx10](https://github.com/acx10) - Fix magic shelf physical book filter and polish UI ([#​2888](https://github.com/booklore-app/booklore/issues/2888)) by [@​acx10](https://github.com/acx10) - Fix metadata settings not saving due to null deserialization error ([#​2886](https://github.com/booklore-app/booklore/issues/2886)) by [@​acx10](https://github.com/acx10) - Fix Kobo download/image URLs using wrong port behind reverse proxy ([#​2875](https://github.com/booklore-app/booklore/issues/2875)) by [@​acx10](https://github.com/acx10) - Fix app crash on startup when /bookdrop volume is not mounted ([#​2873](https://github.com/booklore-app/booklore/issues/2873)) by [@​acx10](https://github.com/acx10) #### 🛠️ Refactoring & Maintenance - Hide sidecar tab for physical books ([#​2887](https://github.com/booklore-app/booklore/issues/2887)) by [@​acx10](https://github.com/acx10) - Translations update from Hosted Weblate ([#​2866](https://github.com/booklore-app/booklore/issues/2866)) by [@​acx10](https://github.com/acx10) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v2.0.1` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.1` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v2.0.0...v2.0.1> ### [`v2.0.0`](https://github.com/booklore-app/booklore/releases/tag/v2.0.0) [Compare Source](https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0) #### 🌟 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](https://github.com/booklore-app/booklore/issues/2486)) by [@​acx10](https://github.com/acx10) - Add duplicate book detection/merge and fix format-related data loss ([#​2820](https://github.com/booklore-app/booklore/issues/2820)) by [@​acx10](https://github.com/acx10) - Add author metadata via Audnexus with browser, detail, and editor pages ([#​2843](https://github.com/booklore-app/booklore/issues/2843)) by [@​acx10](https://github.com/acx10) - feat: add series browser page ([#​2771](https://github.com/booklore-app/booklore/issues/2771)) by [@​acx10](https://github.com/acx10) - feat: add annotation notebook with server-side pagination ([#​2736](https://github.com/booklore-app/booklore/issues/2736)) by [@​acx10](https://github.com/acx10) - feat: add audit log system for tracking admin-significant actions ([#​2759](https://github.com/booklore-app/booklore/issues/2759)) by [@​acx10](https://github.com/acx10) - Add bidirectional Kobo reading progress sync ([#​2791](https://github.com/booklore-app/booklore/issues/2791)) by [@​acx10](https://github.com/acx10) - feat(filters): implement cascading sidebar filters ([#​2616](https://github.com/booklore-app/booklore/issues/2616)) by [@​acx10](https://github.com/acx10) - feat(cbx-reader): add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts ([#​2632](https://github.com/booklore-app/booklore/issues/2632)) by [@​acx10](https://github.com/acx10) - feat(sidecar): add sidecar JSON metadata file support ([#​2657](https://github.com/booklore-app/booklore/issues/2657)) by [@​acx10](https://github.com/acx10) - feat(comic-metadata): add extended comic metadata support ([#​2654](https://github.com/booklore-app/booklore/issues/2654)) by [@​acx10](https://github.com/acx10) - feat(i18n): add Transloco translation framework with EN/ES and 7 language scaffolds ([#​2681](https://github.com/booklore-app/booklore/issues/2681)) by [@​acx10](https://github.com/acx10) - feat(api, build): Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 ([#​2597](https://github.com/booklore-app/booklore/issues/2597)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Remove nginx and serve Angular directly from Spring Boot ([#​2662](https://github.com/booklore-app/booklore/issues/2662)) by [@​acx10](https://github.com/acx10) - feat: add login rate limiting to prevent brute-force attacks ([#​2761](https://github.com/booklore-app/booklore/issues/2761)) by [@​acx10](https://github.com/acx10) - feat(content-restrictions): add age rating and content rating support ([#​2619](https://github.com/booklore-app/booklore/issues/2619)) by [@​acx10](https://github.com/acx10) - feat(sorting): add multi-field sorting support ([#​2628](https://github.com/booklore-app/booklore/issues/2628)) by [@​acx10](https://github.com/acx10) - feat(metadata): add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ ([#​2552](https://github.com/booklore-app/booklore/issues/2552)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(metadata) Save basic metadata to EPUB file - Bonus use Calibre Custom Columns for importing metadata. ([#​1879](https://github.com/booklore-app/booklore/issues/1879)) by [@​jadehawk](https://github.com/jadehawk) - feat: add grouped field dropdown and composite fields to magic shelf ([#​2750](https://github.com/booklore-app/booklore/issues/2750)) by [@​acx10](https://github.com/acx10) - feat(filters): add customizable visible filters setting ([#​2625](https://github.com/booklore-app/booklore/issues/2625)) by [@​acx10](https://github.com/acx10) - Add 10 advanced stats charts ([#​2850](https://github.com/booklore-app/booklore/issues/2850)) by [@​acx10](https://github.com/acx10) - feat(stats): add 5 new user statistics charts ([#​2703](https://github.com/booklore-app/booklore/issues/2703)) by [@​acx10](https://github.com/acx10) - feat(i18n): add Weblate integration and auth translations ([#​2727](https://github.com/booklore-app/booklore/issues/2727)) by [@​acx10](https://github.com/acx10) - feat: add else clause and value modifiers to file naming patterns ([#​2724](https://github.com/booklore-app/booklore/issues/2724)) by [@​acx10](https://github.com/acx10) - feat: add button to fetch metadata from book file ([#​2739](https://github.com/booklore-app/booklore/issues/2739)) by [@​acx10](https://github.com/acx10) - feat(google-books): add optional API key configuration ([#​2629](https://github.com/booklore-app/booklore/issues/2629)) by [@​acx10](https://github.com/acx10) #### ✨ Enhancements - feat(reader): add PDF annotations, Range streaming, and optimized chunk loading ([#​2701](https://github.com/booklore-app/booklore/issues/2701)) by [@​acx10](https://github.com/acx10) - feat(reader): add fullscreen, keyboard shortcuts, search cancel, and go-to-percentage ([#​2698](https://github.com/booklore-app/booklore/issues/2698)) by [@​acx10](https://github.com/acx10) - feat(reader): add dark/light mode toggle and improved close button to PDF reader ([#​2699](https://github.com/booklore-app/booklore/issues/2699)) by [@​acx10](https://github.com/acx10) - feat(kobo-sync): add user scoped 2 way kobo sync ([#​2452](https://github.com/booklore-app/booklore/issues/2452)) by [@​b3nk3](https://github.com/b3nk3) - feat(kobo-sync): Sync Shelves and Magic Shelves to Kobo Tags ([#​2236](https://github.com/booklore-app/booklore/issues/2236)) by [@​xcashy](https://github.com/xcashy) - Redesign series page layout and book list tab ([#​2847](https://github.com/booklore-app/booklore/issues/2847)) by [@​acx10](https://github.com/acx10) - feat(sort): replace compound sort options with atomic fields and multi-sort support ([#​2686](https://github.com/booklore-app/booklore/issues/2686)) by [@​acx10](https://github.com/acx10) - Add moveFiles option to attach/merge and per-book delete in duplicate merger ([#​2833](https://github.com/booklore-app/booklore/issues/2833)) by [@​acx10](https://github.com/acx10) - feat: enhance audit logs with geo flags, relative time, and UX improvements ([#​2760](https://github.com/booklore-app/booklore/issues/2760)) by [@​acx10](https://github.com/acx10) - feat(bookdrop): add ability to poll the bookdrop folder ([#​2768](https://github.com/booklore-app/booklore/issues/2768)) by [@​arjunsrinivasan1997](https://github.com/arjunsrinivasan1997) - feat: add metadata presence filter to magic shelf ([#​2757](https://github.com/booklore-app/booklore/issues/2757)) by [@​acx10](https://github.com/acx10) - feat(upload): add upload progress tracking with progress bar and stats ([#​2640](https://github.com/booklore-app/booklore/issues/2640)) by [@​acx10](https://github.com/acx10) - feat(email): add format selection to email book dialog ([#​2650](https://github.com/booklore-app/booklore/issues/2650)) by [@​acx10](https://github.com/acx10) - feat(pwa): Enable fullscreen mode for Android immersive reading ([#​2649](https://github.com/booklore-app/booklore/issues/2649)) by [@​alondero](https://github.com/alondero) - Add Hungarian and Slovenian language support ([#​2846](https://github.com/booklore-app/booklore/issues/2846)) by [@​acx10](https://github.com/acx10) - fix(library-service): prevent concurrent library scans with a tracking set ([#​2637](https://github.com/booklore-app/booklore/issues/2637)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat: add configurable sidebar width setting ([#​2749](https://github.com/booklore-app/booklore/issues/2749)) by [@​acx10](https://github.com/acx10) - refactor(download): simplify file download to use browser native handling ([#​2639](https://github.com/booklore-app/booklore/issues/2639)) by [@​acx10](https://github.com/acx10) #### 🎨 UI Tweaks - Add visual polish to book card component ([#​2788](https://github.com/booklore-app/booklore/issues/2788)) by [@​acx10](https://github.com/acx10) - refactor: centralize access-denied card styles into shared mixin ([#​2515](https://github.com/booklore-app/booklore/issues/2515)) by [@​acx10](https://github.com/acx10) #### 🐛 Bug Fixes - fix(auth): resolve DST-related login failure for refresh tokens ([#​2624](https://github.com/booklore-app/booklore/issues/2624)) by [@​acx10](https://github.com/acx10) - Fix Kobo sync HeadersTooLargeException for large libraries ([#​2809](https://github.com/booklore-app/booklore/issues/2809)) by [@​acx10](https://github.com/acx10) - fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#​2503](https://github.com/booklore-app/booklore/issues/2503)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#​2502](https://github.com/booklore-app/booklore/issues/2502)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#​2536](https://github.com/booklore-app/booklore/issues/2536)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#​2481](https://github.com/booklore-app/booklore/issues/2481)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix null collection errors for PDFs, audiobooks, and physical books ([#​2817](https://github.com/booklore-app/booklore/issues/2817)) by [@​acx10](https://github.com/acx10) - fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#​2507](https://github.com/booklore-app/booklore/issues/2507)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(file-move): ensure file moves are rolled back if database update fails ([#​2588](https://github.com/booklore-app/booklore/issues/2588)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(file-move): update empty directory cleanup to handle multiple library paths ([#​2634](https://github.com/booklore-app/booklore/issues/2634)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix CBR/CB7 to CBZ conversion losing track of file path ([#​2835](https://github.com/booklore-app/booklore/issues/2835)) by [@​acx10](https://github.com/acx10) - fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#​2593](https://github.com/booklore-app/booklore/issues/2593)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix PDF reader not loading alternate format files ([#​2836](https://github.com/booklore-app/booklore/issues/2836)) by [@​acx10](https://github.com/acx10) - fix(epub-cover-extract): improve cover image extraction with fallback handling ([#​2585](https://github.com/booklore-app/booklore/issues/2585)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#​2636](https://github.com/booklore-app/booklore/issues/2636)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(book-rule-evaluator): fix file type handling and add mapping for specific formats to fix magic shelve based on filetype ([#​2480](https://github.com/booklore-app/booklore/issues/2480)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix magic shelf rule evaluation for numeric comparisons ([#​2795](https://github.com/booklore-app/booklore/issues/2795)) by [@​acx10](https://github.com/acx10) - Fix read status NULL progress handling in rule evaluator ([#​2821](https://github.com/booklore-app/booklore/issues/2821)) by [@​acx10](https://github.com/acx10) - Fix bookdrop race condition processing files before fully written ([#​2785](https://github.com/booklore-app/booklore/issues/2785)) by [@​acx10](https://github.com/acx10) - fix(bookdrop): handle file modifications in Bookdrop event handler ([#​2559](https://github.com/booklore-app/booklore/issues/2559)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#​2609](https://github.com/booklore-app/booklore/issues/2609)) by [@​PhasecoreX](https://github.com/PhasecoreX) - fix(api): Select correct Hardcover.app ISBN from lookup results ([#​2530](https://github.com/booklore-app/booklore/issues/2530)) by [@​PhasecoreX](https://github.com/PhasecoreX) - fix(ui): fix memory leaks and cascading API calls in metadata editor ([#​2716](https://github.com/booklore-app/booklore/issues/2716)) by [@​acx10](https://github.com/acx10) - fix: replace Quill editor with native HTML rendering for book descriptions ([#​2733](https://github.com/booklore-app/booklore/issues/2733)) by [@​acx10](https://github.com/acx10) - Fix reading stats queries not accounting for timezone ([#​2844](https://github.com/booklore-app/booklore/issues/2844)) by [@​acx10](https://github.com/acx10) - Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#​2848](https://github.com/booklore-app/booklore/issues/2848)) by [@​acx10](https://github.com/acx10) - fix(reading-stats,ui): update heatmap to use local time formatting… ([#​2587](https://github.com/booklore-app/booklore/issues/2587)) by [@​WorldTeacher](https://github.com/WorldTeacher) - fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#​2562](https://github.com/booklore-app/booklore/issues/2562)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#​2592](https://github.com/booklore-app/booklore/issues/2592)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix OPDS shelf filter cartesian product ([#​2837](https://github.com/booklore-app/booklore/issues/2837)) by [@​acx10](https://github.com/acx10) - fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#​2385](https://github.com/booklore-app/booklore/issues/2385)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix additional file uploader bugs and improve metadata viewer ([#​2816](https://github.com/booklore-app/booklore/issues/2816)) by [@​acx10](https://github.com/acx10) - Fix PWA offline fallback blocking localhost access when internet is disconnected ([#​2784](https://github.com/booklore-app/booklore/issues/2784)) by [@​acx10](https://github.com/acx10) - fix(audiobook-reader): use preload=none for immediate streaming playback ([#​2518](https://github.com/booklore-app/booklore/issues/2518)) by [@​acx10](https://github.com/acx10) - fix: reset audiobook progress and clear cached progress in UI ([#​2711](https://github.com/booklore-app/booklore/issues/2711)) by [@​acx10](https://github.com/acx10) - Fix cbx reader prev/next book stacking on close ([#​2858](https://github.com/booklore-app/booklore/issues/2858)) by [@​acx10](https://github.com/acx10) - Fix ebook reader header not hiding on mobile tap ([#​2857](https://github.com/booklore-app/booklore/issues/2857)) by [@​acx10](https://github.com/acx10) - fix(reader): enable text copy in ebook reader ([#​2702](https://github.com/booklore-app/booklore/issues/2702)) by [@​acx10](https://github.com/acx10) - Fix CBZ reader scroll position reset in infinite scroll mode ([#​2781](https://github.com/booklore-app/booklore/issues/2781)) by [@​acx10](https://github.com/acx10) - Fix column gap +/- buttons in eBook reader default settings ([#​2780](https://github.com/booklore-app/booklore/issues/2780)) by [@​acx10](https://github.com/acx10) - Fix email provider creation failing due to null shared field ([#​2794](https://github.com/booklore-app/booklore/issues/2794)) by [@​acx10](https://github.com/acx10) - Fix audit logs pagination bug and add URL query param sync ([#​2787](https://github.com/booklore-app/booklore/issues/2787)) by [@​acx10](https://github.com/acx10) - Fix audit log description overflow for bulk metadata refresh ([#​2783](https://github.com/booklore-app/booklore/issues/2783)) by [@​acx10](https://github.com/acx10) - Fix multiple author card menus opening simultaneously ([#​2852](https://github.com/booklore-app/booklore/issues/2852)) by [@​acx10](https://github.com/acx10) - Fix Goodreads label mappings and format config ([#​2779](https://github.com/booklore-app/booklore/issues/2779)) by [@​AlfredSimpson](https://github.com/AlfredSimpson) - fix(ui): encode filter values in query params to handle commas in names ([#​2717](https://github.com/booklore-app/booklore/issues/2717)) by [@​acx10](https://github.com/acx10) - fix(ui): prevent footer submenu from rendering off screen ([#​2714](https://github.com/booklore-app/booklore/issues/2714)) by [@​acx10](https://github.com/acx10) - fix(ui): inline mobile charts submenu to prevent layout overflow ([#​2713](https://github.com/booklore-app/booklore/issues/2713)) by [@​acx10](https://github.com/acx10) - fix(ui): correctly format lubimyczytac external rating link ([#​2491](https://github.com/booklore-app/booklore/issues/2491)) by [@​sebhewelt](https://github.com/sebhewelt) - Fix iconDisplay binding syntax in metadata viewer ([#​2772](https://github.com/booklore-app/booklore/issues/2772)) by [@​WorldTeacher](https://github.com/WorldTeacher) - Fix mobile toolbar overlapping on small screens ([#​2856](https://github.com/booklore-app/booklore/issues/2856)) by [@​acx10](https://github.com/acx10) - Fix book browser header title overflow on mobile ([#​2808](https://github.com/booklore-app/booklore/issues/2808)) by [@​acx10](https://github.com/acx10) - fix(book-browser): resolve footer menu not hiding after navigation back ([#​2626](https://github.com/booklore-app/booklore/issues/2626)) by [@​acx10](https://github.com/acx10) - fix: align frontend Page interfaces with VIA\_DTO serialization format ([#​2751](https://github.com/booklore-app/booklore/issues/2751)) by [@​acx10](https://github.com/acx10) - fix: show provider icons in metadata viewer when only ID is present ([#​2734](https://github.com/booklore-app/booklore/issues/2734)) by [@​acx10](https://github.com/acx10) - fix: hide show-more button when description fits without truncation ([#​2766](https://github.com/booklore-app/booklore/issues/2766)) by [@​acx10](https://github.com/acx10) - fix: use audiobook thumbnail for audiobook entries in notebook ([#​2763](https://github.com/booklore-app/booklore/issues/2763)) by [@​acx10](https://github.com/acx10) - fix: show session numbers in book ([#​2696](https://github.com/booklore-app/booklore/issues/2696)) by [@​WorldTeacher](https://github.com/WorldTeacher) - fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#​2684](https://github.com/booklore-app/booklore/issues/2684)) by [@​acx10](https://github.com/acx10) - fix(series-multi-select): Fix transparency in series multi select pop-up ([#​2555](https://github.com/booklore-app/booklore/issues/2555)) by [@​balazs-szucs](https://github.com/balazs-szucs) - Fix: Filter text overwrites on long options ([#​2540](https://github.com/booklore-app/booklore/issues/2540)) by [@​acx10](https://github.com/acx10) - Fix: Lock icons do not stay with publisher and series name input fields ([#​2539](https://github.com/booklore-app/booklore/issues/2539)) by [@​acx10](https://github.com/acx10) - fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#​2690](https://github.com/booklore-app/booklore/issues/2690)) by [@​acx10](https://github.com/acx10) #### ⚡ Performance - perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#​2753](https://github.com/booklore-app/booklore/issues/2753)) by [@​acx10](https://github.com/acx10) - perf: enable compact object headers (Project Lilliput) ([#​2755](https://github.com/booklore-app/booklore/issues/2755)) by [@​acx10](https://github.com/acx10) #### 🛠️ Refactoring & Maintenance - refactor: split BookService into BookFileService and BookMetadataManageService ([#​2758](https://github.com/booklore-app/booklore/issues/2758)) by [@​acx10](https://github.com/acx10) - chore: fix memory leaks, add aria-labels, improve type safety and logging ([#​2764](https://github.com/booklore-app/booklore/issues/2764)) by [@​acx10](https://github.com/acx10) - chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#​2762](https://github.com/booklore-app/booklore/issues/2762)) by [@​acx10](https://github.com/acx10) - perf: strip unused fields from book list API response ([#​2741](https://github.com/booklore-app/booklore/issues/2741)) by [@​acx10](https://github.com/acx10) - perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#​2598](https://github.com/booklore-app/booklore/issues/2598)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(metadata): return full metadata from parsers instead of previews ([#​2689](https://github.com/booklore-app/booklore/issues/2689)) by [@​acx10](https://github.com/acx10) - feat: comic metadata picker, lazy-load providers, and UI improvements ([#​2679](https://github.com/booklore-app/booklore/issues/2679)) by [@​acx10](https://github.com/acx10) - Add complete translations for all supported languages ([#​2831](https://github.com/booklore-app/booklore/issues/2831)) by [@​acx10](https://github.com/acx10) - Add Hungarian and Slovenian language support ([#​2846](https://github.com/booklore-app/booklore/issues/2846)) by [@​acx10](https://github.com/acx10) - Add Croatian and Swedish translations for login page ([#​2786](https://github.com/booklore-app/booklore/issues/2786)) by [@​acx10](https://github.com/acx10) - feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#​2742](https://github.com/booklore-app/booklore/issues/2742)) by [@​acx10](https://github.com/acx10) - feat: add i18n translations for book components, services, and readers (en/es) ([#​2738](https://github.com/booklore-app/booklore/issues/2738)) by [@​acx10](https://github.com/acx10) - fix(i18n): dynamic sidebar translations and UI font normalization ([#​2683](https://github.com/booklore-app/booklore/issues/2683)) by [@​acx10](https://github.com/acx10) - feat: disable PDF printing for users without download permission ([#​2737](https://github.com/booklore-app/booklore/issues/2737)) by [@​acx10](https://github.com/acx10) - feat(ui): add file name column to table view and include filename in search ([#​2712](https://github.com/booklore-app/booklore/issues/2712)) by [@​acx10](https://github.com/acx10) - feat(ui): provide hyperlinks for books as book cards in grid view ([#​2500](https://github.com/booklore-app/booklore/issues/2500)) by [@​berb](https://github.com/berb) - feat(ui): Add sort by filePath ([#​1180](https://github.com/booklore-app/booklore/issues/1180) and [#​2364](https://github.com/booklore-app/booklore/issues/2364)) ([#​2512](https://github.com/booklore-app/booklore/issues/2512)) by [@​chiguirepower](https://github.com/chiguirepower) - feat(icons): Made icons for libraries and shelves optional with no default icons. ([#​2599](https://github.com/booklore-app/booklore/issues/2599)) by [@​arthurgiroux](https://github.com/arthurgiroux) - fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#​2694](https://github.com/booklore-app/booklore/issues/2694)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#​2636](https://github.com/booklore-app/booklore/issues/2636)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#​2513](https://github.com/booklore-app/booklore/issues/2513)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(ui): reload shelves when enabling Kobo sync ([#​2715](https://github.com/booklore-app/booklore/issues/2715)) by [@​acx10](https://github.com/acx10) - fix(ui): standardize button labels and styles across components ([#​2560](https://github.com/booklore-app/booklore/issues/2560)) by [@​balazs-szucs](https://github.com/balazs-szucs) - chore: redesign README for cleaner layout and visual polish ([#​2728](https://github.com/booklore-app/booklore/issues/2728)) by [@​acx10](https://github.com/acx10) - fix: make README logo visible in GitHub light mode ([#​2756](https://github.com/booklore-app/booklore/issues/2756)) by [@​acx10](https://github.com/acx10) - chore: clean up PR template and contributing guide ([#​2660](https://github.com/booklore-app/booklore/issues/2660)) by [@​acx10](https://github.com/acx10) - fix(file naming): add leading zero to series index ([#​2642](https://github.com/booklore-app/booklore/issues/2642)) by [@​WorldTeacher](https://github.com/WorldTeacher) - Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#​2620](https://github.com/booklore-app/booklore/issues/2620)) by [@​jmswangit](https://github.com/jmswangit) - test(API): add missing tests for BookMapperV2 ([#​2495](https://github.com/booklore-app/booklore/issues/2495)) by [@​piffio](https://github.com/piffio) - fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#​2520](https://github.com/booklore-app/booklore/issues/2520)) by [@​acx10](https://github.com/acx10) - fix(ui): clean cached properties ([#​2499](https://github.com/booklore-app/booklore/issues/2499)) by [@​piffio](https://github.com/piffio) - fix(additional-file-uploader): add file size validation with UI feedback ([#​2516](https://github.com/booklore-app/booklore/issues/2516)) by [@​acx10](https://github.com/acx10) - fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#​2479](https://github.com/booklore-app/booklore/issues/2479)) by [@​balazs-szucs](https://github.com/balazs-szucs) - fix(series-page): add missing overlay preference service to book card ([#​2466](https://github.com/booklore-app/booklore/issues/2466)) by [@​xcashy](https://github.com/xcashy) - fix(docker): add build and gradle directories to volumes in docker compose ([#​2459](https://github.com/booklore-app/booklore/issues/2459)) by [@​balazs-szucs](https://github.com/balazs-szucs) #### 📦 Dependencies - chore(deps): bump org.springframework.boot from 4.0.2 to 4.0.3 in /booklore-api in the gradle-dependencies group ([#​2813](https://github.com/booklore-app/booklore/issues/2813)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#​2814](https://github.com/booklore-app/booklore/issues/2814)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#​2687](https://github.com/booklore-app/booklore/issues/2687)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#​2721](https://github.com/booklore-app/booklore/issues/2721)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#​2542](https://github.com/booklore-app/booklore/issues/2542)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#​2659](https://github.com/booklore-app/booklore/issues/2659)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#​2720](https://github.com/booklore-app/booklore/issues/2720)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#​2805](https://github.com/booklore-app/booklore/issues/2805)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#​2534](https://github.com/booklore-app/booklore/issues/2534)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#​2815](https://github.com/booklore-app/booklore/issues/2815)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#​2722](https://github.com/booklore-app/booklore/issues/2722)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump [@​modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@​angular/cli](https://github.com/angular/cli) in /booklore-ui ([#​2612](https://github.com/booklore-app/booklore/issues/2612)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump actions/setup-node from 4 to 6 ([#​2573](https://github.com/booklore-app/booklore/issues/2573)) by @​[dependabot\[bot\]](https://github.com/apps/dependabot) #### ⚙️ CI/CD - ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#​2705](https://github.com/booklore-app/booklore/issues/2705)) by [@​acx10](https://github.com/acx10) - chore: add performance label to release drafter categories ([#​2754](https://github.com/booklore-app/booklore/issues/2754)) by [@​acx10](https://github.com/acx10) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v2.0.0` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v2.0.0` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.18.5...v2.0.0> #### 📸 Screenshots <img width="750" alt="Book browser with audiobook library and cascading sidebar filters" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-browser-audiobooks-library.png" /> <img width="750" alt="Book detail page with multi-format support and alternative formats" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/book-detail-multi-format.png" /> <img width="300" alt="Audiobook player with streaming playback" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/audiobook-player.png" /> <img width="300" alt="Ebook reader" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/ebook-reader.png" /> <img width="750" alt="CBX comic reader with fullscreen, slideshow, RTL, and long strip mode" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/cbx-comic-reader.png" /> <img width="750" alt="Annotation notebook with highlights, notes, and bookmarks" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/annotation-notebook.png" /> <img width="750" alt="Author browser with Audnexus metadata" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/author-browser.png" /> <img width="750" alt="Series browser with search, filter, and sort" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/series-browser.png" /> <img width="500" alt="Reading Clock statistics chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-clock-stats.png" /> <img width="750" alt="Reading Survival Curve and Book Length Sweet Spot charts" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-survival-book-length-charts.png" /> <img width="750" alt="Reading Completion Race chart" src="https://github.com/booklore-app/booklore/releases/download/v2.0.0/reading-completion-race.png" /> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4176 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net> |
|||
| 034faf2e32 |
chore(deps): update dependency booklore-app/booklore to v1.18.5 (#3471)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [booklore-app/BookLore](https://github.com/booklore-app/BookLore) | patch | `v1.18.4` → `v1.18.5` | --- ### Release Notes <details> <summary>booklore-app/BookLore (booklore-app/BookLore)</summary> ### [`v1.18.5`](https://github.com/booklore-app/booklore/releases/tag/v1.18.5) [Compare Source](https://github.com/booklore-app/BookLore/compare/v1.18.4...v1.18.5) #### 🌟 What's New in v1.18.5 #### 🚀 New Features - feat(book-browser): add responsive grid columns for mobile view ([#​2446](https://github.com/booklore-app/BookLore/issues/2446)) by [@​acx10](https://github.com/acx10) #### ✨ Enhancements - feat(dashboard-settings): update sort field options for Surname, and Personal Rating ([#​2456](https://github.com/booklore-app/BookLore/issues/2456)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(themes): add AMOLED theme with distinct light and dark color schemes ([#​2457](https://github.com/booklore-app/BookLore/issues/2457)) by [@​balazs-szucs](https://github.com/balazs-szucs) - feat(book-browser): preserve scroll position when navigating back fro… ([#​2449](https://github.com/booklore-app/BookLore/issues/2449)) by [@​acx10](https://github.com/acx10) - feat(pwa): add offline handling and fallback support ([#​2444](https://github.com/booklore-app/BookLore/issues/2444)) by [@​acx10](https://github.com/acx10) #### 🐛 Bug Fixes - fix(stats): show tooltip for single bubble and allow overflow in auth… ([#​2443](https://github.com/booklore-app/BookLore/issues/2443)) by [@​acx10](https://github.com/acx10) - fix(opds): fix regression with browsing shelves ([#​2423](https://github.com/booklore-app/BookLore/issues/2423)) by [@​piffio](https://github.com/piffio) #### 🛠️ Refactoring & Maintenance - fix(ui): use local asset for page background ([#​2445](https://github.com/booklore-app/BookLore/issues/2445)) by [@​imnotjames](https://github.com/imnotjames) - perf: lazy-load accordion content in library metadata settings ([#​2442](https://github.com/booklore-app/BookLore/issues/2442)) by [@​acx10](https://github.com/acx10) - fix(cbx-reader): prevent touch drag on mobile and fix header title ov… ([#​2441](https://github.com/booklore-app/BookLore/issues/2441)) by [@​acx10](https://github.com/acx10) - refactor: reduce re-renders and improve filter sidebar performance ([#​2440](https://github.com/booklore-app/BookLore/issues/2440)) by [@​acx10](https://github.com/acx10) - Add clear warning when deleting books that files will be permanently … ([#​2438](https://github.com/booklore-app/BookLore/issues/2438)) by [@​acx10](https://github.com/acx10) #### 🐳 Docker Images - **Docker Hub:** `booklore/booklore:v1.18.5` - **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.18.5` **Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.18.4...v1.18.5> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3471 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net> |
|||
| f46ac98970 | chore(deps): update appVersions | |||
| 914dd14c81 | fix: align renovate custom manager to appVersion updates on Chart | |||
| 285e17717f | Update Helm release app-template to v4.6.2 (#3266) | |||
| 0f883ebbd5 | Update Helm release mariadb-cluster to v25.10.4 (#3126) | |||
| a100fc174a |
Update Helm release app-template to v4.6.0 (#3094)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [app-template](https://github.com/bjw-s-labs/helm-charts) | minor | `4.5.0` → `4.6.0` | --- ### Release Notes <details> <summary>bjw-s-labs/helm-charts (app-template)</summary> ### [`v4.6.0`](https://github.com/bjw-s-labs/helm-charts/releases/tag/app-template-4.6.0) [Compare Source](https://github.com/bjw-s-labs/helm-charts/compare/app-template-4.5.0...app-template-4.6.0) ##### Changelog: ##### Changed - Upgraded the common library to v4.6.0 - [Upgrade notes](https://bjw-s-labs.github.io/helm-charts/docs/app-template/upgrade-instructions/) - [Detailed release notes](https://github.com/bjw-s-labs/helm-charts/releases/tag/common-4.6.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiY2hhcnQiXX0=--> Reviewed-on: #3094 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net> |
|||
| b67d15cdfc | change schedule | |||
| 5e14a56dd5 | Update Helm release mariadb-cluster to v25.10.3 (#2814) | |||
| eb6ff2df76 | renovate update chart appVersion | |||
| 451793e158 |
Update volsync-target Docker tag to v0.6.0 (#2695)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [volsync-target](https://github.com/backube/volsync) | minor | `0.5.0` -> `0.6.0` | --- ### Release Notes <details> <summary>backube/volsync (volsync-target)</summary> ### [`v0.6.0`](https://github.com/backube/volsync/blob/HEAD/CHANGELOG.md#060) [Compare Source](https://github.com/backube/volsync/compare/v0.5.0...v0.6.0) ##### Added - restic - allow passing in GOOGLE\_APPLICATION\_CREDENTIALS as a file ##### Changed - ⚠️ Breaking change ⚠️ - Helm chart now manages VolSync CRDs directly.\ Upgrading the VolSync Helm chart from an earlier version will produce the following error: ``` Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. Unable to continue with update: CustomResourceDefinition "replicationdestinations.volsync.backube" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "volsync"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "volsync-system" ``` To fix, apply the missing labels and annotations as mentioned in the error message (your values may differ), then retry the upgrade: ```console $ kubectl label crd/replicationdestinations.volsync.backube app.kubernetes.io/managed-by=Helm customresourcedefinition.apiextensions.k8s.io/replicationdestinations.volsync.backube labeled $ kubectl label crd/replicationsources.volsync.backube app.kubernetes.io/managed-by=Helm customresourcedefinition.apiextensions.k8s.io/replicationsources.volsync.backube labeled $ kubectl annotate crd/replicationdestinations.volsync.backube meta.helm.sh/release-name=volsync customresourcedefinition.apiextensions.k8s.io/replicationdestinations.volsync.backube annotated $ kubectl annotate crd/replicationsources.volsync.backube meta.helm.sh/release-name=volsync customresourcedefinition.apiextensions.k8s.io/replicationsources.volsync.backube annotated $ kubectl annotate crd/replicationdestinations.volsync.backube meta.helm.sh/release-namespace=volsync-system customresourcedefinition.apiextensions.k8s.io/replicationdestinations.volsync.backube annotated $ kubectl annotate crd/replicationsources.volsync.backube meta.helm.sh/release-namespace=volsync-system customresourcedefinition.apiextensions.k8s.io/replicationsources.volsync.backube annotated ``` - VolSync privileged mover SCC installed at startup on OpenShift - Syncthing upgraded to 1.22.1 - Updates to build with golang 1.19 ##### Fixed - ReplicationSource fixes for rsync, rclone and restic to enable mounting ROX source PVCs as read-only ##### Security - rclone mover updated to run with reduced privileges by default - restic mover updated to run with reduced privileges by default - syncthing mover updated to run with reduced privileges by default - kube-rbac-proxy upgraded to 0.13.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: #2695 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net> |
|||
| 40ee5b3833 | move volsync to chart | |||
| dcc30342b8 | update appVersion | |||
| 2cf3152190 |
Update Helm release app-template to v4.5.0 (#2270)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [app-template](https://github.com/bjw-s-labs/helm-charts) | minor | `4.4.0` -> `4.5.0` | --- ### Release Notes <details> <summary>bjw-s-labs/helm-charts (app-template)</summary> ### [`v4.5.0`](https://github.com/bjw-s-labs/helm-charts/releases/tag/app-template-4.5.0) [Compare Source](https://github.com/bjw-s-labs/helm-charts/compare/app-template-4.4.0...app-template-4.5.0) ##### Changelog: ##### Changed - Upgraded the common library to v4.5.0 - [Upgrade notes](https://bjw-s-labs.github.io/helm-charts/docs/app-template/upgrade-instructions/) - [Detailed release notes](https://github.com/bjw-s-labs/helm-charts/releases/tag/common-4.5.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImNoYXJ0Il19--> Reviewed-on: #2270 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net> |
|||
| 3e90af0eb5 | migrate | |||
| 4a30f53bd2 | remove charts to prep for migration | |||
| e102d910bc | add render manifest workflow |