Commit Graph

44 Commits

Author SHA1 Message Date
15423676b5 chore(deps): update booklore-app/booklore to v2 (major) (#4176)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 37s
renovate / renovate (push) Successful in 4m52s
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 ([#&#8203;2894](https://github.com/booklore-app/BookLore/issues/2894)) by [@&#8203;acx10](https://github.com/acx10)
- Fix magic shelf physical book filter and polish UI ([#&#8203;2888](https://github.com/booklore-app/BookLore/issues/2888)) by [@&#8203;acx10](https://github.com/acx10)
- Fix metadata settings not saving due to null deserialization error ([#&#8203;2886](https://github.com/booklore-app/BookLore/issues/2886)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo download/image URLs using wrong port behind reverse proxy ([#&#8203;2875](https://github.com/booklore-app/BookLore/issues/2875)) by [@&#8203;acx10](https://github.com/acx10)
- Fix app crash on startup when /bookdrop volume is not mounted ([#&#8203;2873](https://github.com/booklore-app/BookLore/issues/2873)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

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

####  Enhancements

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

#### 🎨 UI Tweaks

- Add visual polish to book card component ([#&#8203;2788](https://github.com/booklore-app/BookLore/issues/2788)) by [@&#8203;acx10](https://github.com/acx10)
- refactor: centralize access-denied card styles into shared mixin ([#&#8203;2515](https://github.com/booklore-app/BookLore/issues/2515)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes

- fix(auth): resolve DST-related login failure for refresh tokens ([#&#8203;2624](https://github.com/booklore-app/BookLore/issues/2624)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo sync HeadersTooLargeException for large libraries ([#&#8203;2809](https://github.com/booklore-app/BookLore/issues/2809)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#&#8203;2503](https://github.com/booklore-app/BookLore/issues/2503)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#&#8203;2502](https://github.com/booklore-app/BookLore/issues/2502)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#&#8203;2536](https://github.com/booklore-app/BookLore/issues/2536)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#&#8203;2481](https://github.com/booklore-app/BookLore/issues/2481)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix null collection errors for PDFs, audiobooks, and physical books ([#&#8203;2817](https://github.com/booklore-app/BookLore/issues/2817)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#&#8203;2507](https://github.com/booklore-app/BookLore/issues/2507)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): ensure file moves are rolled back if database update fails ([#&#8203;2588](https://github.com/booklore-app/BookLore/issues/2588)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): update empty directory cleanup to handle multiple library paths ([#&#8203;2634](https://github.com/booklore-app/BookLore/issues/2634)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix CBR/CB7 to CBZ conversion losing track of file path ([#&#8203;2835](https://github.com/booklore-app/BookLore/issues/2835)) by [@&#8203;acx10](https://github.com/acx10)
- fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#&#8203;2593](https://github.com/booklore-app/BookLore/issues/2593)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix PDF reader not loading alternate format files ([#&#8203;2836](https://github.com/booklore-app/BookLore/issues/2836)) by [@&#8203;acx10](https://github.com/acx10)
- fix(epub-cover-extract): improve cover image extraction with fallback handling ([#&#8203;2585](https://github.com/booklore-app/BookLore/issues/2585)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@&#8203;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 ([#&#8203;2480](https://github.com/booklore-app/BookLore/issues/2480)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix magic shelf rule evaluation for numeric comparisons ([#&#8203;2795](https://github.com/booklore-app/BookLore/issues/2795)) by [@&#8203;acx10](https://github.com/acx10)
- Fix read status NULL progress handling in rule evaluator ([#&#8203;2821](https://github.com/booklore-app/BookLore/issues/2821)) by [@&#8203;acx10](https://github.com/acx10)
- Fix bookdrop race condition processing files before fully written ([#&#8203;2785](https://github.com/booklore-app/BookLore/issues/2785)) by [@&#8203;acx10](https://github.com/acx10)
- fix(bookdrop): handle file modifications in Bookdrop event handler ([#&#8203;2559](https://github.com/booklore-app/BookLore/issues/2559)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#&#8203;2609](https://github.com/booklore-app/BookLore/issues/2609)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(api): Select correct Hardcover.app ISBN from lookup results ([#&#8203;2530](https://github.com/booklore-app/BookLore/issues/2530)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(ui): fix memory leaks and cascading API calls in metadata editor ([#&#8203;2716](https://github.com/booklore-app/BookLore/issues/2716)) by [@&#8203;acx10](https://github.com/acx10)
- fix: replace Quill editor with native HTML rendering for book descriptions ([#&#8203;2733](https://github.com/booklore-app/BookLore/issues/2733)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading stats queries not accounting for timezone ([#&#8203;2844](https://github.com/booklore-app/BookLore/issues/2844)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#&#8203;2848](https://github.com/booklore-app/BookLore/issues/2848)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reading-stats,ui): update heatmap to use local time formatting… ([#&#8203;2587](https://github.com/booklore-app/BookLore/issues/2587)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#&#8203;2562](https://github.com/booklore-app/BookLore/issues/2562)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#&#8203;2592](https://github.com/booklore-app/BookLore/issues/2592)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix OPDS shelf filter cartesian product ([#&#8203;2837](https://github.com/booklore-app/BookLore/issues/2837)) by [@&#8203;acx10](https://github.com/acx10)
- fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#&#8203;2385](https://github.com/booklore-app/BookLore/issues/2385)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix additional file uploader bugs and improve metadata viewer ([#&#8203;2816](https://github.com/booklore-app/BookLore/issues/2816)) by [@&#8203;acx10](https://github.com/acx10)
- Fix PWA offline fallback blocking localhost access when internet is disconnected ([#&#8203;2784](https://github.com/booklore-app/BookLore/issues/2784)) by [@&#8203;acx10](https://github.com/acx10)
- fix(audiobook-reader): use preload=none for immediate streaming playback ([#&#8203;2518](https://github.com/booklore-app/BookLore/issues/2518)) by [@&#8203;acx10](https://github.com/acx10)
- fix: reset audiobook progress and clear cached progress in UI ([#&#8203;2711](https://github.com/booklore-app/BookLore/issues/2711)) by [@&#8203;acx10](https://github.com/acx10)
- Fix cbx reader prev/next book stacking on close ([#&#8203;2858](https://github.com/booklore-app/BookLore/issues/2858)) by [@&#8203;acx10](https://github.com/acx10)
- Fix ebook reader header not hiding on mobile tap ([#&#8203;2857](https://github.com/booklore-app/BookLore/issues/2857)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reader): enable text copy in ebook reader ([#&#8203;2702](https://github.com/booklore-app/BookLore/issues/2702)) by [@&#8203;acx10](https://github.com/acx10)
- Fix CBZ reader scroll position reset in infinite scroll mode ([#&#8203;2781](https://github.com/booklore-app/BookLore/issues/2781)) by [@&#8203;acx10](https://github.com/acx10)
- Fix column gap +/- buttons in eBook reader default settings ([#&#8203;2780](https://github.com/booklore-app/BookLore/issues/2780)) by [@&#8203;acx10](https://github.com/acx10)
- Fix email provider creation failing due to null shared field ([#&#8203;2794](https://github.com/booklore-app/BookLore/issues/2794)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit logs pagination bug and add URL query param sync ([#&#8203;2787](https://github.com/booklore-app/BookLore/issues/2787)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit log description overflow for bulk metadata refresh ([#&#8203;2783](https://github.com/booklore-app/BookLore/issues/2783)) by [@&#8203;acx10](https://github.com/acx10)
- Fix multiple author card menus opening simultaneously ([#&#8203;2852](https://github.com/booklore-app/BookLore/issues/2852)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Goodreads label mappings and format config ([#&#8203;2779](https://github.com/booklore-app/BookLore/issues/2779)) by [@&#8203;AlfredSimpson](https://github.com/AlfredSimpson)
- fix(ui): encode filter values in query params to handle commas in names ([#&#8203;2717](https://github.com/booklore-app/BookLore/issues/2717)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): prevent footer submenu from rendering off screen ([#&#8203;2714](https://github.com/booklore-app/BookLore/issues/2714)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): inline mobile charts submenu to prevent layout overflow ([#&#8203;2713](https://github.com/booklore-app/BookLore/issues/2713)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): correctly format lubimyczytac external rating link ([#&#8203;2491](https://github.com/booklore-app/BookLore/issues/2491)) by [@&#8203;sebhewelt](https://github.com/sebhewelt)
- Fix iconDisplay binding syntax in metadata viewer ([#&#8203;2772](https://github.com/booklore-app/BookLore/issues/2772)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Fix mobile toolbar overlapping on small screens ([#&#8203;2856](https://github.com/booklore-app/BookLore/issues/2856)) by [@&#8203;acx10](https://github.com/acx10)
- Fix book browser header title overflow on mobile ([#&#8203;2808](https://github.com/booklore-app/BookLore/issues/2808)) by [@&#8203;acx10](https://github.com/acx10)
- fix(book-browser): resolve footer menu not hiding after navigation back ([#&#8203;2626](https://github.com/booklore-app/BookLore/issues/2626)) by [@&#8203;acx10](https://github.com/acx10)
- fix: align frontend Page interfaces with VIA\_DTO serialization format ([#&#8203;2751](https://github.com/booklore-app/BookLore/issues/2751)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show provider icons in metadata viewer when only ID is present ([#&#8203;2734](https://github.com/booklore-app/BookLore/issues/2734)) by [@&#8203;acx10](https://github.com/acx10)
- fix: hide show-more button when description fits without truncation ([#&#8203;2766](https://github.com/booklore-app/BookLore/issues/2766)) by [@&#8203;acx10](https://github.com/acx10)
- fix: use audiobook thumbnail for audiobook entries in notebook ([#&#8203;2763](https://github.com/booklore-app/BookLore/issues/2763)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show session numbers in book ([#&#8203;2696](https://github.com/booklore-app/BookLore/issues/2696)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#&#8203;2684](https://github.com/booklore-app/BookLore/issues/2684)) by [@&#8203;acx10](https://github.com/acx10)
- fix(series-multi-select): Fix transparency in series multi select pop-up ([#&#8203;2555](https://github.com/booklore-app/BookLore/issues/2555)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Filter text overwrites on long options ([#&#8203;2540](https://github.com/booklore-app/BookLore/issues/2540)) by [@&#8203;acx10](https://github.com/acx10)
- Fix: Lock icons do not stay with publisher and series name input fields ([#&#8203;2539](https://github.com/booklore-app/BookLore/issues/2539)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#&#8203;2690](https://github.com/booklore-app/BookLore/issues/2690)) by [@&#8203;acx10](https://github.com/acx10)

####  Performance

- perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#&#8203;2753](https://github.com/booklore-app/BookLore/issues/2753)) by [@&#8203;acx10](https://github.com/acx10)
- perf: enable compact object headers (Project Lilliput) ([#&#8203;2755](https://github.com/booklore-app/BookLore/issues/2755)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- refactor: split BookService into BookFileService and BookMetadataManageService ([#&#8203;2758](https://github.com/booklore-app/BookLore/issues/2758)) by [@&#8203;acx10](https://github.com/acx10)
- chore: fix memory leaks, add aria-labels, improve type safety and logging ([#&#8203;2764](https://github.com/booklore-app/BookLore/issues/2764)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#&#8203;2762](https://github.com/booklore-app/BookLore/issues/2762)) by [@&#8203;acx10](https://github.com/acx10)
- perf: strip unused fields from book list API response ([#&#8203;2741](https://github.com/booklore-app/BookLore/issues/2741)) by [@&#8203;acx10](https://github.com/acx10)
- perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#&#8203;2598](https://github.com/booklore-app/BookLore/issues/2598)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata): return full metadata from parsers instead of previews ([#&#8203;2689](https://github.com/booklore-app/BookLore/issues/2689)) by [@&#8203;acx10](https://github.com/acx10)
- feat: comic metadata picker, lazy-load providers, and UI improvements ([#&#8203;2679](https://github.com/booklore-app/BookLore/issues/2679)) by [@&#8203;acx10](https://github.com/acx10)
- Add complete translations for all supported languages ([#&#8203;2831](https://github.com/booklore-app/BookLore/issues/2831)) by [@&#8203;acx10](https://github.com/acx10)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/BookLore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- Add Croatian and Swedish translations for login page ([#&#8203;2786](https://github.com/booklore-app/BookLore/issues/2786)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#&#8203;2742](https://github.com/booklore-app/BookLore/issues/2742)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for book components, services, and readers (en/es) ([#&#8203;2738](https://github.com/booklore-app/BookLore/issues/2738)) by [@&#8203;acx10](https://github.com/acx10)
- fix(i18n): dynamic sidebar translations and UI font normalization ([#&#8203;2683](https://github.com/booklore-app/BookLore/issues/2683)) by [@&#8203;acx10](https://github.com/acx10)
- feat: disable PDF printing for users without download permission ([#&#8203;2737](https://github.com/booklore-app/BookLore/issues/2737)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): add file name column to table view and include filename in search ([#&#8203;2712](https://github.com/booklore-app/BookLore/issues/2712)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): provide hyperlinks for books as book cards in grid view ([#&#8203;2500](https://github.com/booklore-app/BookLore/issues/2500)) by [@&#8203;berb](https://github.com/berb)
- feat(ui): Add sort by filePath ([#&#8203;1180](https://github.com/booklore-app/BookLore/issues/1180) and [#&#8203;2364](https://github.com/booklore-app/BookLore/issues/2364)) ([#&#8203;2512](https://github.com/booklore-app/BookLore/issues/2512)) by [@&#8203;chiguirepower](https://github.com/chiguirepower)
- feat(icons): Made icons for libraries and shelves optional with no default icons. ([#&#8203;2599](https://github.com/booklore-app/BookLore/issues/2599)) by [@&#8203;arthurgiroux](https://github.com/arthurgiroux)
- fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#&#8203;2694](https://github.com/booklore-app/BookLore/issues/2694)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/BookLore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#&#8203;2513](https://github.com/booklore-app/BookLore/issues/2513)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(ui): reload shelves when enabling Kobo sync ([#&#8203;2715](https://github.com/booklore-app/BookLore/issues/2715)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui):  standardize button labels and styles across components ([#&#8203;2560](https://github.com/booklore-app/BookLore/issues/2560)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- chore: redesign README for cleaner layout and visual polish ([#&#8203;2728](https://github.com/booklore-app/BookLore/issues/2728)) by [@&#8203;acx10](https://github.com/acx10)
- fix: make README logo visible in GitHub light mode ([#&#8203;2756](https://github.com/booklore-app/BookLore/issues/2756)) by [@&#8203;acx10](https://github.com/acx10)
- chore: clean up PR template and contributing guide ([#&#8203;2660](https://github.com/booklore-app/BookLore/issues/2660)) by [@&#8203;acx10](https://github.com/acx10)
- fix(file naming): add leading zero to series index ([#&#8203;2642](https://github.com/booklore-app/BookLore/issues/2642)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#&#8203;2620](https://github.com/booklore-app/BookLore/issues/2620)) by [@&#8203;jmswangit](https://github.com/jmswangit)
- test(API): add missing tests for BookMapperV2 ([#&#8203;2495](https://github.com/booklore-app/BookLore/issues/2495)) by [@&#8203;piffio](https://github.com/piffio)
- fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#&#8203;2520](https://github.com/booklore-app/BookLore/issues/2520)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): clean cached properties ([#&#8203;2499](https://github.com/booklore-app/BookLore/issues/2499)) by [@&#8203;piffio](https://github.com/piffio)
- fix(additional-file-uploader): add file size validation with UI feedback ([#&#8203;2516](https://github.com/booklore-app/BookLore/issues/2516)) by [@&#8203;acx10](https://github.com/acx10)
- fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#&#8203;2479](https://github.com/booklore-app/BookLore/issues/2479)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(series-page): add missing overlay preference service to book card ([#&#8203;2466](https://github.com/booklore-app/BookLore/issues/2466)) by [@&#8203;xcashy](https://github.com/xcashy)
- fix(docker): add build and gradle directories to volumes in docker compose ([#&#8203;2459](https://github.com/booklore-app/BookLore/issues/2459)) by [@&#8203;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 ([#&#8203;2813](https://github.com/booklore-app/BookLore/issues/2813)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#&#8203;2814](https://github.com/booklore-app/BookLore/issues/2814)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#&#8203;2687](https://github.com/booklore-app/BookLore/issues/2687)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#&#8203;2721](https://github.com/booklore-app/BookLore/issues/2721)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#&#8203;2542](https://github.com/booklore-app/BookLore/issues/2542)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#&#8203;2659](https://github.com/booklore-app/BookLore/issues/2659)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#&#8203;2720](https://github.com/booklore-app/BookLore/issues/2720)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#&#8203;2805](https://github.com/booklore-app/BookLore/issues/2805)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#&#8203;2534](https://github.com/booklore-app/BookLore/issues/2534)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#&#8203;2815](https://github.com/booklore-app/BookLore/issues/2815)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#&#8203;2722](https://github.com/booklore-app/BookLore/issues/2722)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump [@&#8203;modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@&#8203;angular/cli](https://github.com/angular/cli) in /booklore-ui ([#&#8203;2612](https://github.com/booklore-app/BookLore/issues/2612)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump actions/setup-node from 4 to 6 ([#&#8203;2573](https://github.com/booklore-app/BookLore/issues/2573)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### ⚙️ CI/CD

- ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#&#8203;2705](https://github.com/booklore-app/BookLore/issues/2705)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add performance label to release drafter categories ([#&#8203;2754](https://github.com/booklore-app/BookLore/issues/2754)) by [@&#8203;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 ([#&#8203;2894](https://github.com/booklore-app/booklore/issues/2894)) by [@&#8203;acx10](https://github.com/acx10)
- Fix magic shelf physical book filter and polish UI ([#&#8203;2888](https://github.com/booklore-app/booklore/issues/2888)) by [@&#8203;acx10](https://github.com/acx10)
- Fix metadata settings not saving due to null deserialization error ([#&#8203;2886](https://github.com/booklore-app/booklore/issues/2886)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo download/image URLs using wrong port behind reverse proxy ([#&#8203;2875](https://github.com/booklore-app/booklore/issues/2875)) by [@&#8203;acx10](https://github.com/acx10)
- Fix app crash on startup when /bookdrop volume is not mounted ([#&#8203;2873](https://github.com/booklore-app/booklore/issues/2873)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

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

####  Enhancements

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

#### 🎨 UI Tweaks

- Add visual polish to book card component ([#&#8203;2788](https://github.com/booklore-app/booklore/issues/2788)) by [@&#8203;acx10](https://github.com/acx10)
- refactor: centralize access-denied card styles into shared mixin ([#&#8203;2515](https://github.com/booklore-app/booklore/issues/2515)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes

- fix(auth): resolve DST-related login failure for refresh tokens ([#&#8203;2624](https://github.com/booklore-app/booklore/issues/2624)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Kobo sync HeadersTooLargeException for large libraries ([#&#8203;2809](https://github.com/booklore-app/booklore/issues/2809)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata-refresh): Correct metadata update priorities and preserve disabled fields during 'replace all' ([#&#8203;2503](https://github.com/booklore-app/booklore/issues/2503)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-parsers): improve ISBN search logic and fallback strategies for metadata fetching ([#&#8203;2502](https://github.com/booklore-app/booklore/issues/2502)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-update): ensure per-book transaction isolation in bulk updates to prevent race conditions ([#&#8203;2536](https://github.com/booklore-app/booklore/issues/2536)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-refresh): fix filter book shelves by authenticated user logs out the user. ([#&#8203;2481](https://github.com/booklore-app/booklore/issues/2481)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix null collection errors for PDFs, audiobooks, and physical books ([#&#8203;2817](https://github.com/booklore-app/booklore/issues/2817)) by [@&#8203;acx10](https://github.com/acx10)
- fix(library-processing): re-fetch library entity after clearing entity manager during rescan ([#&#8203;2507](https://github.com/booklore-app/booklore/issues/2507)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): ensure file moves are rolled back if database update fails ([#&#8203;2588](https://github.com/booklore-app/booklore/issues/2588)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(file-move): update empty directory cleanup to handle multiple library paths ([#&#8203;2634](https://github.com/booklore-app/booklore/issues/2634)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix CBR/CB7 to CBZ conversion losing track of file path ([#&#8203;2835](https://github.com/booklore-app/booklore/issues/2835)) by [@&#8203;acx10](https://github.com/acx10)
- fix(cbz-reader): CBZ reading regression and optimize ZIP parsing strategy ([#&#8203;2593](https://github.com/booklore-app/booklore/issues/2593)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix PDF reader not loading alternate format files ([#&#8203;2836](https://github.com/booklore-app/booklore/issues/2836)) by [@&#8203;acx10](https://github.com/acx10)
- fix(epub-cover-extract): improve cover image extraction with fallback handling ([#&#8203;2585](https://github.com/booklore-app/booklore/issues/2585)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/booklore/issues/2636)) by [@&#8203;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 ([#&#8203;2480](https://github.com/booklore-app/booklore/issues/2480)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix magic shelf rule evaluation for numeric comparisons ([#&#8203;2795](https://github.com/booklore-app/booklore/issues/2795)) by [@&#8203;acx10](https://github.com/acx10)
- Fix read status NULL progress handling in rule evaluator ([#&#8203;2821](https://github.com/booklore-app/booklore/issues/2821)) by [@&#8203;acx10](https://github.com/acx10)
- Fix bookdrop race condition processing files before fully written ([#&#8203;2785](https://github.com/booklore-app/booklore/issues/2785)) by [@&#8203;acx10](https://github.com/acx10)
- fix(bookdrop): handle file modifications in Bookdrop event handler ([#&#8203;2559](https://github.com/booklore-app/booklore/issues/2559)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(hardcover-sync): Don't send repeated read status to Hardcover.app ([#&#8203;2609](https://github.com/booklore-app/booklore/issues/2609)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(api): Select correct Hardcover.app ISBN from lookup results ([#&#8203;2530](https://github.com/booklore-app/booklore/issues/2530)) by [@&#8203;PhasecoreX](https://github.com/PhasecoreX)
- fix(ui): fix memory leaks and cascading API calls in metadata editor ([#&#8203;2716](https://github.com/booklore-app/booklore/issues/2716)) by [@&#8203;acx10](https://github.com/acx10)
- fix: replace Quill editor with native HTML rendering for book descriptions ([#&#8203;2733](https://github.com/booklore-app/booklore/issues/2733)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading stats queries not accounting for timezone ([#&#8203;2844](https://github.com/booklore-app/booklore/issues/2844)) by [@&#8203;acx10](https://github.com/acx10)
- Fix reading session timeline long sessions, tooltip perf, and week mismatch ([#&#8203;2848](https://github.com/booklore-app/booklore/issues/2848)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reading-stats,ui): update heatmap to use local time formatting… ([#&#8203;2587](https://github.com/booklore-app/booklore/issues/2587)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(select-all): "Mark All" bug and add "Remove from all shelves" bulk action across components ([#&#8203;2562](https://github.com/booklore-app/booklore/issues/2562)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(opds): Fix OPDS CBR mime type reporting and strict Archive detection ([#&#8203;2592](https://github.com/booklore-app/booklore/issues/2592)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix OPDS shelf filter cartesian product ([#&#8203;2837](https://github.com/booklore-app/booklore/issues/2837)) by [@&#8203;acx10](https://github.com/acx10)
- fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata ([#&#8203;2385](https://github.com/booklore-app/booklore/issues/2385)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix additional file uploader bugs and improve metadata viewer ([#&#8203;2816](https://github.com/booklore-app/booklore/issues/2816)) by [@&#8203;acx10](https://github.com/acx10)
- Fix PWA offline fallback blocking localhost access when internet is disconnected ([#&#8203;2784](https://github.com/booklore-app/booklore/issues/2784)) by [@&#8203;acx10](https://github.com/acx10)
- fix(audiobook-reader): use preload=none for immediate streaming playback ([#&#8203;2518](https://github.com/booklore-app/booklore/issues/2518)) by [@&#8203;acx10](https://github.com/acx10)
- fix: reset audiobook progress and clear cached progress in UI ([#&#8203;2711](https://github.com/booklore-app/booklore/issues/2711)) by [@&#8203;acx10](https://github.com/acx10)
- Fix cbx reader prev/next book stacking on close ([#&#8203;2858](https://github.com/booklore-app/booklore/issues/2858)) by [@&#8203;acx10](https://github.com/acx10)
- Fix ebook reader header not hiding on mobile tap ([#&#8203;2857](https://github.com/booklore-app/booklore/issues/2857)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reader): enable text copy in ebook reader ([#&#8203;2702](https://github.com/booklore-app/booklore/issues/2702)) by [@&#8203;acx10](https://github.com/acx10)
- Fix CBZ reader scroll position reset in infinite scroll mode ([#&#8203;2781](https://github.com/booklore-app/booklore/issues/2781)) by [@&#8203;acx10](https://github.com/acx10)
- Fix column gap +/- buttons in eBook reader default settings ([#&#8203;2780](https://github.com/booklore-app/booklore/issues/2780)) by [@&#8203;acx10](https://github.com/acx10)
- Fix email provider creation failing due to null shared field ([#&#8203;2794](https://github.com/booklore-app/booklore/issues/2794)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit logs pagination bug and add URL query param sync ([#&#8203;2787](https://github.com/booklore-app/booklore/issues/2787)) by [@&#8203;acx10](https://github.com/acx10)
- Fix audit log description overflow for bulk metadata refresh ([#&#8203;2783](https://github.com/booklore-app/booklore/issues/2783)) by [@&#8203;acx10](https://github.com/acx10)
- Fix multiple author card menus opening simultaneously ([#&#8203;2852](https://github.com/booklore-app/booklore/issues/2852)) by [@&#8203;acx10](https://github.com/acx10)
- Fix Goodreads label mappings and format config ([#&#8203;2779](https://github.com/booklore-app/booklore/issues/2779)) by [@&#8203;AlfredSimpson](https://github.com/AlfredSimpson)
- fix(ui): encode filter values in query params to handle commas in names ([#&#8203;2717](https://github.com/booklore-app/booklore/issues/2717)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): prevent footer submenu from rendering off screen ([#&#8203;2714](https://github.com/booklore-app/booklore/issues/2714)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): inline mobile charts submenu to prevent layout overflow ([#&#8203;2713](https://github.com/booklore-app/booklore/issues/2713)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): correctly format lubimyczytac external rating link ([#&#8203;2491](https://github.com/booklore-app/booklore/issues/2491)) by [@&#8203;sebhewelt](https://github.com/sebhewelt)
- Fix iconDisplay binding syntax in metadata viewer ([#&#8203;2772](https://github.com/booklore-app/booklore/issues/2772)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Fix mobile toolbar overlapping on small screens ([#&#8203;2856](https://github.com/booklore-app/booklore/issues/2856)) by [@&#8203;acx10](https://github.com/acx10)
- Fix book browser header title overflow on mobile ([#&#8203;2808](https://github.com/booklore-app/booklore/issues/2808)) by [@&#8203;acx10](https://github.com/acx10)
- fix(book-browser): resolve footer menu not hiding after navigation back ([#&#8203;2626](https://github.com/booklore-app/booklore/issues/2626)) by [@&#8203;acx10](https://github.com/acx10)
- fix: align frontend Page interfaces with VIA\_DTO serialization format ([#&#8203;2751](https://github.com/booklore-app/booklore/issues/2751)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show provider icons in metadata viewer when only ID is present ([#&#8203;2734](https://github.com/booklore-app/booklore/issues/2734)) by [@&#8203;acx10](https://github.com/acx10)
- fix: hide show-more button when description fits without truncation ([#&#8203;2766](https://github.com/booklore-app/booklore/issues/2766)) by [@&#8203;acx10](https://github.com/acx10)
- fix: use audiobook thumbnail for audiobook entries in notebook ([#&#8203;2763](https://github.com/booklore-app/booklore/issues/2763)) by [@&#8203;acx10](https://github.com/acx10)
- fix: show session numbers in book ([#&#8203;2696](https://github.com/booklore-app/booklore/issues/2696)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- fix(settings): use boxed Integer for ScrollerConfig.maxItems to allow null ([#&#8203;2684](https://github.com/booklore-app/booklore/issues/2684)) by [@&#8203;acx10](https://github.com/acx10)
- fix(series-multi-select): Fix transparency in series multi select pop-up ([#&#8203;2555](https://github.com/booklore-app/booklore/issues/2555)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Filter text overwrites on long options ([#&#8203;2540](https://github.com/booklore-app/booklore/issues/2540)) by [@&#8203;acx10](https://github.com/acx10)
- Fix: Lock icons do not stay with publisher and series name input fields ([#&#8203;2539](https://github.com/booklore-app/booklore/issues/2539)) by [@&#8203;acx10](https://github.com/acx10)
- fix(metadata): improve cover errors, reduce metadata fetch count, and hide attach option ([#&#8203;2690](https://github.com/booklore-app/booklore/issues/2690)) by [@&#8203;acx10](https://github.com/acx10)

####  Performance

- perf: optimize book list API with ETag, delta sync, and IndexedDB caching ([#&#8203;2753](https://github.com/booklore-app/booklore/issues/2753)) by [@&#8203;acx10](https://github.com/acx10)
- perf: enable compact object headers (Project Lilliput) ([#&#8203;2755](https://github.com/booklore-app/booklore/issues/2755)) by [@&#8203;acx10](https://github.com/acx10)

#### 🛠️ Refactoring & Maintenance

- refactor: split BookService into BookFileService and BookMetadataManageService ([#&#8203;2758](https://github.com/booklore-app/booklore/issues/2758)) by [@&#8203;acx10](https://github.com/acx10)
- chore: fix memory leaks, add aria-labels, improve type safety and logging ([#&#8203;2764](https://github.com/booklore-app/booklore/issues/2764)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add caching, validation, lazy routes, refresh rate limiting, JaCoCo, and cleanup ([#&#8203;2762](https://github.com/booklore-app/booklore/issues/2762)) by [@&#8203;acx10](https://github.com/acx10)
- perf: strip unused fields from book list API response ([#&#8203;2741](https://github.com/booklore-app/booklore/issues/2741)) by [@&#8203;acx10](https://github.com/acx10)
- perf(epub): Replace linear manifest scans with HashMaps in EPUB reader ([#&#8203;2598](https://github.com/booklore-app/booklore/issues/2598)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(metadata): return full metadata from parsers instead of previews ([#&#8203;2689](https://github.com/booklore-app/booklore/issues/2689)) by [@&#8203;acx10](https://github.com/acx10)
- feat: comic metadata picker, lazy-load providers, and UI improvements ([#&#8203;2679](https://github.com/booklore-app/booklore/issues/2679)) by [@&#8203;acx10](https://github.com/acx10)
- Add complete translations for all supported languages ([#&#8203;2831](https://github.com/booklore-app/booklore/issues/2831)) by [@&#8203;acx10](https://github.com/acx10)
- Add Hungarian and Slovenian language support ([#&#8203;2846](https://github.com/booklore-app/booklore/issues/2846)) by [@&#8203;acx10](https://github.com/acx10)
- Add Croatian and Swedish translations for login page ([#&#8203;2786](https://github.com/booklore-app/booklore/issues/2786)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for stats, pdf reader, magic shelf, and remaining components (en/es) ([#&#8203;2742](https://github.com/booklore-app/booklore/issues/2742)) by [@&#8203;acx10](https://github.com/acx10)
- feat: add i18n translations for book components, services, and readers (en/es) ([#&#8203;2738](https://github.com/booklore-app/booklore/issues/2738)) by [@&#8203;acx10](https://github.com/acx10)
- fix(i18n): dynamic sidebar translations and UI font normalization ([#&#8203;2683](https://github.com/booklore-app/booklore/issues/2683)) by [@&#8203;acx10](https://github.com/acx10)
- feat: disable PDF printing for users without download permission ([#&#8203;2737](https://github.com/booklore-app/booklore/issues/2737)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): add file name column to table view and include filename in search ([#&#8203;2712](https://github.com/booklore-app/booklore/issues/2712)) by [@&#8203;acx10](https://github.com/acx10)
- feat(ui): provide hyperlinks for books as book cards in grid view ([#&#8203;2500](https://github.com/booklore-app/booklore/issues/2500)) by [@&#8203;berb](https://github.com/berb)
- feat(ui): Add sort by filePath ([#&#8203;1180](https://github.com/booklore-app/booklore/issues/1180) and [#&#8203;2364](https://github.com/booklore-app/booklore/issues/2364)) ([#&#8203;2512](https://github.com/booklore-app/booklore/issues/2512)) by [@&#8203;chiguirepower](https://github.com/chiguirepower)
- feat(icons): Made icons for libraries and shelves optional with no default icons. ([#&#8203;2599](https://github.com/booklore-app/booklore/issues/2599)) by [@&#8203;arthurgiroux](https://github.com/arthurgiroux)
- fix(comicvine): add fallback to issue detail endpoint for missing creator credits ([#&#8203;2694](https://github.com/booklore-app/booklore/issues/2694)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub-metadata): enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#&#8203;2636](https://github.com/booklore-app/booklore/issues/2636)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(metadata-match): Fix metadata quality calculation to properly handle locked fields ([#&#8203;2513](https://github.com/booklore-app/booklore/issues/2513)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(ui): reload shelves when enabling Kobo sync ([#&#8203;2715](https://github.com/booklore-app/booklore/issues/2715)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui):  standardize button labels and styles across components ([#&#8203;2560](https://github.com/booklore-app/booklore/issues/2560)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- chore: redesign README for cleaner layout and visual polish ([#&#8203;2728](https://github.com/booklore-app/booklore/issues/2728)) by [@&#8203;acx10](https://github.com/acx10)
- fix: make README logo visible in GitHub light mode ([#&#8203;2756](https://github.com/booklore-app/booklore/issues/2756)) by [@&#8203;acx10](https://github.com/acx10)
- chore: clean up PR template and contributing guide ([#&#8203;2660](https://github.com/booklore-app/booklore/issues/2660)) by [@&#8203;acx10](https://github.com/acx10)
- fix(file naming): add leading zero to series index ([#&#8203;2642](https://github.com/booklore-app/booklore/issues/2642)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Update viewport meta tag to prevent auto-zoom on iOS when entering in… ([#&#8203;2620](https://github.com/booklore-app/booklore/issues/2620)) by [@&#8203;jmswangit](https://github.com/jmswangit)
- test(API): add missing tests for BookMapperV2 ([#&#8203;2495](https://github.com/booklore-app/booklore/issues/2495)) by [@&#8203;piffio](https://github.com/piffio)
- fix(audiobook-reader): use preload=none with explicit load() for faster streaming ([#&#8203;2520](https://github.com/booklore-app/booklore/issues/2520)) by [@&#8203;acx10](https://github.com/acx10)
- fix(ui): clean cached properties ([#&#8203;2499](https://github.com/booklore-app/booklore/issues/2499)) by [@&#8203;piffio](https://github.com/piffio)
- fix(additional-file-uploader): add file size validation with UI feedback ([#&#8203;2516](https://github.com/booklore-app/booklore/issues/2516)) by [@&#8203;acx10](https://github.com/acx10)
- fix(os\_x-conversion): ignore \_\_MACOSX directory for conversions ([#&#8203;2479](https://github.com/booklore-app/booklore/issues/2479)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(series-page): add missing overlay preference service to book card ([#&#8203;2466](https://github.com/booklore-app/booklore/issues/2466)) by [@&#8203;xcashy](https://github.com/xcashy)
- fix(docker): add build and gradle directories to volumes in docker compose ([#&#8203;2459](https://github.com/booklore-app/booklore/issues/2459)) by [@&#8203;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 ([#&#8203;2813](https://github.com/booklore-app/booklore/issues/2813)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 15 updates ([#&#8203;2814](https://github.com/booklore-app/booklore/issues/2814)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group across 1 directory with 18 updates ([#&#8203;2687](https://github.com/booklore-app/booklore/issues/2687)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 13 updates ([#&#8203;2721](https://github.com/booklore-app/booklore/issues/2721)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the npm-dependencies group in /booklore-ui with 20 updates ([#&#8203;2542](https://github.com/booklore-app/booklore/issues/2542)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group across 1 directory with 7 updates ([#&#8203;2659](https://github.com/booklore-app/booklore/issues/2659)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump the gradle-dependencies group in /booklore-api with 2 updates ([#&#8203;2720](https://github.com/booklore-app/booklore/issues/2720)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.7 to 7.5.9 in /booklore-ui ([#&#8203;2805](https://github.com/booklore-app/booklore/issues/2805)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump tar from 7.5.6 to 7.5.7 in /booklore-ui ([#&#8203;2534](https://github.com/booklore-app/booklore/issues/2534)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump hono from 4.11.9 to 4.12.0 in /booklore-ui ([#&#8203;2815](https://github.com/booklore-app/booklore/issues/2815)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump qs from 6.14.1 to 6.14.2 in /booklore-ui ([#&#8203;2722](https://github.com/booklore-app/booklore/issues/2722)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump [@&#8203;modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk) and [@&#8203;angular/cli](https://github.com/angular/cli) in /booklore-ui ([#&#8203;2612](https://github.com/booklore-app/booklore/issues/2612)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump actions/setup-node from 4 to 6 ([#&#8203;2573](https://github.com/booklore-app/booklore/issues/2573)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### ⚙️ CI/CD

- ci: move Angular/Gradle builds to native CI steps to eliminate QEMU emulation ([#&#8203;2705](https://github.com/booklore-app/booklore/issues/2705)) by [@&#8203;acx10](https://github.com/acx10)
- chore: add performance label to release drafter categories ([#&#8203;2754](https://github.com/booklore-app/booklore/issues/2754)) by [@&#8203;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>
2026-02-24 20:46:25 +00:00
034faf2e32 chore(deps): update dependency booklore-app/booklore to v1.18.5 (#3471)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 9s
renovate / renovate (push) Successful in 2m53s
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 ([#&#8203;2446](https://github.com/booklore-app/BookLore/issues/2446)) by [@&#8203;acx10](https://github.com/acx10)

####  Enhancements

- feat(dashboard-settings): update sort field options for Surname, and Personal Rating ([#&#8203;2456](https://github.com/booklore-app/BookLore/issues/2456)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(themes): add AMOLED theme with distinct light and dark color schemes ([#&#8203;2457](https://github.com/booklore-app/BookLore/issues/2457)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(book-browser): preserve scroll position when navigating back fro… ([#&#8203;2449](https://github.com/booklore-app/BookLore/issues/2449)) by [@&#8203;acx10](https://github.com/acx10)
- feat(pwa): add offline handling and fallback support ([#&#8203;2444](https://github.com/booklore-app/BookLore/issues/2444)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes

- fix(stats): show tooltip for single bubble and allow overflow in auth… ([#&#8203;2443](https://github.com/booklore-app/BookLore/issues/2443)) by [@&#8203;acx10](https://github.com/acx10)
- fix(opds): fix regression with browsing shelves ([#&#8203;2423](https://github.com/booklore-app/BookLore/issues/2423)) by [@&#8203;piffio](https://github.com/piffio)

#### 🛠️ Refactoring & Maintenance

- fix(ui): use local asset for page background ([#&#8203;2445](https://github.com/booklore-app/BookLore/issues/2445)) by [@&#8203;imnotjames](https://github.com/imnotjames)
- perf: lazy-load accordion content in library metadata settings ([#&#8203;2442](https://github.com/booklore-app/BookLore/issues/2442)) by [@&#8203;acx10](https://github.com/acx10)
- fix(cbx-reader): prevent touch drag on mobile and fix header title ov… ([#&#8203;2441](https://github.com/booklore-app/BookLore/issues/2441)) by [@&#8203;acx10](https://github.com/acx10)
- refactor: reduce re-renders and improve filter sidebar performance ([#&#8203;2440](https://github.com/booklore-app/BookLore/issues/2440)) by [@&#8203;acx10](https://github.com/acx10)
- Add clear warning when deleting books that files will be permanently … ([#&#8203;2438](https://github.com/booklore-app/BookLore/issues/2438)) by [@&#8203;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>
2026-01-24 18:22:32 +00:00
a9d34053af chore(deps): update ghcr.io/booklore-app/booklore docker tag to v1.18.5 (#3472)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 53s
renovate / renovate (push) Has been cancelled
2026-01-24 17:50:52 +00:00
f46ac98970 chore(deps): update appVersions
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
renovate / renovate (push) Successful in 11m40s
render-manifests-push / render-manifests-push (push) Successful in 12m20s
2026-01-23 17:05:18 -06:00
75de4c2984 chore(deps): update ghcr.io/booklore-app/booklore docker tag to v1.18.4 (#3448)
Some checks failed
lint-test-helm / lint-helm (push) Has been cancelled
render-manifests-push / render-manifests-push (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-01-23 22:05:34 +00:00
914dd14c81 fix: align renovate custom manager to appVersion updates on Chart
All checks were successful
lint-test-helm / lint-helm (push) Successful in 12s
render-manifests-push / render-manifests-push (push) Successful in 49m21s
renovate / renovate (push) Successful in 13m16s
2026-01-23 14:49:38 -06:00
8cf45d06c4 Update ghcr.io/booklore-app/booklore Docker tag to v1.18.3 (#3371)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2026-01-23 00:19:15 +00:00
e255ed994f Update ghcr.io/booklore-app/booklore Docker tag to v1.18.2 (#3369)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m17s
renovate / renovate (push) Successful in 2m33s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.17.0` → `v1.18.2` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.18.2`](https://github.com/booklore-app/booklore/releases/tag/v1.18.2)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.18.0...v1.18.2)

#### 🌟 What's New in v1.18.2

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.

#### 🐛 Bug Fixes (v1.18.2 + v1.18.1)

- fix(db): remove unused CBX/PDF cache cleanup cron entries ([#&#8203;2402](https://github.com/booklore-app/booklore/issues/2402))
- Fix showstopper bugs in v1.18.0 ([#&#8203;2399](https://github.com/booklore-app/booklore/issues/2399)) by [@&#8203;acx10](https://github.com/acx10)
- fix(reading sessions): Split sessions, re-calculate times in book overview ([#&#8203;2393](https://github.com/booklore-app/booklore/issues/2393)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)

#### 🚀 New Features (v1.18.0)

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

####  Enhancements (v1.18.0)

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

#### 🎨 UI Tweaks (v1.18.0)

- Polish view and metadata settings page UI ([#&#8203;2362](https://github.com/booklore-app/booklore/issues/2362)) by [@&#8203;acx10](https://github.com/acx10)
- Optimize metadata picker for mobile layout ([#&#8203;2361](https://github.com/booklore-app/booklore/issues/2361)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐛 Bug Fixes (v1.18.0)

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

#### 🛠️ Refactoring & Maintenance (v1.18.0)

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

#### 📦 Dependencies (v1.18.0)

- chore(deps): bump tar from 7.5.2 to 7.5.6 in /booklore-ui ([#&#8203;2387](https://github.com/booklore-app/booklore/issues/2387)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): bump lodash-es from 4.17.21 to 4.17.23 in /booklore-ui ([#&#8203;2388](https://github.com/booklore-app/booklore/issues/2388)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore: update Angular dependencies to latest minor/patch versions ([#&#8203;2285](https://github.com/booklore-app/booklore/issues/2285)) by [@&#8203;acx10](https://github.com/acx10)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.18.2`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.18.2`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.17.0...v1.18.2>

#### 📸 Screenshots

<img width="750" height="471" alt="Screenshot 2026-01-22 at 12 10 47 PM" src="https://github.com/user-attachments/assets/d5118bbf-771c-495d-b2a3-a695027a6bcd" />
<img width="750" height="451" alt="Screenshot 2026-01-22 at 12 06 23 PM" src="https://github.com/user-attachments/assets/13456e8f-e3bb-4373-b6c8-b4871c5b5504" />
<img width="750" height="452" alt="Screenshot 2026-01-22 at 12 02 35 PM" src="https://github.com/user-attachments/assets/d2f8a2d6-6ea8-43d2-b990-7a058ca45e29" />
<img width="750" height="452" alt="Screenshot 2026-01-22 at 12 01 46 PM" src="https://github.com/user-attachments/assets/0aff60b3-238f-4f6e-a2b5-c962f844e7ba" />
<img width="632" height="710" alt="Screenshot 2026-01-22 at 12 04 22 PM" src="https://github.com/user-attachments/assets/fd4fcc98-3d95-4662-ac61-a93d534f3ed3" />
<img width="632" height="710" alt="Screenshot 2026-01-22 at 12 04 27 PM" src="https://github.com/user-attachments/assets/5464a3d4-a6f7-4e8d-acfc-1ca7fb14e9ec" />
<img width="632" height="710" alt="Screenshot 2026-01-22 at 12 04 33 PM" src="https://github.com/user-attachments/assets/c7722037-ba00-4bea-a166-150b6557caf3" />
<img width="632" height="710" alt="Screenshot 2026-01-22 at 12 05 47 PM" src="https://github.com/user-attachments/assets/6011c4ee-efa2-4471-a9b0-9fd2b2d09712" />
<img width="750" height="471" alt="Screenshot 2026-01-22 at 12 13 56 PM" src="https://github.com/user-attachments/assets/820465a6-59d7-44d7-9eef-56f69451ab85" />
<img width="750" height="402" alt="Screenshot 2026-01-22 at 1 17 59 AM" src="https://github.com/user-attachments/assets/08aa7a57-aa54-4672-ab1c-b35551e88b51" />
<img width="750" height="369" alt="Screenshot 2026-01-22 at 1 17 41 AM" src="https://github.com/user-attachments/assets/2f08f94f-59e4-40f1-932b-07b028620875" />
<img width="750" height="317" alt="Screenshot 2026-01-22 at 1 18 11 AM" src="https://github.com/user-attachments/assets/947c96cc-ab9a-481d-adb0-2a1472393ee8" />
<img width="750" height="471" alt="Screenshot 2026-01-22 at 12 09 34 PM" src="https://github.com/user-attachments/assets/3bfc4666-7aa5-45db-a2b5-f16f0a3a8b5c" />
<img width="750" height="471" alt="Screenshot 2026-01-22 at 12 09 28 PM" src="https://github.com/user-attachments/assets/1c3cc89f-1cd6-4dd3-b0f2-26b9ad56aa66" />
<img width="750" height="451" alt="Screenshot 2026-01-22 at 12 07 03 PM" src="https://github.com/user-attachments/assets/8b9577c0-db09-4bf1-8903-f9ceca7b9964" />

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3369
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-01-22 23:28:01 +00:00
285e17717f Update Helm release app-template to v4.6.2 (#3266)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 17s
renovate / renovate (push) Successful in 1m24s
2026-01-16 18:57:33 +00:00
41b5b60bd7 Update ghcr.io/booklore-app/booklore Docker tag to v1.17.0 (#3146)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 52s
render-manifests-dispatch / render-manifests-dispatch (push) Successful in 26m43s
renovate / renovate (push) Successful in 1m32s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.16.5` → `v1.17.0` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.17.0`](https://github.com/booklore-app/booklore/releases/tag/v1.17.0)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.16.5...v1.17.0)

#### 🌟 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

- feat: Add custom font support for EPUB reader ([#&#8203;2120](https://github.com/booklore-app/booklore/issues/2120)) by [@&#8203;darkraise](https://github.com/darkraise)
- Revamp metadata search UI to display live results ([#&#8203;2195](https://github.com/booklore-app/booklore/issues/2195)) by [@&#8203;acx10](https://github.com/acx10)
- Feature/koreader hardcover sync ([#&#8203;2204](https://github.com/booklore-app/booklore/issues/2204)) by [@&#8203;boludo00](https://github.com/boludo00)

####  Enhancements

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

#### 🐛 Bug Fixes

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

#### 🛠️ Refactoring & Maintenance

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

#### 📦 Dependencies

- chore(deps): bump qs and body-parser in /booklore-ui ([#&#8203;2088](https://github.com/booklore-app/booklore/issues/2088)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### 🐳 Docker Images

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

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.16.5...v1.17.0>

#### 📸 Screenshots:

<img width="750" height="452" alt="Screenshot 2026-01-09 at 3 39 40 PM" src="https://github.com/user-attachments/assets/40e13036-0f51-4b39-99fb-9239f6dc6067" />
<img width="750" height="452" alt="Screenshot 2026-01-09 at 3 39 57 PM" src="https://github.com/user-attachments/assets/338d00bf-795f-4613-aa2c-f80dee546cc4" />
<img width="750" height="452" alt="Screenshot 2026-01-09 at 3 42 06 PM" src="https://github.com/user-attachments/assets/5e420e89-c186-4d96-8520-601ce6c0342c" />
<img width="750" height="452" alt="Screenshot 2026-01-09 at 3 40 29 PM" src="https://github.com/user-attachments/assets/13a6cfcc-f691-4613-9dfb-1e761cc67450" />
<img width="750" height="452" alt="Screenshot 2026-01-09 at 3 41 15 PM" src="https://github.com/user-attachments/assets/2efdaefb-8a94-4e05-a3b8-03bc4a37d22f" />

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3146
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-01-10 00:15:00 +00:00
0f883ebbd5 Update Helm release mariadb-cluster to v25.10.4 (#3126)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 16s
renovate / renovate (push) Has been cancelled
2026-01-08 21:50:48 +00:00
a100fc174a Update Helm release app-template to v4.6.0 (#3094)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 24s
renovate / renovate (push) Successful in 2m15s
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>
2026-01-07 23:03:02 +00:00
70c18ae648 Update ghcr.io/booklore-app/booklore Docker tag to v1.16.5 (#3077)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 24s
renovate / renovate (push) Has been cancelled
2026-01-07 01:47:05 +00:00
6bf48a1e3e Update ghcr.io/booklore-app/booklore Docker tag to v1.16.4 (#3053)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 1m22s
renovate / renovate (push) Successful in 2m26s
2026-01-04 20:24:32 +00:00
e79d6783d8 Update ghcr.io/booklore-app/booklore Docker tag to v1.16.3 (#3042)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 19s
render-manifests-dispatch / render-manifests-dispatch (push) Successful in 23m46s
renovate / renovate (push) Successful in 2m4s
2026-01-04 02:01:57 +00:00
6e7464005c enable local
All checks were successful
lint-test-helm / lint-helm (push) Successful in 19s
render-manifests-push / render-manifests-push (push) Successful in 1m11s
renovate / renovate (push) Successful in 1m24s
2026-01-01 23:41:24 -06:00
6f318db6a0 Update ghcr.io/booklore-app/booklore Docker tag to v1.16.2 (#3015)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 13s
renovate / renovate (push) Successful in 2m30s
2025-12-31 05:50:59 +00:00
a353cc0f25 Update ghcr.io/booklore-app/booklore Docker tag to v1.16.1 (#2938)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 27s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.15.0` → `v1.16.1` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.16.1`](https://github.com/booklore-app/booklore/releases/tag/v1.16.1)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.16.0...v1.16.1)

#### 🌟 What's New in v1.16.1

#### 🚀 New Features

- Feat/lubimyczytac metadata provider ([#&#8203;2019](https://github.com/booklore-app/booklore/issues/2019)) by [@&#8203;gajewsky](https://github.com/gajewsky)
- Display paginated reading sessions in the book metadata view ([#&#8203;2003](https://github.com/booklore-app/booklore/issues/2003)) by [@&#8203;acx10](https://github.com/acx10)

####  Enhancements

- Improve the SVG fetching and caching logic ([#&#8203;2011](https://github.com/booklore-app/booklore/issues/2011)) by [@&#8203;acx10](https://github.com/acx10)
- Fix(metadata): Improve handling of non-author creator roles ([#&#8203;1987](https://github.com/booklore-app/booklore/issues/1987)) by [@&#8203;MightyHalfGinger](https://github.com/MightyHalfGinger)
- Add more user-specific charts ([#&#8203;1991](https://github.com/booklore-app/booklore/issues/1991)) by [@&#8203;acx10](https://github.com/acx10)
- fix: when selecting a series, select all books from the series ([#&#8203;1979](https://github.com/booklore-app/booklore/issues/1979)) by [@&#8203;farfromrefug](https://github.com/farfromrefug)
- fix(metadata): Use existing Goodreads ID for batch refresh instead of searching ([#&#8203;1973](https://github.com/booklore-app/booklore/issues/1973)) by [@&#8203;cwar](https://github.com/cwar)
- Add anonymous usage telemetry ([#&#8203;2026](https://github.com/booklore-app/booklore/issues/2026)) by [@&#8203;acx10](https://github.com/acx10)
- perf(cbz): optimize CBZ reading ([#&#8203;1980](https://github.com/booklore-app/booklore/issues/1980)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: regenerate improvements ([#&#8203;1981](https://github.com/booklore-app/booklore/issues/1981)) by [@&#8203;farfromrefug](https://github.com/farfromrefug)

#### 🐛 Bug Fixes

- Fix: Custom/Added icons not visible when assigning shelf ([#&#8203;2010](https://github.com/booklore-app/booklore/issues/2010)) by [@&#8203;acx10](https://github.com/acx10)
- fix(epub-metadata): properly decode URL-encoded cover image hrefs in EPUBs ([#&#8203;1983](https://github.com/booklore-app/booklore/issues/1983)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 🛠️ Refactoring & Maintenance

- refactor(api): improve file resource handling in book download and FB2 metadata extraction ([#&#8203;2018](https://github.com/booklore-app/booklore/issues/2018)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Refactor book service in BE and FE ([#&#8203;2013](https://github.com/booklore-app/booklore/issues/2013)) by [@&#8203;acx10](https://github.com/acx10)
- Disable nginx IPv6 listener when disabled on host ([#&#8203;1998](https://github.com/booklore-app/booklore/issues/1998)) by [@&#8203;descensus](https://github.com/descensus)
- test(util): expand and improve utility test coverage for BookUtils, FileUtils, PathPatternResolver, MetadataChangeDetector, and UserPermissionUtils ([#&#8203;1985](https://github.com/booklore-app/booklore/issues/1985)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix: Prevent transaction rollback when cover download fails ([#&#8203;1971](https://github.com/booklore-app/booklore/issues/1971)) by [@&#8203;cwar](https://github.com/cwar)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.16.1`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.16.1`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.16.0...v1.16.1>

### [`v1.16.0`](https://github.com/booklore-app/booklore/releases/tag/v1.16.0)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.15.0...v1.16.0)

#### 🌟 What's New in v1.16.0

#### 🚀 New Features

- Introduce reading session tracking with visual insights ([#&#8203;1957](https://github.com/booklore-app/booklore/issues/1957)) by [@&#8203;acx10](https://github.com/acx10)
- Introduce more granular permission controls and update the user management UI ([#&#8203;1965](https://github.com/booklore-app/booklore/issues/1965)) by [@&#8203;acx10](https://github.com/acx10)
- Enhance EPUB reader with new themes and UI improvements ([#&#8203;1948](https://github.com/booklore-app/booklore/issues/1948)) by [@&#8203;acx10](https://github.com/acx10)

####  Enhancements

- feat(bookmark): improve bookmark feature by adding rename, note, color, priority functionalities ([#&#8203;1946](https://github.com/booklore-app/booklore/issues/1946)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Add missing kobo progress bar and stats ([#&#8203;1942](https://github.com/booklore-app/booklore/issues/1942)) by [@&#8203;pedronave](https://github.com/pedronave)
- Fix/hardcover api key per user ([#&#8203;1943](https://github.com/booklore-app/booklore/issues/1943)) by [@&#8203;boludo00](https://github.com/boludo00)

#### 🐛 Bug Fixes

- fix(scans): prevent shelf associations from being cleared during metadata operations ([#&#8203;1947](https://github.com/booklore-app/booklore/issues/1947)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.16.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.16.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.15.0...v1.16.0>

##### 📸 Screenshots:

![Screenshot 2025-12-24 at 12 50 15 PM](https://github.com/user-attachments/assets/499633e1-9342-40be-a8cd-536660f3a28b)
![Screenshot 2025-12-24 at 12 51 34 PM](https://github.com/user-attachments/assets/c8aa47f8-5921-48ca-b790-ecee5082f9b4)
![Screenshot 2025-12-24 at 12 50 33 PM](https://github.com/user-attachments/assets/8f554fc1-4c39-44de-bb87-ee48117ddbc8)
![Screenshot 2025-12-24 at 12 52 33 PM](https://github.com/user-attachments/assets/92c27004-db64-4a2c-901d-bc82e4f12dfc)
![Screenshot 2025-12-24 at 12 54 16 PM](https://github.com/user-attachments/assets/f65aefe0-d30e-4db2-8946-fd393fb31166)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni45IiwidXBkYXRlZEluVmVyIjoiNDIuNjYuMTMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2938
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-29 23:49:23 +00:00
45b4391d59 add restore
All checks were successful
lint-test-helm / lint-helm (push) Successful in 11s
render-manifests-push / render-manifests-push (push) Successful in 39s
renovate / renovate (push) Successful in 50s
2025-12-27 21:50:33 -06:00
e4138a7994 add local
Some checks failed
lint-test-helm / lint-helm (push) Successful in 13s
render-manifests-push / render-manifests-push (push) Successful in 53s
renovate / renovate (push) Failing after 13m5s
2025-12-27 18:36:14 -06:00
c896e4a32f disable local
All checks were successful
lint-test-helm / lint-helm (push) Successful in 11s
renovate / renovate (push) Successful in 2m7s
render-manifests-push / render-manifests-push (push) Successful in 2m1s
2025-12-27 18:27:55 -06:00
c37f9cf23e enable local backups
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
render-manifests-push / render-manifests-push (push) Successful in 1m58s
renovate / renovate (push) Successful in 1m29s
2025-12-27 17:45:51 -06:00
b67d15cdfc change schedule
Some checks failed
lint-test-helm / lint-helm (push) Successful in 23s
renovate / renovate (push) Has been cancelled
render-manifests-push / render-manifests-push (push) Successful in 4m23s
2025-12-27 13:40:57 -06:00
d1b88d31cd disable volsync
Some checks failed
renovate / renovate (push) Waiting to run
lint-test-docker / lint-docker-compose (push) Failing after 36s
lint-test-helm / lint-helm (push) Failing after 1m17s
render-manifests-push / render-manifests-push (push) Waiting to run
2025-12-27 10:59:42 -06:00
5e14a56dd5 Update Helm release mariadb-cluster to v25.10.3 (#2814)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 13s
renovate / renovate (push) Has been cancelled
2025-12-24 18:26:47 +00:00
eb6ff2df76 renovate update chart appVersion
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
renovate / renovate (push) Successful in 1m10s
render-manifests-push / render-manifests-push (push) Successful in 5m54s
2025-12-23 17:37:47 -06:00
f20c4483e8 update chart 2025-12-23 16:51:27 -06:00
a2dbe6f120 consolidate all services to tailscale operator
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
render-manifests-push / render-manifests-push (push) Successful in 1m26s
renovate / renovate (push) Successful in 1m24s
2025-12-20 18:02:15 -06:00
8ca684f42c Update ghcr.io/booklore-app/booklore Docker tag to v1.15.0 (#2735)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 13s
renovate / renovate (push) Successful in 59s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.14.1` -> `v1.15.0` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.15.0`](https://github.com/booklore-app/booklore/releases/tag/v1.15.0)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.14.1...v1.15.0)

#### 🌟 What's New in v1.15.0

#### 🚀 New Features

- feat: add additional cover art actions and settings ([#&#8203;1938](https://github.com/booklore-app/booklore/issues/1938)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- feat(hardcover): sync Kobo reading progress to Hardcover ([#&#8203;1926](https://github.com/booklore-app/booklore/issues/1926)) by [@&#8203;boludo00](https://github.com/boludo00)
- Add sequential next/previous book navigation from library, filtered, and search views ([#&#8203;1931](https://github.com/booklore-app/booklore/issues/1931)) by [@&#8203;acx10](https://github.com/acx10)
- feat(api, ui): add bookdrop bulk edit and metadata pattern extraction ([#&#8203;1846](https://github.com/booklore-app/booklore/issues/1846)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- Add support for fb2 books ([#&#8203;1757](https://github.com/booklore-app/booklore/issues/1757)) by [@&#8203;slonoed](https://github.com/slonoed)

####  Enhancements

- feat: add library sync URL generation in KoboUrlBuilder ([#&#8203;1937](https://github.com/booklore-app/booklore/issues/1937)) by [@&#8203;ripdog](https://github.com/ripdog)
- feat(opds): allow user to set sorting for opds feed in settings ([#&#8203;1824](https://github.com/booklore-app/booklore/issues/1824)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- Feat/conversion CBX to EPUB compression configuration ([#&#8203;1844](https://github.com/booklore-app/booklore/issues/1844)) by [@&#8203;thvardhan](https://github.com/thvardhan)
- feat(opds): add series hierarchy ([#&#8203;1837](https://github.com/booklore-app/booklore/issues/1837)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)

#### 🎨 UI Tweaks

- fix: Bookdrop UI mobile support ([#&#8203;1911](https://github.com/booklore-app/booklore/issues/1911)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix: Consistent dialogs ([#&#8203;1842](https://github.com/booklore-app/booklore/issues/1842)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)

#### 🐛 Bug Fixes

- fix: Library icon name bug ([#&#8203;1934](https://github.com/booklore-app/booklore/issues/1934)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix: bookdrop bulk actions not applying to uncached pages ([#&#8203;1928](https://github.com/booklore-app/booklore/issues/1928)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- fix: file renaming with wrong extension ([#&#8203;1929](https://github.com/booklore-app/booklore/issues/1929)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- fix(FileService): update User-Agent header for ComicVine to let the Parser through ([#&#8203;1880](https://github.com/booklore-app/booklore/issues/1880)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(ui): Force page reload on logout ([#&#8203;1870](https://github.com/booklore-app/booklore/issues/1870)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)

#### 🛠️ Refactoring & Maintenance

- refactor(fb2, misc): Improve code quality, update to modern Java patterns, add reasonable initial values for StringBuilders ([#&#8203;1932](https://github.com/booklore-app/booklore/issues/1932)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 📦 Dependencies

- Upgrade Angular from v20 to v21 and update other dependencies ([#&#8203;1916](https://github.com/booklore-app/booklore/issues/1916)) by [@&#8203;acx10](https://github.com/acx10)
- chore(deps): bump docker/login-action from 2 to 3 ([#&#8203;1908](https://github.com/booklore-app/booklore/issues/1908)) by @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- chore(deps): update actions/setup-java action to v5 ([#&#8203;1871](https://github.com/booklore-app/booklore/issues/1871)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update actions/upload-artifact action to v6 ([#&#8203;1872](https://github.com/booklore-app/booklore/issues/1872)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update actions/checkout action to v6 ([#&#8203;1869](https://github.com/booklore-app/booklore/issues/1869)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update dependency org.flywaydb:flyway-mysql to v11.19.0 ([#&#8203;1868](https://github.com/booklore-app/booklore/issues/1868)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update dependency org.apache.commons:commons-text to v1.15.0 ([#&#8203;1865](https://github.com/booklore-app/booklore/issues/1865)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update lscr.io/linuxserver/mariadb docker tag to v11.4.8 ([#&#8203;1862](https://github.com/booklore-app/booklore/issues/1862)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update dependency org.freemarker:freemarker to v2.3.34 ([#&#8203;1861](https://github.com/booklore-app/booklore/issues/1861)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update dependency org.assertj:assertj-core to v3.27.6 ([#&#8203;1859](https://github.com/booklore-app/booklore/issues/1859)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)
- chore(deps): update dependency gradle to v8.14.3 ([#&#8203;1858](https://github.com/booklore-app/booklore/issues/1858)) by @&#8203;[renovate\[bot\]](https://github.com/apps/renovate)

#### ⚙️ CI/CD

- Add Flyway migration conflict detection in CI ([#&#8203;1888](https://github.com/booklore-app/booklore/issues/1888)) by [@&#8203;acx10](https://github.com/acx10)
- Speed up CI builds by introducing dependency caching ([#&#8203;1874](https://github.com/booklore-app/booklore/issues/1874)) by [@&#8203;acx10](https://github.com/acx10)
- Add Flyway migration version conflict check in GitHub Actions ([#&#8203;1863](https://github.com/booklore-app/booklore/issues/1863)) by [@&#8203;acx10](https://github.com/acx10)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.15.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.15.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.14.1...v1.15.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2735
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-20 01:14:41 +00:00
451793e158 Update volsync-target Docker tag to v0.6.0 (#2695)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 35s
renovate / renovate (push) Successful in 1m24s
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>
2025-12-18 03:21:13 +00:00
08a3c21d30 Update ghcr.io/booklore-app/booklore Docker tag to v1.14.1 (#2665)
Some checks failed
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 9s
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.13.2` -> `v1.14.1` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.14.1`](https://github.com/booklore-app/booklore/releases/tag/v1.14.1)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.13.2...v1.14.1)

#### 🌟 What's New in v1.14.1

The v1.14.1 release is packed with lots upgrades, brand-new capabilities, and a long list of quality-of-life improvements. Here are the headline features you’ll notice right away:

1. **Custom SVG Icons**: Libraries, shelves, and magic shelves can now have fully custom SVG icons, giving users complete creative freedom and a far richer visual experience.
2. **Personal Book Ratings**: Ratings are now truly personal. Each user has their own individual rating for every book. (Thanks to [@&#8203;Muppetteer](https://github.com/Muppetteer))
3. **EPUB Reader Bookmarks**: The EPUB reader now supports bookmarks, making it easier than ever to mark important passages and jump back to them later. (Thanks to [@&#8203;balazs-szucs](https://github.com/balazs-szucs))
4. **Automatic Kobo Shelf Sync**: Newly added books can now be automatically added to your Kobo shelf, no more manual syncing or missed additions. (Thanks to [@&#8203;armandocerna](https://github.com/armandocerna))
5. **OPDS Author Hierarchy**: OPDS feeds now offer a complete author hierarchy, letting you quickly explore and navigate books by your favorite authors. (Thanks to [@&#8203;shiggsy365](https://github.com/shiggsy365))

#### 🚀 New Features

- Add support for uploading and assigning custom SVG icons to libraries… ([#&#8203;1788](https://github.com/booklore-app/booklore/issues/1788)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Automatically add newly added books to Kobo shelf ([#&#8203;1826](https://github.com/booklore-app/booklore/issues/1826)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Per user personal ratings ([#&#8203;1820](https://github.com/booklore-app/booklore/issues/1820)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Random sort option for libraries and shelves ([#&#8203;1817](https://github.com/booklore-app/booklore/issues/1817)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- feat(bookmark): implement bookmark management with CRUD operations ([#&#8203;1795](https://github.com/booklore-app/booklore/issues/1795)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add authors hierarchy and series metadata to OPDS feed ([#&#8203;1777](https://github.com/booklore-app/booklore/issues/1777)) by [@&#8203;shiggsy365](https://github.com/shiggsy365)

####  Enhancements

- feat(search): Add denormalized search\_text column for better book search ([#&#8203;1791](https://github.com/booklore-app/booklore/issues/1791)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Enable java remote debug on dev docker stack ([#&#8203;1808](https://github.com/booklore-app/booklore/issues/1808)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix(book-card): add menu toggle events and update styles for open state ([#&#8203;1813](https://github.com/booklore-app/booklore/issues/1813)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Allow uploading multiple SVG icons and render them directly as inline… ([#&#8203;1796](https://github.com/booklore-app/booklore/issues/1796)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- fix(book-card): indicate collapse series number on the library tooltip ([#&#8203;1800](https://github.com/booklore-app/booklore/issues/1800)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Feat: Improve metadata edit UI ([#&#8203;1792](https://github.com/booklore-app/booklore/issues/1792)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix(epub): fix and improve cover image extraction from EPUB files (specifically support for: EPUB 3 specification) ([#&#8203;1773](https://github.com/booklore-app/booklore/issues/1773)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add OIDC mobile redirect support for mobile apps ([#&#8203;1767](https://github.com/booklore-app/booklore/issues/1767)) by [@&#8203;rmellmer](https://github.com/rmellmer)
- Improve bookdrop UI ([#&#8203;1768](https://github.com/booklore-app/booklore/issues/1768)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Feat: Hide empty filter categories from sidebar ([#&#8203;1759](https://github.com/booklore-app/booklore/issues/1759)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)

#### 🐛 Bug Fixes

- fix(bookdrop): fix 'Select All' query logic and improve filename fallback for missing metadata ([#&#8203;1828](https://github.com/booklore-app/booklore/issues/1828)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix vertical overflow on metadata edit form dialog: part deux ([#&#8203;1816](https://github.com/booklore-app/booklore/issues/1816)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Fix issues with library scans and file moves with a focus on SMB usage ([#&#8203;1744](https://github.com/booklore-app/booklore/issues/1744)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- Fix vertical overflow on metadata edit form dialog ([#&#8203;1810](https://github.com/booklore-app/booklore/issues/1810)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix(metadata): Fix genre/category disappearing bug in metadata updates ([#&#8203;1807](https://github.com/booklore-app/booklore/issues/1807)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: locking fields discards unsaved changes ([#&#8203;1799](https://github.com/booklore-app/booklore/issues/1799)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix(path): remove trailing dots from path components for Windows compatibility ([#&#8203;1786](https://github.com/booklore-app/booklore/issues/1786)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(bookdrop): improve file filtering to ignore .caltrash (calibre generated trash file) ([#&#8203;1785](https://github.com/booklore-app/booklore/issues/1785)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Fix: Assign Books to Shelves popup visually broken ([#&#8203;1783](https://github.com/booklore-app/booklore/issues/1783)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Fix: script error preventing clearing of multi-select fields ([#&#8203;1756](https://github.com/booklore-app/booklore/issues/1756)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- hotfix(auth): add missing EC algo for Authentik, manually increase timeout limit ([#&#8203;1747](https://github.com/booklore-app/booklore/issues/1747)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 🛠️ Refactoring & Maintenance

- refactor(api): minor QOL updates, code modernization  ([#&#8203;1802](https://github.com/booklore-app/booklore/issues/1802)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- delete broken (legacy?) github discussions link in contributing.md ([#&#8203;1805](https://github.com/booklore-app/booklore/issues/1805)) by [@&#8203;JuergenFleiss](https://github.com/JuergenFleiss)
- docs: update license information from MIT to GPL-3.0 in CONTRIBUTING.md ([#&#8203;1803](https://github.com/booklore-app/booklore/issues/1803)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add loader for long running operations ([#&#8203;1790](https://github.com/booklore-app/booklore/issues/1790)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Configureable delimiter for remote auth groups ([#&#8203;1782](https://github.com/booklore-app/booklore/issues/1782)) by [@&#8203;aroberts](https://github.com/aroberts)
- Add missing field for Kobo OverDrive expiration check ([#&#8203;1774](https://github.com/booklore-app/booklore/issues/1774)) by [@&#8203;jose-elias-alvarez](https://github.com/jose-elias-alvarez)
- fix(bookdrop): ignore dot and underscore files during monitoring ([#&#8203;1771](https://github.com/booklore-app/booklore/issues/1771)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.14.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.14.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.13.2...v1.14.0>

#### 📸 Screenshots:

![Screenshot 2025-12-12 at 8 43 50 AM](https://github.com/user-attachments/assets/b72e4005-5846-4715-9e6c-3b34773eb69e)
![Screenshot 2025-12-12 at 8 44 09 AM](https://github.com/user-attachments/assets/bb92c5f6-0948-4852-835a-ff22c0a6c1af)
![Screenshot 2025-12-12 at 8 39 48 AM](https://github.com/user-attachments/assets/b0998af5-410f-495e-9b48-70b891c03c37)
![Screenshot 2025-12-12 at 8 38 11 AM](https://github.com/user-attachments/assets/5e402e6c-bbff-49e7-8256-2827e0ff96a8)
![Screenshot 2025-12-12 at 8 36 10 AM](https://github.com/user-attachments/assets/4e8447fa-d8b1-487e-a40b-8305472921c6)
![Screenshot 2025-12-12 at 8 34 53 AM](https://github.com/user-attachments/assets/bc8e0014-fc47-4f25-aaf2-20f6a743df08)

</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: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2665
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-18 02:31:24 +00:00
16fb812cff add priv
Some checks failed
lint-test-helm / lint-helm (push) Successful in 15s
render-manifests-push / render-manifests-push (push) Successful in 24s
renovate / renovate (push) Has been cancelled
2025-12-16 16:01:45 -06:00
6d3b4cc8b8 enable tls
Some checks failed
lint-test-helm / lint-helm (push) Successful in 13s
render-manifests-push / render-manifests-push (push) Successful in 25s
renovate / renovate (push) Has been cancelled
2025-12-15 20:52:32 -06:00
f8c08da14e keep only the most recent job
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
render-manifests-push / render-manifests-push (push) Successful in 23s
renovate / renovate (push) Successful in 54s
2025-12-15 20:43:53 -06:00
4c26f42d22 add remote backup
All checks were successful
lint-test-helm / lint-helm (push) Successful in 17s
render-manifests-push / render-manifests-push (push) Successful in 34s
renovate / renovate (push) Successful in 1m18s
2025-12-15 20:39:39 -06:00
40ee5b3833 move volsync to chart
All checks were successful
lint-test-helm / lint-helm (push) Successful in 16s
render-manifests-push / render-manifests-push (push) Successful in 31s
renovate / renovate (push) Successful in 1m30s
2025-12-15 19:16:06 -06:00
dcc30342b8 update appVersion 2025-12-11 17:21:25 -06:00
15071cdb96 Update ghcr.io/booklore-app/booklore Docker tag to v1.13.2 (#2291)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 16s
renovate / renovate (push) Successful in 2m3s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | patch | `v1.13.1` -> `v1.13.2` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.13.2`](https://github.com/booklore-app/booklore/releases/tag/v1.13.2)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.13.1...v1.13.2)

#### 🌟 What's New in v1.13.2

#### 🚀 New Features

- Add sort preference option for Magic Shelf names in the left sidebar ([#&#8203;1749](https://github.com/booklore-app/booklore/issues/1749)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Feature: filter mode preference ([#&#8203;1739](https://github.com/booklore-app/booklore/issues/1739)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Add a user-facing option to enable or disable series view ([#&#8203;1748](https://github.com/booklore-app/booklore/issues/1748)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)

####  Enhancements

- fix(metadata): disable merging of moods and tags during metadata updates ([#&#8203;1743](https://github.com/booklore-app/booklore/issues/1743)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- fix(epub): improve date parsing to support year-only formats and add tests ([#&#8203;1735](https://github.com/booklore-app/booklore/issues/1735)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(opds): Sort OPDS Feed by addedOn Desc  ([#&#8203;1691](https://github.com/booklore-app/booklore/issues/1691)) by [@&#8203;WorldTeacher](https://github.com/WorldTeacher)
- refactor(metadata): consider locked, but empty or null metadata valid ([#&#8203;1729](https://github.com/booklore-app/booklore/issues/1729)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 🎨 UI Tweaks

- Visually indicate the active menu item in the left sidebar ([#&#8203;1738](https://github.com/booklore-app/booklore/issues/1738)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Align the layout to be consistent throughout all dialogs ([#&#8203;1737](https://github.com/booklore-app/booklore/issues/1737)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)

#### 🐛 Bug Fixes

- fix(amazon): improve localization of Amazon Parser ([#&#8203;1706](https://github.com/booklore-app/booklore/issues/1706)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add filter mode to querystring ([#&#8203;1728](https://github.com/booklore-app/booklore/issues/1728)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Fix race conditions between Bookdrop and Monitoring Service when importing multiple files ([#&#8203;1709](https://github.com/booklore-app/booklore/issues/1709)) by [@&#8203;piffio](https://github.com/piffio)
- Re-add "description" to epub metadata extraction ([#&#8203;1727](https://github.com/booklore-app/booklore/issues/1727)) by [@&#8203;beedaddy](https://github.com/beedaddy)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.13.2`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.13.2`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.13.1...v1.13.2>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIiwiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2291
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-07 18:04:28 +00:00
2cf3152190 Update Helm release app-template to v4.5.0 (#2270)
All checks were successful
render-manifests-push / render-manifests-push (push) Has been skipped
lint-test-helm / lint-helm (push) Successful in 16s
renovate / renovate (push) Successful in 1m5s
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>
2025-12-05 21:07:08 +00:00
a6f46bb1a7 Update ghcr.io/booklore-app/booklore Docker tag to v1.13.1 (#2212)
Some checks failed
render-manifests-push / render-manifests-push (push) Failing after 17s
renovate / renovate (push) Has been cancelled
lint-test-helm / helm-lint (push) Successful in 1m23s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/booklore-app/booklore](https://github.com/booklore-app/booklore) | minor | `v1.12.0` -> `v1.13.1` |

---

### Release Notes

<details>
<summary>booklore-app/booklore (ghcr.io/booklore-app/booklore)</summary>

### [`v1.13.1`](https://github.com/booklore-app/booklore/releases/tag/v1.13.1)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.13.0...v1.13.1)

#### 🌟 What's New in v1.13.1

#### 🐛 Bug Fixes

- Fix: Missing close button from dialogue window ([#&#8203;1717](https://github.com/booklore-app/booklore/issues/1717)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Fix: Date filter doesn't work very well ([#&#8203;1715](https://github.com/booklore-app/booklore/issues/1715)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Fix dev docker environment ([#&#8203;1713](https://github.com/booklore-app/booklore/issues/1713)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.13.1`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.13.1`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.13.0...v1.13.1>

### [`v1.13.0`](https://github.com/booklore-app/booklore/releases/tag/v1.13.0)

[Compare Source](https://github.com/booklore-app/booklore/compare/v1.12.0...v1.13.0)

#### 🌟 What's New in v1.13.0

#### 🚀 New Features

- Feature: Add EPUB conversion support for CBX files to Kobo Sync ([#&#8203;1538](https://github.com/booklore-app/booklore/issues/1538)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- Feat: Improve kobo reading state sync logic for better bidirectional support ([#&#8203;1644](https://github.com/booklore-app/booklore/issues/1644)) by [@&#8203;CounterClops](https://github.com/CounterClops)
- Enable jumping to filters by clicking page count, file size, or match… ([#&#8203;1685](https://github.com/booklore-app/booklore/issues/1685)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Improve computed filter label logic for cleaner and more readable sum… ([#&#8203;1684](https://github.com/booklore-app/booklore/issues/1684)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Expose Magic Shelves through the OPDS feed so clients can access them ([#&#8203;1683](https://github.com/booklore-app/booklore/issues/1683)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Add single select filter mode ([#&#8203;1671](https://github.com/booklore-app/booklore/issues/1671)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Enable navigation by library, year, language, file type, and read sta… ([#&#8203;1672](https://github.com/booklore-app/booklore/issues/1672)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)

####  Enhancements

- Maintain book selections when switching between table and grid views ([#&#8203;1651](https://github.com/booklore-app/booklore/issues/1651)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Feature: Keep track of applied filters in URL query string ([#&#8203;1654](https://github.com/booklore-app/booklore/issues/1654)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- fix(bookdrop): Ensure source file is only deleted after successful import and cleanup target on failure ([#&#8203;1638](https://github.com/booklore-app/booklore/issues/1638)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add option to force hyphenation in KEPUB ([#&#8203;1656](https://github.com/booklore-app/booklore/issues/1656)) by [@&#8203;beedaddy](https://github.com/beedaddy)

#### 🐛 Bug Fixes

- fix(pdf): handle out-of-memory errors gracefully during cover generation and limit image size to prevent OOM ([#&#8203;1680](https://github.com/booklore-app/booklore/issues/1680)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add actual language to Kobo metadata ([#&#8203;1682](https://github.com/booklore-app/booklore/issues/1682)) by [@&#8203;beedaddy](https://github.com/beedaddy)
- Fix: Prevent sorting prefs select options from overflowing container ([#&#8203;1673](https://github.com/booklore-app/booklore/issues/1673)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- Fix issue with “unset” read status handling ([#&#8203;1669](https://github.com/booklore-app/booklore/issues/1669)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- Fix unique file constraint to allow identical filenames in different sub-paths ([#&#8203;1668](https://github.com/booklore-app/booklore/issues/1668)) by [@&#8203;adityachandelgit](https://github.com/adityachandelgit)
- fix(upload): implemented byte-aware path truncation to prevent filesystem errors on long metadata ([#&#8203;1655](https://github.com/booklore-app/booklore/issues/1655)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- Add author + series sort option to view settings ([#&#8203;1652](https://github.com/booklore-app/booklore/issues/1652)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)

#### 🛠️ Refactoring & Maintenance

- refactor(exception): modernize exception handling and method signatures across services and controllers ([#&#8203;1670](https://github.com/booklore-app/booklore/issues/1670)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- refactor(api): Add BufferedImage resource cleanup to prevent native memory leaks ([#&#8203;1688](https://github.com/booklore-app/booklore/issues/1688)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- More single select filters ([#&#8203;1678](https://github.com/booklore-app/booklore/issues/1678)) by [@&#8203;Muppetteer](https://github.com/Muppetteer)
- feat(test-utils): Add comprehensive test coverage for FileService and MetadataChangeDetector ([#&#8203;1658](https://github.com/booklore-app/booklore/issues/1658)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)
- feat(api): add [@&#8203;Builder](https://github.com/Builder).Default to entity fields for safer builder initialization and update mappers to ignore unmapped targets; add tests for builder defaults ([#&#8203;1634](https://github.com/booklore-app/booklore/issues/1634)) by [@&#8203;balazs-szucs](https://github.com/balazs-szucs)

#### 📖 Documentation

- ci: Add OCI Image Specification Labels to Dockerfile ([#&#8203;1636](https://github.com/booklore-app/booklore/issues/1636)) by [@&#8203;trevorswanson](https://github.com/trevorswanson)

##### 🐳 Docker Images

- **Docker Hub:** `booklore/booklore:v1.13.0`
- **GitHub Container Registry:** `ghcr.io/booklore-app/booklore:v1.13.0`

**Full Changelog**: <https://github.com/booklore-app/booklore/compare/v1.12.0...v1.13.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2212
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 23:04:38 +00:00
3e90af0eb5 migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests-helm (push) Successful in 1m18s
renovate / renovate (push) Successful in 1m19s
2025-12-01 19:47:11 -06:00
4a30f53bd2 remove charts to prep for migration
Some checks failed
lint-test-helm / helm-lint (push) Successful in 28s
renovate / renovate (push) Has been cancelled
2025-12-01 15:05:25 -06:00
6e613e1e65 add chart lock
Some checks failed
lint-test-helm / helm-lint (push) Successful in 7s
render-manifests / render-manifests-helm (push) Failing after 36s
renovate / renovate (push) Successful in 1m13s
2025-11-30 21:14:57 -06:00
e102d910bc add render manifest workflow
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests-helm (push) Failing after 30s
renovate / renovate (push) Successful in 2m6s
2025-11-29 21:41:00 -06:00