Skip to content

This should reflect the body of work that WT has done on his fork#41

Open
imajes wants to merge 153 commits intomainfrom
main-for-rebase
Open

This should reflect the body of work that WT has done on his fork#41
imajes wants to merge 153 commits intomainfrom
main-for-rebase

Conversation

@imajes
Copy link
Member

@imajes imajes commented Mar 18, 2026

No description provided.

WorldTeacher and others added 30 commits March 17, 2026 15:20
Update .gitlab-ci.yml file

Update .gitlab-ci.yml file

Update .gitlab-ci.yml file

Edit .gitlab-ci.yml

Edit .gitlab-ci.yml

Edit .gitlab-ci.yml

Update .gitlab-ci.yml file

Update .gitlab-ci.yml file

Update .gitlab-ci.yml file

Edit .gitlab-ci.yml

Update .gitlab-ci.yml file

Edit .gitlab-ci.yml

Edit .gitlab-ci.yml

Edit .gitlab-ci.yml
# [1.18.0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/compare/v1.17.0...1.18.0) (2026-02-12)

### Bug Fixes

* **additional-file-uploader:** add file size validation with UI feedback ([#2516](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2516)) ([238f1b2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/238f1b28d8c5fe78196700a7110a51f8a044ea54))
* **amazon-parser:** handle Amazon error responses and improve error logging ([#2294](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2294)) ([4adf728](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/4adf728aaac314ca4d85db3520703abf0fd75cab))
* **api:** Select correct Hardcover.app ISBN from lookup results ([#2530](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2530)) ([f1312c8](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/f1312c8d5f125826d7e009c08baacfc915f0b8f9))
* **audiobook-reader:** use preload=none for immediate streaming playback ([#2518](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2518)) ([36a54c2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/36a54c2e06851ae956344029205ceb9a45b8012e))
* **audiobook-reader:** use preload=none with explicit load() for faster streaming ([#2520](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2520)) ([7933183](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/793318394578c14f57c111f09b4f57e483457213))
* **auth:** resolve DST-related login failure for refresh tokens ([#2624](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2624)) ([714b16e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/714b16e0ad2ce4962cba43474ef68e449cb3bbf3))
* **book-browser:** correct mobile grid card size calculation and reduce gap ([a194769](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/a1947692b1c825a531c068f3a7e2c6985e52305b))
* **book-browser:** resolve footer menu not hiding after navigation back ([#2626](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2626)) ([af7d72b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/af7d72b44780a5537a2864b937862cd84837c811))
* **book-rule-evaluator:** fix file type handling and add mapping for specific formats to fix magic shelve based on filetype ([#2480](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2480)) ([60b58ee](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/60b58eeeee7813478a537502f5beca8521d157c2))
* **cbx-reader:** prevent touch drag on mobile and fix header title overflow ([#2441](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2441)) ([e9c8c25](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e9c8c25793b8aa4a065307c4f50906e93c06a920))
* **chart-ui:** resolve glitches in chart rendering ([#2290](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2290)) ([6aa042f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/6aa042f63a6531ebb084fb81484c5d2cb077840b))
* **comicvine:** add fallback to issue detail endpoint for missing creator credits ([#2694](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2694)) ([22864a2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/22864a28c65bb430411e2e17717e89aaff7404ea))
* **comicvine:** fix metadata search failing for titles containing '#<number>' ([#2273](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2273)) ([bf32b9f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/bf32b9f8755dafc2d53dc589d6485c4312d055b5))
* **db:** remove unused CBX/PDF cache cleanup cron entries ([#2402](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2402)) ([e77aebe](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e77aebe0748696eac1403551543157eaa68ecad8))
* **docker:** add build and gradle directories to volumes in docker-compose ([#2459](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2459)) ([3548d86](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/3548d86e8d3de47c6d17ac3b3585ec1c7242c5cf))
* **epub-cover-extract:** improve cover image extraction with fallback handling ([#2585](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2585)) ([422b91f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/422b91f70c0c68642e042351dfbf2f0527b0cafa))
* **epub-metadata:** enhance cover extraction with heuristic fallbacks for manifest and ZIP entries ([#2636](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2636)) ([e813f1e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e813f1ec664e8a9618f6bffff2a8a5a383b772f9))
* **epub:** add cover extraction fallback using meta cover attribute ([#2310](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2310)) ([e6f55a2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e6f55a2ea51732e965b2bd4b6f5fd8b056570c6f))
* **epub:** normalize text nodes in EPUB metadata content.opf ([#2222](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2222)) ([9ee4099](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/9ee4099dc4cf1aa90a0950060f6db3de6c05814d))
* **epub:** strip formatting from ISBN values to ensure correct extraction ([#2248](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2248)) ([8cf7173](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/8cf71735e14beb0324fa83e6257a5666d572337a))
* **file naming:** follow documentation... ([#2642](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2642)) ([58c105c](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/58c105c0dde07b1dd1372ea08895729888e82a29))
* **file-move:** implement transaction management for file moves and rollback on failure ([#2588](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2588)) ([1aa6f44](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1aa6f44a753a3d5ca91cb9926c52e70ee5b581b6))
* **file-move:** implement transaction management for file moves and rollback on failure ([#2592](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2592)) ([a118453](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/a1184530befb9eb41892b0f0be98fd01102046b5))
* **file-move:** update empty directory cleanup to handle multiple library paths ([#2634](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2634)) ([f2400ee](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/f2400ee04cbcdd07802f85a3658c6aa8143f3160))
* **hardcover-sync:** Don't send repeated read status to Hardcover.app ([#2609](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2609)) ([7f9e2a5](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7f9e2a570d6780e2b3cf9a13f15425dd6e09d99c))
* **i18n:** align translation keys in metadata viewer, searcher, sidecar, and tabs components (EN/ES) ([4e59127](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/4e591270f7f3037409c197ee29ba838a128456d4))
* **i18n:** dynamic sidebar translations and UI font normalization ([#2683](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2683)) ([2ad18c2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/2ad18c2cac6fab91834eb9b77e74f0a4dc8d504b))
* **library-processing:** re-fetch library entity after clearing entity manager during rescan ([#2507](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2507)) ([ea1b846](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ea1b8467bfd4554283ff21d7c6b50c7250c60b9d))
* **library-service:** prevent concurrent library scans with a tracking set ([#2637](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2637)) ([cc29952](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/cc299525a48322dc6333783259aeeb6448ebfd25))
* **metadata-match:** include cover image in match score calculation and correct weight aggregation ([#2513](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2513)) ([57a6209](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/57a6209501ccfdb1cfb058486bc1b6994fd86a66))
* **metadata-parsers:** improve ISBN search logic and fallback strategies for metadata fetching ([#2502](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2502)) ([d68cfd8](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d68cfd8e42b93b24f9e3846b1bb05e00983e8021))
* **metadata-picker:** handle null and empty values in fetched metadata processing ([#2269](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2269)) ([3e4703c](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/3e4703c0824c4b92bbd22603ca7a916c26eef46b))
* **metadata-refresh:** correct provider priority order and enhance REPLACE_ALL handling ([#2503](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2503)) ([fed47f3](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/fed47f325f0e8ff709042f8cbb28f2be7edfa95f))
* **metadata-refresh:** filter book shelves by authenticated user ([#2481](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2481)) ([bc5fa1b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/bc5fa1ba96c3f41b3efda0e2e2bca4b369a25d00))
* **metadata-update:** ensure per-book transaction isolation in bulk updates to prevent race conditions ([#2536](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2536)) ([4f2103e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/4f2103e66d6b0dcb26dc914acc446105aebdc8b5))
* **metadata-viewer:** update file type handling to filter comic book formats as CBX ([#2338](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2338)) ([68b9396](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/68b93961944514d5c0681bee9ec88646e47d1d21))
* **metadata:** ensure authors/genres are replaced, not merged, during metadata update by defaulting mergeCategories to [secure] ([#2304](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2304)) ([4010ecc](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/4010ecc753255a6146aa6c575181511f9301f89f))
* **metadata:** improve cover errors, reduce metadata fetch count, and hide attach option ([#2690](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2690)) ([041221b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/041221b3b041a9abc56b4a0d7b7d9a9f270e8366))
* **metadata:** missing lubimyczytac fields and fetch retry ([#2179](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2179)) ([52fa28f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/52fa28f8ea1fdaa80c2409f04573c7b2e8998a95))
* **migration:** add idempotent guards to V114-V117 migrations ([817b016](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/817b01661bec6123fd6d65d3d7e3411d500888e6))
* **migration:** move comic metadata triggers to separate migration ([7d7b185](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7d7b185763b6a44e426141a2bd2cdc741f7daa2d))
* **opds:** fix regression with browsing shelves ([#2423](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2423)) ([326c735](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/326c7353c241c81a0534f373ca972149eaff59ac)), closes [#2147](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2147)
* **os_x-conversion:** ignore __MACOSX directory for conversions ([#2479](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2479)) ([d907b93](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d907b931c79b93fb2010a8213e860621e34103d0))
* **parsers:** increase request interval to prevent rate limiting issues ([#2282](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2282)) ([00e7436](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/00e74367324c0ddecbb4fa70eec684b3ee00a740))
* **PathPatternResolver:** remove leading slash from resolved pattern if first component is empty ([#2339](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2339)) ([0e7a758](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/0e7a7584f0f4215889c2ba4f4efd01275e952bd2))
* **reader:** add overflow menu to ebook reader mobile header ([ea02923](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ea02923b023d52759f5c2b55e8e21f7aa1a18b72))
* **reader:** disable tap-to-turn-page on mobile devices ([4859505](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/48595054c3e02b53f58e04cbb503c2b15a4e8a84))
* **reader:** enable text copy in ebook reader ([#2700](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2700)) ([#2702](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2702)) ([44391c5](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/44391c575de17b76f96bb40830b0261fef2615fb))
* **reading sessions:** Split sessions, re-calculate times in book overview ([#2393](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2393)) ([9263bf2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/9263bf26ea1039da78342657b5935d33a18339b5))
* Reading stats UI ([#2322](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2322)) ([cf4bfdf](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/cf4bfdf48ac0d5a8074ebcb422581b9c7492b4a4))
* **reading-stats,ui:** update heatmap to use local time formatting, fix tooltip css in reading-stats page ([#2587](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2587)) ([e1f08ff](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e1f08fff5ba273974c851dfb0a49e2b240b94864))
* Refactor HardcoverSyncService to improve edition and page count ([#2389](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2389)) ([07ab523](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/07ab523dd45e60189537982c9ff640699037d0a6))
* **scan-library:** prevent NPE during rescan for books with missing file associations ([#2429](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2429)) ([871f0e5](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/871f0e5da35dfde06d213e4182afa16da3328662))
* **series-page:** add missing overlay preference service to book card component ([#2466](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2466)) ([ba06320](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ba06320d16e451456ab99314b4a0d9dabaebf99d))
* **settings:** use boxed Integer for ScrollerConfig.maxItems to allow null ([#2684](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2684)) ([9cd3c66](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/9cd3c664521996ab7cc76fc5145e54023bfcb95d))
* split reading sessions based on the date ([#2316](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2316)) ([4534df7](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/4534df74396e58121b11ceebd8c7680a7b6248d4))
* **stats:** fix inconsistent stat card styling and add median/session stats to completion race ([1844e11](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1844e117f6dd6c95326878972955a7b9d64339a5))
* **stats:** show tooltip for single bubble and allow overflow in author universe chart ([#2443](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2443)) ([b4fc57b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/b4fc57b7117e51b2e262dda60f20521d3a794267))
* top bar layout issues ([32ba081](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/32ba081be438bbcda29aba31d80c62177d9ca96a))
* **ui:** clean cached properties ([#2499](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2499)) ([7737ef8](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7737ef865c886fcc13f508a59baadd86a3e6ff89)), closes [#2472](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2472)
* **ui:** correctly format lubimyczytac external rating link ([#2491](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2491)) ([cffc9f2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/cffc9f2d990aacb4cecc3e97626439a60e2ea2bb))
* **ui:** rename bg.png to topbar.png and fix asset path ([1ecbbf0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1ecbbf06b6c2d6458a55e05f98a02c8dc5deaa0d))
* **ui:** use local asset for page background ([#2445](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2445)) ([fb026f3](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/fb026f3821055ecd27a0fc087a91a4717a6c7361))

### Features

* **api, build:** Upgrade to Java 25, Gradle 9, and Spring Boot 4, Jackson 3 ([#2597](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2597)) ([e4b2e20](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e4b2e2045c198fc2ba21600a784050d5e938fcbf))
* **archive:** add ArchiveType via Magic Numbers detection and integrate into book processing ([#2220](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2220)) ([1df71cf](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1df71cf490bb42082839152037ead36b1608ceee))
* **book-browser:** add responsive grid columns for mobile view ([#2446](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2446)) ([b6b280a](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/b6b280af41956a496138fe126f4d481e6f1f6cfc))
* **book-browser:** preserve scroll position when navigating back from book details ([#2449](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2449)) ([55a7ec0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/55a7ec0c54bbc7721f34d385b9d4a85348dc4492))
* **book-uploader:** Improved UX of drag&drop when adding books. ([#2410](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2410)) ([85ceec4](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/85ceec43688f4b33c8d3a1f1df6c45414dcac0ee))
* **cbx-reader:** add fullscreen, slideshow, RTL, long strip mode and keyboard shortcuts ([#2632](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2632)) ([2d99dae](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/2d99dae71a1f6c314d9f9d58bebab969ba9745aa))
* **cbx-reader:** enhance ZIP archive handling with Unicode support and fallback mechanisms ([#2593](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2593)) ([c8efac8](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/c8efac8f397f56eebc4a20462196b3b010e0de54))
* comic metadata picker, lazy-load providers, and UI improvements ([#2679](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2679)) ([b0f498f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/b0f498f1e12011103d6a23b62055b03fe1b7074c))
* **comic-metadata:** add extended comic metadata support ([#2654](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2654)) ([2428dc9](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/2428dc9a1f673f60221800f179c0a45f8f247107))
* **comicVine:** improve comic metadata structure with additional credits and fields ([#2358](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2358)) ([d95dd00](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d95dd00019ba6d3f0c00a986fe16380ccdefb09f))
* **content-restrictions:** add age rating and content rating support ([#2619](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2619)) ([89799ca](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/89799cae3631a498ce73963646df777d6ed6c3a8))
* **custom-covers:** add functionality to generate custom covers for selected books ([#2355](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2355)) ([0f229ba](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/0f229ba05c79ccebc6585e0149d92229f62607c7))
* **dashboard-settings:** update sort field options for Surname, and Personal Rating ([#2456](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2456)) ([de862ed](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/de862ed8cb566f7de6316092f11a0f96e7da34bd))
* **deps:** add JPEG2000 support in PDFBox with Jai ImageIO dependencies ([#2250](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2250)) ([1d0887f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1d0887f5c88b75cbbb107678cd41c75f4c104ac7))
* **directory-picker:** add selection actions for folders, add buttons for select all, deselect all, and select current folder ([#2293](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2293)) ([eee2ae5](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/eee2ae5805623aaa6ad6af8da9ad2aae0512d85e))
* **email:** add format selection to email book dialog ([#2650](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2650)) ([c1e853a](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/c1e853a3f7516f46e3a35a57b78126269b71b632))
* **filter:** add audiobook narrator filter and sort option ([106d87c](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/106d87c4e76326a40e988cd90e959c146d4431b8))
* **filters:** add customizable visible filters setting ([#2625](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2625)) ([7c334ca](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7c334ca0fb22123283dd01e5858949fc5d047cb2))
* **filters:** implement cascading sidebar filters ([#2616](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2616)) ([00c0abb](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/00c0abbbed00d7e36a6d3cb05578aad137d497fd))
* **google-books:** add optional API key configuration ([#2629](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2629)) ([ed0918f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ed0918f1e3bdb57fd9319e14fe8d22eb7dde91e9))
* **google-parser:** improve Google Books API integration with improved metadata handling and series extraction ([#2375](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2375)) ([220a60f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/220a60f57afae67b1c56f50a2d99dbc74081afaf))
* **hardcover:** implement book details response and search service enhancements ([#2303](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2303)) ([d572815](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d572815ac3b120ed9944ddf81f47490872e01eb1))
* **i18n:** add Transloco translation framework with EN/ES and 7 language scaffolds ([#2681](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2681)) ([d305596](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d305596c537a652869bc870147d6672298653793))
* **i18n:** translate dashboard scroller titles dynamically (EN/ES) ([f12605f](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/f12605f85c41adc531bb0c6370ad35d7015174da))
* **icons:** Made icons for libraries and shelves optional with no default icons. ([#2599](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2599)) ([3fe5c58](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/3fe5c589eb8aa085102f002f244651af7f322918))
* **kobo-sync:** add user scoped 2 way kobo sync ([#2452](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2452)) ([94740c3](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/94740c30acc376fb8dcf9c847e2f2c880b41ded2))
* **kobo-sync:** Sync Shelves and Magic Shelves to Kobo Tags ([#2236](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2236)) ([5d11ed0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/5d11ed03b3f5ed98fa70d5d6f84471db62c773da))
* **library:** add validation for library path accessibility during rescan ([#2347](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2347)) ([32c7f0b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/32c7f0bac76a2fc87d4ad8859917efcbec4de8ac))
* **metadata:** add 'Replace When Provided' option to metadata replacement modes ([#2379](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2379)) ([b21be7e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/b21be7e2421e724205c9dcb8abf1ae47ef7aa931))
* **metadata:** add auto-save metadata feature in editor settings ([#2274](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2274)) ([dbe0db6](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/dbe0db6d2fe1f8b6bec0638b94e35f5ae2a91c6d))
* **metadata:** add configurable enabled fields for metadata editor and picker + UI tweaks ([#2299](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2299)) ([1150df0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1150df0bccb584adc38a729bda79999dddc323a6))
* **metadata:** add custom metadata write to file support for moods, tags, ratings, and external IDs in PDF, and CBZ ([#2552](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2552)) ([cbc80c9](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/cbc80c93ef26da371d46ebea9f034953fdc6f723)), closes [TaskCreateRequest#getOptions](https://gitlab.theprivateserver.de/TaskCreateRequest/issues/getOptions)
* **metadata:** add replace mode option for metadata fetching ([#2356](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2356)) ([96aec44](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/96aec441441f9de4e0454bf94ef447f6e45faa76))
* **metadata:** return full metadata from fetchMetadata instead of previews ([#2689](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2689)) ([43bbd02](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/43bbd02f839c317e854c74018264713582a3a8a7))
* **metadata:** simplify series name extraction by removing volume suffix ([#2385](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2385)) ([d0a8ef8](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/d0a8ef866192f484e1ad406a16399a8b88287a7f))
* **mobile-api:** add updatedAt to progress DTOs for conflict detection ([ecb7ea7](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ecb7ea7698c18dbc4ee8811be488f80f0333b547))
* **OpdsFeedService:** detect ZIP mime type for FB2 files when zipped ([#2242](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2242)) ([1e903e4](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/1e903e450783520629e8645b26e2c86ccfe10146))
* **pwa:** add offline handling and fallback support ([#2444](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2444)) ([aa2bec0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/aa2bec0e939c3f9a75798a5f252de45c48820ed3))
* **pwa:** Enable fullscreen mode for Android immersive reading ([#2649](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2649)) ([7911992](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/791199202c6f3d8a631703f981cb80c764fd456c)), closes [#2648](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2648)
* **reader:** add dark/light mode toggle and improved close button to PDF reader ([#2699](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2699)) ([5f8ba5d](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/5f8ba5d79b8363834af54fd864dbd42cfb2a62bc))
* **reader:** add fullscreen, keyboard shortcuts help, search cancel, and go-to-percentage to ebook reader ([#2698](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2698)) ([68e0ce6](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/68e0ce62720c0b5c9a3e9f5a00831c29eae415ef))
* **reader:** add PDF annotations, Range streaming, and optimized chunk loading ([#2701](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2701)) ([a918aa0](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/a918aa0a7db9dfa939212bf5289457d58f9c4bab))
* **reader:** improve cbx reader mobile header and slideshow indicator ([c11b4ce](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/c11b4ce1887e6bfe381be2bf6d59a84076e27d37))
* **shelf:** add shelf filtering options and integrate into book processing ([#2268](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2268)) ([5534d4e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/5534d4e7c519beb96c79e77564871c2775691fb6))
* **sidecar:** add sidecar JSON metadata file support ([#2657](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2657)) ([7ec6419](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7ec6419de21cc319ad632d63a7b65733656ee506))
* **sort:** Add sort by author surname and first name ([#2292](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2292)) ([9f98503](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/9f98503be34cbde43d347cc0d7c46a0678d5926d))
* **sorting:** add multi-field sorting support ([#2628](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2628)) ([03a06cf](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/03a06cfe184b7b024a57b5c16ce97aaebc2b4110))
* **sort:** replace compound sort options with atomic fields and multi-sort support ([#2686](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2686)) ([e32704e](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/e32704e89152ae927ced993eddb9ff683c8bacf1))
* **stats:** add 5 new user statistics charts ([#2703](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2703)) ([ee23cac](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/ee23cac255642eef6891d9c14af77bb567d691c4))
* **themes:** add AMOLED theme with distinct light and dark color schemes ([#2457](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2457)) ([84da4db](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/84da4db0534a3b674a3630e4d2009f0bf989d852))
* **ui:** add password confirmations ([#2291](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2291)) ([6066ffb](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/6066ffb2c1c58780d02745834f8d3df9371352d0))
* **ui:** provide hyperlinks for books as book cards in grid view ([#2500](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2500)) ([b9e5695](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/b9e5695e8d06e20ba3bad4443de7200a906140c2))
* **upload:** add upload progress tracking with progress bar and stats ([#2640](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2640)) ([7df8b0b](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/7df8b0bc68f33743a8cbfb184e79e34782f0ac1c))
* **user-stats:** add monthly heatmap endpoint ([5fbe7a2](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/5fbe7a2a802bf7c8740c7ffe6ce83ba0e9c4829a))

### Performance Improvements

* lazy-load accordion content in library metadata settings ([#2442](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2442)) ([9f1ac85](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/9f1ac85dc68bcf8718ec773acf49834dd447c4bc))
* **regex:** introduce regex patterns for improved string handling in various services ([#2386](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/issues/2386)) ([71d118a](https://gitlab.theprivateserver.de/WorldTeacher/wt-booklore/commit/71d118acb957dc1d6fe9a44880c1e0ee8e5ddcec))
WorldTeacher and others added 29 commits March 17, 2026 22:39
 Previously the sidebar filter was capped at MAX_FILTER_ITEMS=100 per
panel. Large libraries with many authors/genres would silently truncate
the list with no way to find hidden entries.

Changes:
- Removed MAX_FILTER_ITEMS cap — all entries are now shown (virtual
  scroll already handles rendering performance for large lists)
- Added per-panel search bar for high-cardinality text filter types:
  author, category (genre), tag, mood, series, publisher, narrator,
  language, comic roles/characters/teams/locations
- Search is client-side (no API call) — filters against the already-
  computed filter list derived from in-memory bookState$
- Search input uses stopPropagation so typing doesn't toggle the panel
- Clear (x) button appears when search term is present
- 'No matching results' message shown when search yields zero items
- Virtual scroll viewport height recalculates from filtered item count
- Updated footer note and added searchPlaceholder/noResults i18n keys
Added a notice about ongoing development status.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants