chore(deps): update grimmory to v3 (major) #6150

Open
renovate-bot wants to merge 1 commits from renovate/major-unified-grimmory into main
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/grimmory-tools/grimmory major v2.3.0v3.0.0
grimmory-tools/grimmory major 2.3.03.0.0

Release Notes

grimmory-tools/grimmory (ghcr.io/grimmory-tools/grimmory)

v3.0.0

Compare Source

Features
  • add discord automated release notifications (#​564) (e65536d)
  • add reading progress endpoints to mobile api (#​377) (4bca3f6)
  • add Unraid community app template (#​62) (b2b01cf)
  • api-docs: reintroduce API doc generation (#​289) (5ac7b55)
  • api: allow disable of kobo store proxy (#​337) (91c1973)
  • api: use redirect for kobo sync book images (#​198) (c4107a9)
  • brand: update app to use the Grimmory brand identity (#​550) (5a6b702)
  • build: nvmrc file to automatic switch to Node.js 24 (#​130) (8fcb147)
  • cbx-viewer: add (back) infinite and long-strip modes, fixed. (#​390) (1db1b84)
  • community: move issue intake to GitHub Discussions (#​565) (11cb206)
  • devex: add a unified just command surface (69d50d4)
  • filters: add age rating and content rating filters, improve filter options (#​479) (502f573)
  • issues: add typed Grimmory issue templates (511f84c)
  • lint: Additional CI workflow to enforce a threshold of the amount of frontend lint issues (#​163) (79aa2e0)
  • pdf: integrate PDFium4j for PDF processing and metadata extraction (#​281) (64083fe)
  • pdf: move ebook reader to embedpdf, add bookmarks, remove old pdf.js stuff (#​393) (6c8a907)
  • reader: add document mode to the PDF viewer, overhaul PDF viewer, add different modes to CBX viewer (#​306) (61b9b53)
  • ui: allow copying non-release app version from sidebar (#​472) (cefa3ac)
  • web-reader: HTTP Caching & Cache Storage for content responses (#​75) (5495225)
Bug Fixes
  • api: check legacy tools path for binaries (#​146) (5d84097)
  • api: handle kobo proxy errors during kobo sync (#​217) (d7867ba)
  • api: invert kobo book type check for downloads (#​432) (6a9f4cd)
  • api: merge processFile() transactions with calling transactions (#​287) (8bdf36d)
  • api: skip physical books in metadata manager to prevent NPE (#​234) (ebdcd0b)
  • api: stop using dropped streamEntryFromArchive (#​315) (0c87e37), closes #​113
  • api: use ASIN instead of search if available (#​369) (34042be)
  • api: use CBX Extractor in the CBX processor (#​409) (5318e10)
  • api: use correct field lengths for file processors (#​459) (d4bc840)
  • api: Use fixed-layout epub format in Kobo sync when necessary (Booklore PR Port) (#​16) (dc1fa74)
  • archive: infer archive type via Magic Numbers instead of filename (#​79) (3c0b5c0), closes #​1 #​2 #​3 #​6
  • audiobook: improve audiobook streaming and player UI (#​513) (3e98807)
  • auth: add global error handler and PWA update service, and update auth logout to force full page reload (prevent reload-hell) (#​741) (62434c5)
  • auth: ensure case-insensitivity on reading remote auth headers (#​389) (b9a28d6)
  • auth: fix authentication request handling to exclude specific endpoints from authorization checks leading to permission denied errors (#​566) (4d6691e)
  • backend: Fix metadata fields being stripped from API response, causing issues with filtering. (#​250) (c1711dd)
  • book-browser: prevent memory leaks by unsubscribing from observables (#​80) (5f1d34d)
  • book-card: prefer audiobook covers for square mixed-format cards (#​467) (0eb4c8e)
  • bookdrop: clean bookdrop metadata before persisting (#​462) (6a52a1a)
  • books: make "select all" actually select all not just the books loaded in (#​533) (13f282f)
  • cache: improve cache handling by checking availability before operations (#​397) (b2ff955)
  • cbx-reader: add GIF and BMP to supported image extensions (#​230) (74c7ad5)
  • ci: align github actions with yarn 4 frontend tooling (dcd264c)
  • ci: reduce workflow cache churn (3f9d3e0)
  • clean up import in AuthenticationSettingsComponent (49101b7)
  • collapse-series: fix series collapsing (#​541) (e26df36)
  • dashboard: improve performance with OnPush change detection (#​440) (85e8d23)
  • devex: add GitHub sign-in note to rc and nightly Discord posts (#​572) (52ed009)
  • dto: add DailyListeningDto and update session-related DTOs to use LocalDate (#​403) (e2d6c1b)
  • entrypoint: ensure books directory exists and is writable by the target user (#​119) (af9beaf)
  • file-mover: fix file mover never updating (#​651) (d9d7a18)
  • file: allow physical books to be moved between libraries (#​296) (4ce9188)
  • file: deduplicate bookFiles and protect source library root in FileMoveService (#​294) (1625055)
  • file: update file type and size retrieval to use primaryFile structure (#​383) (707f0a8)
  • filter: add missing filters for: Lubimyczytac, RanobeDB, and Audible ratings, comic specific metadata fields (#​647) (4bac913)
  • filter: update filter options to use CountedOption for read statuses and file types (#​448) (4a68fa2)
  • fix text overflow with attach-to-book flow when dealing with long titles (#​265) (1799493)
  • frontend: fixes library health pinging even when the user is not authenticated (#​385) (d502c18)
  • frontend: remove double encoding of series name in URL (#​262) (a92459d)
  • hardcover: add series position decimals and use primary books count (#​87) (8def367)
  • hardcover: hardcover sync duplicates reads and doesn't update progress (#​247) (a261749)
  • hardcover: use hardcover edition based on ISBN for syncing progress (#​173) (85c1749)
  • hibernate: improve transaction management and optimize entity fetching (#​176) (ad3a981)
  • image-dimension: fix image dimension detection loading whole CBX files into memory (#​663) (9236ac9)
  • kobo: add library to entityGraph when fetching books for download (#​646) (11e6a35)
  • kobo: default kobo store proxy to "on" (#​515) (a32cd54)
  • kobo: handle missing book when pulling kobo metadata (#​473) (28dd303)
  • kobo: proxy the /v1/auth/device endpoint (#​511) (ba6eb4f)
  • lazy-loading: improve image loading performance with lazy loading and low priority fetch (#​431) (2c26bd2)
  • loading: update loading checks to use signal() for reactive state management (#​727) (284e7be)
  • logging: change book added event completion log level from info to debug (#​532) (928ccff)
  • metadata: add support for audible fields in metadata refresh options (#​348) (2ecd352)
  • metadata: fix metadata fetching relying for filename "first" instead of better fields like ISBN in Goodreads/Bookdrop (#​85) (4ac1d31), closes #​1 #​2 #​3 #​6
  • metadata: include custom namespace fields in file write checks (#​257) (339a0c7)
  • metadata: preserve lock states and fallback values in metadata refresh (#​258) (3f8a185)
  • metadata: refactor book metadata fetching to use fetch API and signals for state management (#​495) (fcee609)
  • metadata: support multiple roles for the same creator in EPUB metadata extraction (#​561) (c06dc95)
  • metadata: update book retrieval methods to fix lazy init exception when removing some authors/retrieving metadata from file (#​560) (9c3ecc5)
  • mobile: enable pan mode and disable swipe-to-navigate and tap-to-turn-page zones on mobile devices (#​742) (fb555d9)
  • packaging: include frontend in the docker build context (00f116a)
  • packaging: keep the frontend compatibility symlink in docker context (237c54b)
  • pdf-reader: localize embedpdf viewer to active app language (#​466) (da7fa4b)
  • pdf-viewer: convert component properties to signals for improved reactivity (#​475) (846a4b2)
  • pdf-writer: use same-dir temp files and harden cleanup (#​719) (9601667)
  • pdf: improve PDF blob handling and improve viewer destruction logic (#​506) (68d0b26)
  • reader: add fetchFreshBookDetail method to ensure up-to-date reading position across devices (#​358) (4527d43)
  • reader: implement signal-based state management and cleanup in EbookReaderComponent (#​435) (a779de8)
  • reader: optimize memory management for canvas and image handling in infinite scrolling (#​433) (376ac6f)
  • reader: resolve epub preview runtime and audiobook download failures (#​463) (c95b5fa)
  • readers: add chapter caching and improve page rendering (#​514) (649c485)
  • release: always publish nightly images on manual runs (#​571) (c6d567e)
  • search: replace dropdown with popover for search results and improve visibility handling (#​355) (a176be3)
  • security: add access control annotations to various controllers (#​312) (145b94d)
  • security: enforce validation on request bodies and tighten JWT issuer checks (7d7a5d9)
  • service: add transactional support to author delete and update methods (#​653) (fd00da3)
  • streaming: rewrite file streaming with NIO and HTTP caching (#​512) (5bd2e9a)
  • table-view: table-view to also actually select all when users select press all (#​645) (791a4ea)
  • transloco-loader: update deepMerge function type definitions (#​167) (6ff7275)
  • ui: add missing OIDC group permissions (#​487) (39de8e3)
  • ui: enable all OIDC permissions when admin is granted (#​517) (27db18a)
  • ui: Fix book scroll judder (#​309) (351074f)
  • ui: Fixed the Angular Linter (#​138) (0e61057)
  • ui: handle RFC5987 content-disposition headers (#​730) (8047f87)
  • ui: improve audible metadata provider detection (#​456) (a63328b)
  • ui: parse magic shelf date values as local midnight (#​489) (41e1132)
  • ui: properly scale placeholder artwork text with smaller sizes (#​531) (6f2b86a)
  • ui: restore frontend verification after eslint cleanup (43389c8)
  • ui: settings forms not reflecting saved values reliably (#​648) (78be516)
  • ui: use RFC3330 format for date picker (#​491) (6541d41)
  • ui: use signals for duplicate merger (#​732) (a03ae72)
  • upload: add ChangeDetectorRef calls to ensure UI updates during file upload process (#​557) (bf4fab3)
  • user-settings: fix settings loading errors (#​527) (902f5f5)
  • webmvc: avoid index fallback exception for missing public routes (#​298) (a3add5d)
  • websocket: add heartbeat scheduling and transport limits (#​313) (bfeeef2)
Performance
  • ui: captures some low hanging fruit around excessive re-renders in the app (#​158) (8778827)
  • ui: decouple book browser rendering pipeline (#​341) (be0b717)
Refactors
  • api: move detect deleted/new books to LibraryFileHelper (#​555) (11caa91)
  • api: optimize caching mechanisms and improve book filtering (#​372) (3e5a6a9)
  • api: switch to Spring logging filter (#​195) (5f06ab9)
  • api: use NightCompress library for reading CBX (#​113) (1e0b4d0)
  • api: use Path for FileUtils.getBookFullPath (#​209) (97411fa)
  • api: use spring content disposition helper for BookDownloadService (#​449) (2637960)
  • cbx-reader: convert properties to signals for improved reactivity and performance/add top/bottom swipe detection (#​743) (a9ce7c7)
  • concurrency: improve thread management and locking in monitoring services (#​137) (5bcef92)
  • config: remove redundant Spring Boot config and fix injection patterns (#​314) (390a372)
  • cover: add async cover notifications, for real time updates (#​716) (7a88b12)
  • drop unused standalone comicinfo.xml parser (#​218) (66de45c)
  • ebook-reader: optimize destruction handling and improve reactive subscriptions (#​478) (1f5f99d)
  • email: replace Booklore References In Email with Grimmory (#​434) (a0a7be4)
  • entity: update fetch strategies to LAZY for improved relibility (#​122) (b905e82)
  • epub: migrate from documentnode to grimmory epub4j library and update related code (#​334) (bff20c5)
  • file: improve path handling and validation (#​82) (cbd04ee)
  • frontend: decouple app shell from PrimeNG layout system (#​307) (55a6343)
  • frontend: Migrate state to Tanstack Query + signals (#​117) (ccb80d7)
  • frontend: rename booklore-ui to frontend (874b013)
  • frontend: repoint repo tooling to the frontend path (42d9dcb)
  • geoip: replace ObjectMapper instantiation with JsonMapper for improved configuration (#​139) (aab68d5)
  • icon: fix SVG icons loading straight to memory (#​56) (c9c255b), closes #​80
  • kobo: create endpoints for non-catchall (#​507) (bd7e578)
  • library: implement asynchronous book addition and cover generation with event handling (#​329) (536daa9)
  • migrate library-creator component state to signals and enable component unit tests (#​476) (f292a3e)
  • pdf-viewer: improve worker and blob handling for better loading of wasm PDFium workers (#​333) (74c5bbd)
  • regex: replace string manipulation with Pattern matching for improved readability (#​359) (78099cc)
  • SecurityFilter: Stop filters from being registered on all routes (#​361) (9ddbe35)
  • service: replace manual caching with Cacheable and JPQL with Criteria API (#​316) (02b2087)
  • settings: replace unsubscribe logic with takeUntilDestroyed for better resource management (#​443) (7abac02)
  • threads: replace manual thread management with Spring lifecycle (#​322) (cf79990)
  • ui: replace SVG artwork placeholders with CSS (#​292) (2fd7310)
Chores
  • api: add the base OpenAPI metadata config (#​423) (a32ca37)
  • api: drop unused book download proxy (#​428) (907ad09)
  • api: drop unused code in AmazonBookParser and AudibleParser (#​368) (b05d76d)
  • api: fix typo on openapi doc for healthcheck (#​380) (7e796ec)
  • api: Migrate BookCreatorServiceTests to AssertJ and remove unnessesary tests (#​229) (2474cdd)
  • banner: add ASCII art banner (#​381) (05185ee)
  • build: migrate Gradle build scripts from Groovy to Kotlin DSL (#​100) (ff14647)
  • codeql: Initialize a codeql config so we can sort out the caching properly. (2ad937a)
  • dependencies: bump Spring Boot to 4.0.5 and Hibernate to 7.3.0 Final (#​223) (4e57719)
  • dependencies: update @​embedpdf packages to version 2.12.0 (#​325) (84ff595)
  • deps: bump @​hono/node-server from 1.19.11 to 1.19.13 in /frontend (#​419) (fadc129)
  • deps: bump actions/cache from 4.2.4 to 5.0.4 (40d0076)
  • deps: bump actions/cache from 5.0.4 to 5.0.5 (#​762) (317557c)
  • deps: bump actions/setup-node from 6.3.0 to 6.4.0 (#​758) (6d6003c)
  • deps: bump actions/upload-artifact from 7.0.0 to 7.0.1 (#​763) (a0e2f60)
  • deps: bump conventional-changelog-conventionalcommits (#​351) (19223d7)
  • deps: bump docker/build-push-action from 7.0.0 to 7.1.0 (#​759) (9834381)
  • deps: bump docker/login-action from 4.0.0 to 4.1.0 (#​757) (d2b32ed)
  • deps: bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (3a1cd68)
  • deps: bump dompurify from 3.3.3 to 3.4.0 in /frontend (#​536) (7f47b51)
  • deps: bump github/codeql-action from 4.34.1 to 4.35.1 (#​332) (4be3311)
  • deps: bump github/codeql-action from 4.35.1 to 4.35.2 (#​754) (70b2463)
  • deps: bump handlebars from 4.7.8 to 4.7.9 in /tools/release (#​232) (e5ec9d0)
  • deps: bump hono from 4.12.12 to 4.12.14 in /frontend (#​535) (91989b5)
  • deps: bump hono from 4.12.9 to 4.12.12 in /frontend (#​422) (10c7fac)
  • deps: bump lodash from 4.17.23 to 4.18.1 in /tools/release (#​339) (736ed01)
  • deps: bump lodash-es from 4.17.23 to 4.18.1 in /frontend (#​344) (f7294bf)
  • deps: bump lodash-es from 4.17.23 to 4.18.1 in /tools/release (#​342) (bd58f19)
  • deps: bump taiki-e/install-action from 2.69.10 to 2.71.0 (#​331) (f7600e6)
  • deps: bump taiki-e/install-action from 2.69.7 to 2.69.10 (c0fca03)
  • deps: bump taiki-e/install-action from 2.71.0 to 2.75.19 (#​756) (365d44e)
  • deps: bump the gradle-dependencies group (#​350) (73857a8)
  • deps: bump the gradle-dependencies group across 1 directory with 8 updates (#​224) (052c932)
  • deps: bump the gradle-dependencies group across 1 directory with 9 updates (#​755) (8b0c3f8)
  • docker: bump Gradle version to 9.4.1 in Dockerfiles (#​379) (d254da1)
  • docs: align Discord links with the README (dee8cd9)
  • docs: update Discord invite links (e4fc279)
  • drop booklore-ui symlink (#​753) (9c92f54)
  • expand and generate specs for the frontend code section (#​242) (a3c5da9)
  • frontend-lint: add local typecheck and stylelint commands (cef000d)
  • frontend-lint: tune stylelint for Angular and legacy SCSS patterns (dc2c1ec)
  • frontend: add missing auth service mock (#​226) (4da5f2b)
  • frontend: add temporary booklore-ui compatibility symlink (4ddc567)
  • frontend: fix build warnings + set threshold to zero (#​421) (6ab2ad6)
  • github: update bug report template with build selection (#​529) (f2b3507)
  • lint: set LINT_ERROR_THRESHOLD to zero (#​238) (cb8fa67)
  • nvm: moved .nvmrc file to the repository root (#​237) (169c9ff)
  • packaging: simplify dockerignore to a denylist (a735bf1)
  • rename springboot app folder to backend (#​752) (1a664dd)
  • sdkman: add Java version 25.0.2-tem to .sdkmanrc (#​228) (da88da5)
  • ui: clear eslint angular style guide bucket (68e3df7)
  • ui: clear eslint control flow bucket (ac6b44e)
  • ui: clear eslint empty object type bucket (eba9688)
  • ui: clear eslint empty-function bucket (5dfd1e1)
  • ui: clear eslint expression cleanup bucket (79eef41)
  • ui: clear eslint interaction accessibility bucket (18784fd)
  • ui: clear eslint label-association bucket (b03ecf3)
  • ui: clear eslint mechanical style bucket (ea15719)
  • ui: clear eslint no-unused-vars bucket (0d6f83b)
  • ui: clear eslint optional chain assertion bucket (935b3ed)
  • ui: clear eslint presentation-label bucket (0a407f6)
  • ui: clear final prefer-inject bucket (878cfa0)
  • ui: clear helper service any bucket (f7a5d93)
  • ui: clear reader core any bucket (782bd63)
  • ui: clear reader settings prefer-inject bucket (4f7d38a)
  • ui: clear reader state any bucket (af9a53d)
  • ui: clear reader utility any bucket (e12f4ea)
  • ui: clear settings and stats any bucket (3700e35)
  • ui: clear shared prefer-inject bucket (b3fe4fd)
  • ui: clear test and declaration any bucket (2e66fd3)
  • ui: drop book and author animations (#​270) (09c36df)
  • ui: drop unused favicon pngs (#​675) (64b7a5c)
  • ui: enforce placeholder aspect ratios (#​320) (f376b68)
  • ui: lazily load filter sidebar content (#​283) (2a2dee8)
  • ui: remove remaining series chart template casts (3fdb63f)
  • ui: update PWA icons for new branding (#​679) (d5b497e)
  • unraid: sync unraid template with README (#​417) (e3b22ed)
  • update npm packages and address warnings in build (#​426) (f0e4497)
Documentation
CI
Build
  • frontend: make deps checks work with yarn 4 (d59d5f7)
  • yarn: migrate frontend and release tooling to yarn 4 (4855f36)
Style
  • frontend: apply the first eslint autofix pass (e2a8e6a)
  • frontend: apply the first stylelint autofix pass (34fc600)
  • frontend: enforce alpha-value-notation in scss (6921da7)
  • frontend: enforce at-rule-empty-line-before in scss (43412c0)
  • frontend: enforce color-function-alias-notation in scss (130463b)
  • frontend: enforce color-function-notation in scss (ddcbb5b)
  • frontend: enforce color-hex-length in scss (a991351)
  • frontend: enforce declaration-block-single-line-max-declarations in scss (32765de)
  • frontend: enforce declaration-empty-line-before in scss (a04daac)
  • frontend: enforce declaration-property-value-keyword-no-deprecated (1a65884)
  • frontend: enforce keyframes-name-pattern in scss (7058992)
  • frontend: enforce media-feature-range-notation in scss (e46f87e)
  • frontend: enforce no-empty-source in scss (d95424d)
  • frontend: enforce number-max-precision in scss (a689751)
  • frontend: enforce property-no-deprecated in scss (df12acd)
  • frontend: enforce property-no-vendor-prefix in scss (ee02f6e)
  • frontend: enforce rule-empty-line-before in scss (55f4481)
  • frontend: enforce scss dollar-variable-empty-line-before (e68938f)
  • frontend: enforce scss dollar-variable-pattern in layout styles (2ee5dce)
  • frontend: enforce selector-class-pattern in scss (c0dff27)
  • frontend: enforce shorthand-property-no-redundant-values in scss (7b9830f)
  • frontend: resolve the remaining stylelint findings (dbd1f20)
  • frontend: scope no-invalid-position-declaration for scss mixins (0b34a85)

v2.3.1

Compare Source

Bug Fixes
  • reader: remove foliate allow-scripts and add CSP for EPUB resources (5448205)

Configuration

📅 Schedule: (in timezone America/Chicago)

  • 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/grimmory-tools/grimmory](https://github.com/grimmory-tools/grimmory) | major | `v2.3.0` → `v3.0.0` | | [grimmory-tools/grimmory](https://github.com/grimmory-tools/grimmory) | major | `2.3.0` → `3.0.0` | --- ### Release Notes <details> <summary>grimmory-tools/grimmory (ghcr.io/grimmory-tools/grimmory)</summary> ### [`v3.0.0`](https://github.com/grimmory-tools/grimmory/releases/tag/v3.0.0) [Compare Source](https://github.com/grimmory-tools/grimmory/compare/v2.3.1...v3.0.0) ##### Features - add discord automated release notifications ([#&#8203;564](https://github.com/grimmory-tools/grimmory/issues/564)) ([e65536d](https://github.com/grimmory-tools/grimmory/commit/e65536de1cce68d7dbb53fd7734da825fe0d62f1)) - add reading progress endpoints to mobile api ([#&#8203;377](https://github.com/grimmory-tools/grimmory/issues/377)) ([4bca3f6](https://github.com/grimmory-tools/grimmory/commit/4bca3f6674ca87933850e067723a2c9b0a6b6acf)) - add Unraid community app template ([#&#8203;62](https://github.com/grimmory-tools/grimmory/issues/62)) ([b2b01cf](https://github.com/grimmory-tools/grimmory/commit/b2b01cf5699ba0741c77a9a044811e31da072e2f)) - **api-docs:** reintroduce API doc generation ([#&#8203;289](https://github.com/grimmory-tools/grimmory/issues/289)) ([5ac7b55](https://github.com/grimmory-tools/grimmory/commit/5ac7b5553eead7ab6a1082d8daa174ea32cd17a7)) - **api:** allow disable of kobo store proxy ([#&#8203;337](https://github.com/grimmory-tools/grimmory/issues/337)) ([91c1973](https://github.com/grimmory-tools/grimmory/commit/91c19739dccf942548e92adb51fb4a6ed2a9c205)) - **api:** use redirect for kobo sync book images ([#&#8203;198](https://github.com/grimmory-tools/grimmory/issues/198)) ([c4107a9](https://github.com/grimmory-tools/grimmory/commit/c4107a9ff89f88a9c8578dd1bb0c0f0ce90515b8)) - **brand:** update app to use the Grimmory brand identity ([#&#8203;550](https://github.com/grimmory-tools/grimmory/issues/550)) ([5a6b702](https://github.com/grimmory-tools/grimmory/commit/5a6b70262c9f001a87d3fc1c3b5e8683c072dba4)) - **build:** nvmrc file to automatic switch to Node.js 24 ([#&#8203;130](https://github.com/grimmory-tools/grimmory/issues/130)) ([8fcb147](https://github.com/grimmory-tools/grimmory/commit/8fcb14753e313c4512a38e60dbeef40c1ddf7a27)) - **cbx-viewer:** add (back) infinite and long-strip modes, fixed. ([#&#8203;390](https://github.com/grimmory-tools/grimmory/issues/390)) ([1db1b84](https://github.com/grimmory-tools/grimmory/commit/1db1b8404af0bb60693139c7873931f65b5d3995)) - **community:** move issue intake to GitHub Discussions ([#&#8203;565](https://github.com/grimmory-tools/grimmory/issues/565)) ([11cb206](https://github.com/grimmory-tools/grimmory/commit/11cb2065048591409468bcf173a1875eb7fa6ca2)) - **devex:** add a unified just command surface ([69d50d4](https://github.com/grimmory-tools/grimmory/commit/69d50d4fb5ecee2239db99198620d9d49d2bd4d8)) - **filters:** add age rating and content rating filters, improve filter options ([#&#8203;479](https://github.com/grimmory-tools/grimmory/issues/479)) ([502f573](https://github.com/grimmory-tools/grimmory/commit/502f5738bf593b4bc6c374961d22294a4dceaa77)) - **issues:** add typed Grimmory issue templates ([511f84c](https://github.com/grimmory-tools/grimmory/commit/511f84cc489ffbb53c41e590db4fe995a5033680)) - **lint:** Additional CI workflow to enforce a threshold of the amount of frontend lint issues ([#&#8203;163](https://github.com/grimmory-tools/grimmory/issues/163)) ([79aa2e0](https://github.com/grimmory-tools/grimmory/commit/79aa2e04c967ef4cb144f4fdc1a740647301f195)) - **pdf:** integrate PDFium4j for PDF processing and metadata extraction ([#&#8203;281](https://github.com/grimmory-tools/grimmory/issues/281)) ([64083fe](https://github.com/grimmory-tools/grimmory/commit/64083fe9b71550bac1107190ed9453a6a1e5fea5)) - **pdf:** move ebook reader to embedpdf, add bookmarks, remove old pdf.js stuff ([#&#8203;393](https://github.com/grimmory-tools/grimmory/issues/393)) ([6c8a907](https://github.com/grimmory-tools/grimmory/commit/6c8a9073258faba17618c2ed82d9306ac8b5266a)) - **reader:** add document mode to the PDF viewer, overhaul PDF viewer, add different modes to CBX viewer ([#&#8203;306](https://github.com/grimmory-tools/grimmory/issues/306)) ([61b9b53](https://github.com/grimmory-tools/grimmory/commit/61b9b53a60fbeb12c307440e0926b3ade2745e42)) - **ui:** allow copying non-release app version from sidebar ([#&#8203;472](https://github.com/grimmory-tools/grimmory/issues/472)) ([cefa3ac](https://github.com/grimmory-tools/grimmory/commit/cefa3ac4343a1b461f3e208ccd9691b21effb6cc)) - **web-reader:** HTTP Caching & Cache Storage for content responses ([#&#8203;75](https://github.com/grimmory-tools/grimmory/issues/75)) ([5495225](https://github.com/grimmory-tools/grimmory/commit/5495225ad53bf0cffea1dfbbff625034188ff004)) ##### Bug Fixes - **api:** check legacy tools path for binaries ([#&#8203;146](https://github.com/grimmory-tools/grimmory/issues/146)) ([5d84097](https://github.com/grimmory-tools/grimmory/commit/5d84097f282f0a75dd875ee72318ceb0091d35fc)) - **api:** handle kobo proxy errors during kobo sync ([#&#8203;217](https://github.com/grimmory-tools/grimmory/issues/217)) ([d7867ba](https://github.com/grimmory-tools/grimmory/commit/d7867bafc4f1fae872bdf2b5b25b0d3ce134e949)) - **api:** invert kobo book type check for downloads ([#&#8203;432](https://github.com/grimmory-tools/grimmory/issues/432)) ([6a9f4cd](https://github.com/grimmory-tools/grimmory/commit/6a9f4cd112a2fd6d70867bb37fb0132de5bb53ab)) - **api:** merge processFile() transactions with calling transactions ([#&#8203;287](https://github.com/grimmory-tools/grimmory/issues/287)) ([8bdf36d](https://github.com/grimmory-tools/grimmory/commit/8bdf36d6aa43dcdfaa94bbe3e806f16bb93d5ed5)) - **api:** skip physical books in metadata manager to prevent NPE ([#&#8203;234](https://github.com/grimmory-tools/grimmory/issues/234)) ([ebdcd0b](https://github.com/grimmory-tools/grimmory/commit/ebdcd0bc19a316e56440e44a1ae262abbb9114d0)) - **api:** stop using dropped `streamEntryFromArchive` ([#&#8203;315](https://github.com/grimmory-tools/grimmory/issues/315)) ([0c87e37](https://github.com/grimmory-tools/grimmory/commit/0c87e371e32409c15cce14ba73e4b5cd0414b86c)), closes [#&#8203;113](https://github.com/grimmory-tools/grimmory/issues/113) - **api:** use ASIN instead of search if available ([#&#8203;369](https://github.com/grimmory-tools/grimmory/issues/369)) ([34042be](https://github.com/grimmory-tools/grimmory/commit/34042be1c95f1312a72cdf8bba5bd6b99d1d7888)) - **api:** use CBX Extractor in the CBX processor ([#&#8203;409](https://github.com/grimmory-tools/grimmory/issues/409)) ([5318e10](https://github.com/grimmory-tools/grimmory/commit/5318e1067749babff39739f55f233fac042b6154)) - **api:** use correct field lengths for file processors ([#&#8203;459](https://github.com/grimmory-tools/grimmory/issues/459)) ([d4bc840](https://github.com/grimmory-tools/grimmory/commit/d4bc8407d8abf70d15012bc9e20fab35c4cb5aab)) - **api:** Use fixed-layout epub format in Kobo sync when necessary (Booklore PR Port) ([#&#8203;16](https://github.com/grimmory-tools/grimmory/issues/16)) ([dc1fa74](https://github.com/grimmory-tools/grimmory/commit/dc1fa74af7b89d5cdba834896a240c5d9a35c901)) - **archive:** infer archive type via Magic Numbers instead of filename ([#&#8203;79](https://github.com/grimmory-tools/grimmory/issues/79)) ([3c0b5c0](https://github.com/grimmory-tools/grimmory/commit/3c0b5c0c9c2bc0ecbc742eba9966d07c56395a3d)), closes [#&#8203;1](https://github.com/grimmory-tools/grimmory/issues/1) [#&#8203;2](https://github.com/grimmory-tools/grimmory/issues/2) [#&#8203;3](https://github.com/grimmory-tools/grimmory/issues/3) [#&#8203;6](https://github.com/grimmory-tools/grimmory/issues/6) - **audiobook:** improve audiobook streaming and player UI ([#&#8203;513](https://github.com/grimmory-tools/grimmory/issues/513)) ([3e98807](https://github.com/grimmory-tools/grimmory/commit/3e988077e0468f7a13989d49c1178ef9e2101df2)) - **auth:** add global error handler and PWA update service, and update auth logout to force full page reload (prevent reload-hell) ([#&#8203;741](https://github.com/grimmory-tools/grimmory/issues/741)) ([62434c5](https://github.com/grimmory-tools/grimmory/commit/62434c590dca8f4c03873bb2a0cd341f5b843e75)) - **auth:** ensure case-insensitivity on reading remote auth headers ([#&#8203;389](https://github.com/grimmory-tools/grimmory/issues/389)) ([b9a28d6](https://github.com/grimmory-tools/grimmory/commit/b9a28d6b78cd33f39dc10f85fc1a4a4817d98cb7)) - **auth:** fix authentication request handling to exclude specific endpoints from authorization checks leading to permission denied errors ([#&#8203;566](https://github.com/grimmory-tools/grimmory/issues/566)) ([4d6691e](https://github.com/grimmory-tools/grimmory/commit/4d6691ef949f7009b0c816611ccb202db457ebcf)) - **backend:** Fix metadata fields being stripped from API response, causing issues with filtering. ([#&#8203;250](https://github.com/grimmory-tools/grimmory/issues/250)) ([c1711dd](https://github.com/grimmory-tools/grimmory/commit/c1711dd0c10844d5be89d14321a68282c93b5cab)) - **book-browser:** prevent memory leaks by unsubscribing from observables ([#&#8203;80](https://github.com/grimmory-tools/grimmory/issues/80)) ([5f1d34d](https://github.com/grimmory-tools/grimmory/commit/5f1d34d716062802d79db261c6924d4eaa85510a)) - **book-card:** prefer audiobook covers for square mixed-format cards ([#&#8203;467](https://github.com/grimmory-tools/grimmory/issues/467)) ([0eb4c8e](https://github.com/grimmory-tools/grimmory/commit/0eb4c8e3df57f25bd6dae5c43247244e1550a7a1)) - **bookdrop:** clean bookdrop metadata before persisting ([#&#8203;462](https://github.com/grimmory-tools/grimmory/issues/462)) ([6a52a1a](https://github.com/grimmory-tools/grimmory/commit/6a52a1a248090d316d784b9c740eebb661bc11ac)) - **books:** make "select all" actually select all not just the books loaded in ([#&#8203;533](https://github.com/grimmory-tools/grimmory/issues/533)) ([13f282f](https://github.com/grimmory-tools/grimmory/commit/13f282fe72431ff3c3fe9f21b621b862d9e8fcd0)) - **cache:** improve cache handling by checking availability before operations ([#&#8203;397](https://github.com/grimmory-tools/grimmory/issues/397)) ([b2ff955](https://github.com/grimmory-tools/grimmory/commit/b2ff955e9c4e7811566128bea6ef818f4b7d2f3a)) - **cbx-reader:** add GIF and BMP to supported image extensions ([#&#8203;230](https://github.com/grimmory-tools/grimmory/issues/230)) ([74c7ad5](https://github.com/grimmory-tools/grimmory/commit/74c7ad5502734538e817659dad82ac9e63776176)) - **ci:** align github actions with yarn 4 frontend tooling ([dcd264c](https://github.com/grimmory-tools/grimmory/commit/dcd264cf6ba34d2acc2a10bc64c1a98083dabd53)) - **ci:** reduce workflow cache churn ([3f9d3e0](https://github.com/grimmory-tools/grimmory/commit/3f9d3e0d8af340de6d79783e3877e577cb905b59)) - clean up import in AuthenticationSettingsComponent ([49101b7](https://github.com/grimmory-tools/grimmory/commit/49101b79cf3117a7fd16df76fb12ddff92cab691)) - **collapse-series:** fix series collapsing ([#&#8203;541](https://github.com/grimmory-tools/grimmory/issues/541)) ([e26df36](https://github.com/grimmory-tools/grimmory/commit/e26df36a338cf6ac6853cba3046e0812f0fa94d9)) - **dashboard:** improve performance with OnPush change detection ([#&#8203;440](https://github.com/grimmory-tools/grimmory/issues/440)) ([85e8d23](https://github.com/grimmory-tools/grimmory/commit/85e8d235b617c88c1a274c1eb8617ba69ca6cede)) - **devex:** add GitHub sign-in note to rc and nightly Discord posts ([#&#8203;572](https://github.com/grimmory-tools/grimmory/issues/572)) ([52ed009](https://github.com/grimmory-tools/grimmory/commit/52ed009098f13aec0f7ea0fd99e6517684378d1d)) - **dto:** add DailyListeningDto and update session-related DTOs to use LocalDate ([#&#8203;403](https://github.com/grimmory-tools/grimmory/issues/403)) ([e2d6c1b](https://github.com/grimmory-tools/grimmory/commit/e2d6c1bf1156208a095ec8da74da0fb7a6467895)) - **entrypoint:** ensure books directory exists and is writable by the target user ([#&#8203;119](https://github.com/grimmory-tools/grimmory/issues/119)) ([af9beaf](https://github.com/grimmory-tools/grimmory/commit/af9beafe7ae585d0d5ae7cd03b9c918e372584b5)) - **file-mover:** fix file mover never updating ([#&#8203;651](https://github.com/grimmory-tools/grimmory/issues/651)) ([d9d7a18](https://github.com/grimmory-tools/grimmory/commit/d9d7a18d893d9a81d2854806500409b2621d7d7d)) - **file:** allow physical books to be moved between libraries ([#&#8203;296](https://github.com/grimmory-tools/grimmory/issues/296)) ([4ce9188](https://github.com/grimmory-tools/grimmory/commit/4ce918891b1c6c7c6ada823c13e89422360a9003)) - **file:** deduplicate bookFiles and protect source library root in FileMoveService ([#&#8203;294](https://github.com/grimmory-tools/grimmory/issues/294)) ([1625055](https://github.com/grimmory-tools/grimmory/commit/162505568963b5dda0ae77628b8ce907e32f59b9)) - **file:** update file type and size retrieval to use primaryFile structure ([#&#8203;383](https://github.com/grimmory-tools/grimmory/issues/383)) ([707f0a8](https://github.com/grimmory-tools/grimmory/commit/707f0a8b9b99125a42757f04f5c0b945373eb8f9)) - **filter:** add missing filters for: Lubimyczytac, RanobeDB, and Audible ratings, comic specific metadata fields ([#&#8203;647](https://github.com/grimmory-tools/grimmory/issues/647)) ([4bac913](https://github.com/grimmory-tools/grimmory/commit/4bac91357483a414d96d62cfd4ba6ac89c439c3c)) - **filter:** update filter options to use CountedOption for read statuses and file types ([#&#8203;448](https://github.com/grimmory-tools/grimmory/issues/448)) ([4a68fa2](https://github.com/grimmory-tools/grimmory/commit/4a68fa28f61962a4d50eda025f1cd15c46c4171d)) - fix text overflow with attach-to-book flow when dealing with long titles ([#&#8203;265](https://github.com/grimmory-tools/grimmory/issues/265)) ([1799493](https://github.com/grimmory-tools/grimmory/commit/1799493ed78ef0e24530260127de99df5ba29a28)) - **frontend:** fixes library health pinging even when the user is not authenticated ([#&#8203;385](https://github.com/grimmory-tools/grimmory/issues/385)) ([d502c18](https://github.com/grimmory-tools/grimmory/commit/d502c1894833273bec2ba2634a0a81ebdf5c5735)) - **frontend:** remove double encoding of series name in URL ([#&#8203;262](https://github.com/grimmory-tools/grimmory/issues/262)) ([a92459d](https://github.com/grimmory-tools/grimmory/commit/a92459ddbf9e4b9762db16a5d2f5067ada012dfe)) - **hardcover:** add series position decimals and use primary books count ([#&#8203;87](https://github.com/grimmory-tools/grimmory/issues/87)) ([8def367](https://github.com/grimmory-tools/grimmory/commit/8def367d03251bf00d3b51f7c3ecd5b2550a24eb)) - **hardcover:** hardcover sync duplicates reads and doesn't update progress ([#&#8203;247](https://github.com/grimmory-tools/grimmory/issues/247)) ([a261749](https://github.com/grimmory-tools/grimmory/commit/a261749b8c128e4b3128f318d0af9d9d906c1fd4)) - **hardcover:** use hardcover edition based on ISBN for syncing progress ([#&#8203;173](https://github.com/grimmory-tools/grimmory/issues/173)) ([85c1749](https://github.com/grimmory-tools/grimmory/commit/85c1749a13ed907dbf608ed15b970f77aafc708a)) - **hibernate:** improve transaction management and optimize entity fetching ([#&#8203;176](https://github.com/grimmory-tools/grimmory/issues/176)) ([ad3a981](https://github.com/grimmory-tools/grimmory/commit/ad3a981ad1e935cc71d54f8af48275b94a903c58)) - **image-dimension:** fix image dimension detection loading whole CBX files into memory ([#&#8203;663](https://github.com/grimmory-tools/grimmory/issues/663)) ([9236ac9](https://github.com/grimmory-tools/grimmory/commit/9236ac929d6dc47e473d30fa1a559315c50968ad)) - **kobo:** add library to entityGraph when fetching books for download ([#&#8203;646](https://github.com/grimmory-tools/grimmory/issues/646)) ([11e6a35](https://github.com/grimmory-tools/grimmory/commit/11e6a35e2bcc17b7906698fa90eb6cdb65fcc6e5)) - **kobo:** default kobo store proxy to "on" ([#&#8203;515](https://github.com/grimmory-tools/grimmory/issues/515)) ([a32cd54](https://github.com/grimmory-tools/grimmory/commit/a32cd541637397c50de03103466d64d45fdfacfd)) - **kobo:** handle missing book when pulling kobo metadata ([#&#8203;473](https://github.com/grimmory-tools/grimmory/issues/473)) ([28dd303](https://github.com/grimmory-tools/grimmory/commit/28dd303e547254134f8f61e5720608ba0cc56e90)) - **kobo:** proxy the `/v1/auth/device` endpoint ([#&#8203;511](https://github.com/grimmory-tools/grimmory/issues/511)) ([ba6eb4f](https://github.com/grimmory-tools/grimmory/commit/ba6eb4f64cb2ec8686814f40023a836fffea2031)) - **lazy-loading:** improve image loading performance with lazy loading and low priority fetch ([#&#8203;431](https://github.com/grimmory-tools/grimmory/issues/431)) ([2c26bd2](https://github.com/grimmory-tools/grimmory/commit/2c26bd26fdc911a8861544587e19cd96c5a86ac2)) - **loading:** update loading checks to use signal() for reactive state management ([#&#8203;727](https://github.com/grimmory-tools/grimmory/issues/727)) ([284e7be](https://github.com/grimmory-tools/grimmory/commit/284e7bec49396c6159faf42d160d5a0f8082a988)) - **logging:** change book added event completion log level from info to debug ([#&#8203;532](https://github.com/grimmory-tools/grimmory/issues/532)) ([928ccff](https://github.com/grimmory-tools/grimmory/commit/928ccff5f09b48a5ec9043a60b8e7159a7b1d318)) - **metadata:** add support for audible fields in metadata refresh options ([#&#8203;348](https://github.com/grimmory-tools/grimmory/issues/348)) ([2ecd352](https://github.com/grimmory-tools/grimmory/commit/2ecd35296d5e768b887ff02f70230618f8d76876)) - **metadata:** fix metadata fetching relying for filename "first" instead of better fields like ISBN in Goodreads/Bookdrop ([#&#8203;85](https://github.com/grimmory-tools/grimmory/issues/85)) ([4ac1d31](https://github.com/grimmory-tools/grimmory/commit/4ac1d31bc6019501699262da9ff19b0ebdb052ea)), closes [#&#8203;1](https://github.com/grimmory-tools/grimmory/issues/1) [#&#8203;2](https://github.com/grimmory-tools/grimmory/issues/2) [#&#8203;3](https://github.com/grimmory-tools/grimmory/issues/3) [#&#8203;6](https://github.com/grimmory-tools/grimmory/issues/6) - **metadata:** include custom namespace fields in file write checks ([#&#8203;257](https://github.com/grimmory-tools/grimmory/issues/257)) ([339a0c7](https://github.com/grimmory-tools/grimmory/commit/339a0c7f06e168ef02c2d9e38da8a6eb2d25140b)) - **metadata:** preserve lock states and fallback values in metadata refresh ([#&#8203;258](https://github.com/grimmory-tools/grimmory/issues/258)) ([3f8a185](https://github.com/grimmory-tools/grimmory/commit/3f8a1852a6dca328b3712fc0f413d2119154d2ae)) - **metadata:** refactor book metadata fetching to use fetch API and signals for state management ([#&#8203;495](https://github.com/grimmory-tools/grimmory/issues/495)) ([fcee609](https://github.com/grimmory-tools/grimmory/commit/fcee609b15e0ed06e5d66d82b354be503023b28f)) - **metadata:** support multiple roles for the same creator in EPUB metadata extraction ([#&#8203;561](https://github.com/grimmory-tools/grimmory/issues/561)) ([c06dc95](https://github.com/grimmory-tools/grimmory/commit/c06dc956684a15c5d7224670e6843c388fa97b84)) - **metadata:** update book retrieval methods to fix lazy init exception when removing some authors/retrieving metadata from file ([#&#8203;560](https://github.com/grimmory-tools/grimmory/issues/560)) ([9c3ecc5](https://github.com/grimmory-tools/grimmory/commit/9c3ecc58d431fc03f2934cd883b1c399be667397)) - **mobile:** enable pan mode and disable swipe-to-navigate and tap-to-turn-page zones on mobile devices ([#&#8203;742](https://github.com/grimmory-tools/grimmory/issues/742)) ([fb555d9](https://github.com/grimmory-tools/grimmory/commit/fb555d9a9ec7023a6e3246e6f54b894fa4f6c5c9)) - **packaging:** include frontend in the docker build context ([00f116a](https://github.com/grimmory-tools/grimmory/commit/00f116a474ea919c7fe487c585484ab54ef624bd)) - **packaging:** keep the frontend compatibility symlink in docker context ([237c54b](https://github.com/grimmory-tools/grimmory/commit/237c54bacfa82e7fb2f5b4dfd844a9b58e791f83)) - **pdf-reader:** localize embedpdf viewer to active app language ([#&#8203;466](https://github.com/grimmory-tools/grimmory/issues/466)) ([da7fa4b](https://github.com/grimmory-tools/grimmory/commit/da7fa4bc14c1abaa0b114ff5cc5fdc37a10429f8)) - **pdf-viewer:** convert component properties to signals for improved reactivity ([#&#8203;475](https://github.com/grimmory-tools/grimmory/issues/475)) ([846a4b2](https://github.com/grimmory-tools/grimmory/commit/846a4b29ddbef9f4fc2a23dcc3829216909db29b)) - **pdf-writer:** use same-dir temp files and harden cleanup ([#&#8203;719](https://github.com/grimmory-tools/grimmory/issues/719)) ([9601667](https://github.com/grimmory-tools/grimmory/commit/9601667061cb1536b6458a3e70dba2c4435368d3)) - **pdf:** improve PDF blob handling and improve viewer destruction logic ([#&#8203;506](https://github.com/grimmory-tools/grimmory/issues/506)) ([68d0b26](https://github.com/grimmory-tools/grimmory/commit/68d0b26716b25dbae08c3b5aaf6c82de1a72d46c)) - **reader:** add fetchFreshBookDetail method to ensure up-to-date reading position across devices ([#&#8203;358](https://github.com/grimmory-tools/grimmory/issues/358)) ([4527d43](https://github.com/grimmory-tools/grimmory/commit/4527d43e84957caffe1ebeeb48bd6f659638dcc2)) - **reader:** implement signal-based state management and cleanup in EbookReaderComponent ([#&#8203;435](https://github.com/grimmory-tools/grimmory/issues/435)) ([a779de8](https://github.com/grimmory-tools/grimmory/commit/a779de8f5724903eb072305a04a6d9a03e20de24)) - **reader:** optimize memory management for canvas and image handling in infinite scrolling ([#&#8203;433](https://github.com/grimmory-tools/grimmory/issues/433)) ([376ac6f](https://github.com/grimmory-tools/grimmory/commit/376ac6ff609f6754bbad3ecbe7aed0c43e8934a7)) - **reader:** resolve epub preview runtime and audiobook download failures ([#&#8203;463](https://github.com/grimmory-tools/grimmory/issues/463)) ([c95b5fa](https://github.com/grimmory-tools/grimmory/commit/c95b5fab876656b7b81f0e280d48dfd6c2bf8e89)) - **readers:** add chapter caching and improve page rendering ([#&#8203;514](https://github.com/grimmory-tools/grimmory/issues/514)) ([649c485](https://github.com/grimmory-tools/grimmory/commit/649c485c2d9688a393fa3a93f80bcdc6252b4622)) - **release:** always publish nightly images on manual runs ([#&#8203;571](https://github.com/grimmory-tools/grimmory/issues/571)) ([c6d567e](https://github.com/grimmory-tools/grimmory/commit/c6d567e37456190fed8636f519406e91eea4a22b)) - **search:** replace dropdown with popover for search results and improve visibility handling ([#&#8203;355](https://github.com/grimmory-tools/grimmory/issues/355)) ([a176be3](https://github.com/grimmory-tools/grimmory/commit/a176be3e7478adb96b4615bd1250fc49f1fd1290)) - **security:** add access control annotations to various controllers ([#&#8203;312](https://github.com/grimmory-tools/grimmory/issues/312)) ([145b94d](https://github.com/grimmory-tools/grimmory/commit/145b94dfc9bbf0ee6e5eb3cbb34a41f16243b368)) - **security:** enforce validation on request bodies and tighten JWT issuer checks ([7d7a5d9](https://github.com/grimmory-tools/grimmory/commit/7d7a5d9c6e77890e8bc4ef6bcd1c297446e22421)) - **service:** add transactional support to author delete and update methods ([#&#8203;653](https://github.com/grimmory-tools/grimmory/issues/653)) ([fd00da3](https://github.com/grimmory-tools/grimmory/commit/fd00da3a4e923114754e3e1095558fab5b8b7cc0)) - **streaming:** rewrite file streaming with NIO and HTTP caching ([#&#8203;512](https://github.com/grimmory-tools/grimmory/issues/512)) ([5bd2e9a](https://github.com/grimmory-tools/grimmory/commit/5bd2e9ad3f6eb3b34c33d0c31731e930f3c184ec)) - **table-view:** table-view to also actually select all when users select press all ([#&#8203;645](https://github.com/grimmory-tools/grimmory/issues/645)) ([791a4ea](https://github.com/grimmory-tools/grimmory/commit/791a4eab6ecb023bde8b0772698ea6b96b33c235)) - **transloco-loader:** update deepMerge function type definitions ([#&#8203;167](https://github.com/grimmory-tools/grimmory/issues/167)) ([6ff7275](https://github.com/grimmory-tools/grimmory/commit/6ff7275db805bad708aa06fe7b99907568e8c1ad)) - **ui:** add missing OIDC group permissions ([#&#8203;487](https://github.com/grimmory-tools/grimmory/issues/487)) ([39de8e3](https://github.com/grimmory-tools/grimmory/commit/39de8e31aced934f2a9ee050e600f4b46c06f3d7)) - **ui:** enable all OIDC permissions when admin is granted ([#&#8203;517](https://github.com/grimmory-tools/grimmory/issues/517)) ([27db18a](https://github.com/grimmory-tools/grimmory/commit/27db18ae80478b8ab00e27ea89fb2ff5e54355c2)) - **ui:** Fix book scroll judder ([#&#8203;309](https://github.com/grimmory-tools/grimmory/issues/309)) ([351074f](https://github.com/grimmory-tools/grimmory/commit/351074fcb65bae096edeba0329ca12bcbb213577)) - **ui:** Fixed the Angular Linter ([#&#8203;138](https://github.com/grimmory-tools/grimmory/issues/138)) ([0e61057](https://github.com/grimmory-tools/grimmory/commit/0e6105717de278011f7a33165787245b754d1b72)) - **ui:** handle RFC5987 content-disposition headers ([#&#8203;730](https://github.com/grimmory-tools/grimmory/issues/730)) ([8047f87](https://github.com/grimmory-tools/grimmory/commit/8047f87700f9c9242c90e888d7f40cdd1f37b25e)) - **ui:** improve audible metadata provider detection ([#&#8203;456](https://github.com/grimmory-tools/grimmory/issues/456)) ([a63328b](https://github.com/grimmory-tools/grimmory/commit/a63328b9c71386a2ee4f66dd5cda03588585306d)) - **ui:** parse magic shelf date values as local midnight ([#&#8203;489](https://github.com/grimmory-tools/grimmory/issues/489)) ([41e1132](https://github.com/grimmory-tools/grimmory/commit/41e113294e191fb38ce27fdbf5cc11084e5e164e)) - **ui:** properly scale placeholder artwork text with smaller sizes ([#&#8203;531](https://github.com/grimmory-tools/grimmory/issues/531)) ([6f2b86a](https://github.com/grimmory-tools/grimmory/commit/6f2b86a7c56a1022b3256518ecea05a2cb956df9)) - **ui:** restore frontend verification after eslint cleanup ([43389c8](https://github.com/grimmory-tools/grimmory/commit/43389c8dc4835a6d2991f4b97e78bb962f684598)) - **ui:** settings forms not reflecting saved values reliably ([#&#8203;648](https://github.com/grimmory-tools/grimmory/issues/648)) ([78be516](https://github.com/grimmory-tools/grimmory/commit/78be516b743ae84bced094088ef05b28f27f90d7)) - **ui:** use RFC3330 format for date picker ([#&#8203;491](https://github.com/grimmory-tools/grimmory/issues/491)) ([6541d41](https://github.com/grimmory-tools/grimmory/commit/6541d41bf75742657197370d3b66e79fabf19a6b)) - **ui:** use signals for duplicate merger ([#&#8203;732](https://github.com/grimmory-tools/grimmory/issues/732)) ([a03ae72](https://github.com/grimmory-tools/grimmory/commit/a03ae72378cfd376d56af46b0c85e5a01d20f2ae)) - **upload:** add ChangeDetectorRef calls to ensure UI updates during file upload process ([#&#8203;557](https://github.com/grimmory-tools/grimmory/issues/557)) ([bf4fab3](https://github.com/grimmory-tools/grimmory/commit/bf4fab3785653546d35dbb0d0caf25ef727cda4f)) - **user-settings:** fix settings loading errors ([#&#8203;527](https://github.com/grimmory-tools/grimmory/issues/527)) ([902f5f5](https://github.com/grimmory-tools/grimmory/commit/902f5f5d6734bf106c4d21f4fec8650a602eb316)) - **webmvc:** avoid index fallback exception for missing public routes ([#&#8203;298](https://github.com/grimmory-tools/grimmory/issues/298)) ([a3add5d](https://github.com/grimmory-tools/grimmory/commit/a3add5ded932bf4b9f213649b83854da26f667f3)) - **websocket:** add heartbeat scheduling and transport limits ([#&#8203;313](https://github.com/grimmory-tools/grimmory/issues/313)) ([bfeeef2](https://github.com/grimmory-tools/grimmory/commit/bfeeef268d7cfe1899133214c937c88325494647)) ##### Performance - **ui:** captures some low hanging fruit around excessive re-renders in the app ([#&#8203;158](https://github.com/grimmory-tools/grimmory/issues/158)) ([8778827](https://github.com/grimmory-tools/grimmory/commit/87788270c2cab401a2e6c58733d986cb2f2424b9)) - **ui:** decouple book browser rendering pipeline ([#&#8203;341](https://github.com/grimmory-tools/grimmory/issues/341)) ([be0b717](https://github.com/grimmory-tools/grimmory/commit/be0b717ff422d0cd7b6ccb332cb7872ff1cb4a4c)) ##### Refactors - **api:** move detect deleted/new books to `LibraryFileHelper` ([#&#8203;555](https://github.com/grimmory-tools/grimmory/issues/555)) ([11caa91](https://github.com/grimmory-tools/grimmory/commit/11caa916cf977566bfe2619caf1c6b85e9821a59)) - **api:** optimize caching mechanisms and improve book filtering ([#&#8203;372](https://github.com/grimmory-tools/grimmory/issues/372)) ([3e5a6a9](https://github.com/grimmory-tools/grimmory/commit/3e5a6a9de8fd7f0ba778dd5d9d4ec7688e39a876)) - **api:** switch to Spring logging filter ([#&#8203;195](https://github.com/grimmory-tools/grimmory/issues/195)) ([5f06ab9](https://github.com/grimmory-tools/grimmory/commit/5f06ab92e908ff794f6a73071a29793d47912c23)) - **api:** use `NightCompress` library for reading CBX ([#&#8203;113](https://github.com/grimmory-tools/grimmory/issues/113)) ([1e0b4d0](https://github.com/grimmory-tools/grimmory/commit/1e0b4d0fd5bb0d846703f08eb4859eb3e0e41715)) - **api:** use `Path` for FileUtils.getBookFullPath ([#&#8203;209](https://github.com/grimmory-tools/grimmory/issues/209)) ([97411fa](https://github.com/grimmory-tools/grimmory/commit/97411fa51d1e71e2880235eaec1a650189a1fad4)) - **api:** use spring content disposition helper for `BookDownloadService` ([#&#8203;449](https://github.com/grimmory-tools/grimmory/issues/449)) ([2637960](https://github.com/grimmory-tools/grimmory/commit/26379606dfcefefcabe6ac9ee0617a6c536d9e43)) - **cbx-reader:** convert properties to signals for improved reactivity and performance/add top/bottom swipe detection ([#&#8203;743](https://github.com/grimmory-tools/grimmory/issues/743)) ([a9ce7c7](https://github.com/grimmory-tools/grimmory/commit/a9ce7c7550fa1feb7fdee9afc23c051e6bec375c)) - **concurrency:** improve thread management and locking in monitoring services ([#&#8203;137](https://github.com/grimmory-tools/grimmory/issues/137)) ([5bcef92](https://github.com/grimmory-tools/grimmory/commit/5bcef92b65971a03541edc586c3c32cd071eec14)) - **config:** remove redundant Spring Boot config and fix injection patterns ([#&#8203;314](https://github.com/grimmory-tools/grimmory/issues/314)) ([390a372](https://github.com/grimmory-tools/grimmory/commit/390a37266cf4740ff5420fcd395bfcfabae41806)) - **cover:** add async cover notifications, for real time updates ([#&#8203;716](https://github.com/grimmory-tools/grimmory/issues/716)) ([7a88b12](https://github.com/grimmory-tools/grimmory/commit/7a88b1243084b14e5fa03c64551c12ee4cf1ea56)) - drop unused standalone comicinfo.xml parser ([#&#8203;218](https://github.com/grimmory-tools/grimmory/issues/218)) ([66de45c](https://github.com/grimmory-tools/grimmory/commit/66de45c4be3a125f2860455a3400a3de0a3762e5)) - **ebook-reader:** optimize destruction handling and improve reactive subscriptions ([#&#8203;478](https://github.com/grimmory-tools/grimmory/issues/478)) ([1f5f99d](https://github.com/grimmory-tools/grimmory/commit/1f5f99d958a7128bce51894bc49502b93b6a7948)) - **email:** replace Booklore References In Email with Grimmory ([#&#8203;434](https://github.com/grimmory-tools/grimmory/issues/434)) ([a0a7be4](https://github.com/grimmory-tools/grimmory/commit/a0a7be43dd27f883b988531e9cd02c3c96474c0f)) - **entity:** update fetch strategies to LAZY for improved relibility ([#&#8203;122](https://github.com/grimmory-tools/grimmory/issues/122)) ([b905e82](https://github.com/grimmory-tools/grimmory/commit/b905e825f37b4e699e8b7681b9998b7e17727132)) - **epub:** migrate from documentnode to grimmory epub4j library and update related code ([#&#8203;334](https://github.com/grimmory-tools/grimmory/issues/334)) ([bff20c5](https://github.com/grimmory-tools/grimmory/commit/bff20c521949c80427fc17163a98b92f77876581)) - **file:** improve path handling and validation ([#&#8203;82](https://github.com/grimmory-tools/grimmory/issues/82)) ([cbd04ee](https://github.com/grimmory-tools/grimmory/commit/cbd04eec8edc2e83ab8a1e053a9b5c2cbfd734c0)) - **frontend:** decouple app shell from PrimeNG layout system ([#&#8203;307](https://github.com/grimmory-tools/grimmory/issues/307)) ([55a6343](https://github.com/grimmory-tools/grimmory/commit/55a6343f659fa1b8e92ec45bc6b8f3e09199be3e)) - **frontend:** Migrate state to Tanstack Query + signals ([#&#8203;117](https://github.com/grimmory-tools/grimmory/issues/117)) ([ccb80d7](https://github.com/grimmory-tools/grimmory/commit/ccb80d7421329b4653a4b89af83888d5aaaa11fc)) - **frontend:** rename booklore-ui to frontend ([874b013](https://github.com/grimmory-tools/grimmory/commit/874b013f7503f8799ebe91f1cbd519c89b48b20a)) - **frontend:** repoint repo tooling to the frontend path ([42d9dcb](https://github.com/grimmory-tools/grimmory/commit/42d9dcb4d32788dcd3e2eaf61793ecfdb83cc634)) - **geoip:** replace ObjectMapper instantiation with JsonMapper for improved configuration ([#&#8203;139](https://github.com/grimmory-tools/grimmory/issues/139)) ([aab68d5](https://github.com/grimmory-tools/grimmory/commit/aab68d55c828f56ae62f85b76e893eb1a2e28aa8)) - **icon:** fix SVG icons loading straight to memory ([#&#8203;56](https://github.com/grimmory-tools/grimmory/issues/56)) ([c9c255b](https://github.com/grimmory-tools/grimmory/commit/c9c255b15d7695e282be48fe00a4b98856b94e8d)), closes [#&#8203;80](https://github.com/grimmory-tools/grimmory/issues/80) - **kobo:** create endpoints for non-catchall ([#&#8203;507](https://github.com/grimmory-tools/grimmory/issues/507)) ([bd7e578](https://github.com/grimmory-tools/grimmory/commit/bd7e57891b936cfea59b640c11b2de4ede66cb5f)) - **library:** implement asynchronous book addition and cover generation with event handling ([#&#8203;329](https://github.com/grimmory-tools/grimmory/issues/329)) ([536daa9](https://github.com/grimmory-tools/grimmory/commit/536daa996e133d7acec6746d6af1ed7e7d275da5)) - migrate library-creator component state to signals and enable component unit tests ([#&#8203;476](https://github.com/grimmory-tools/grimmory/issues/476)) ([f292a3e](https://github.com/grimmory-tools/grimmory/commit/f292a3e6839239002844431cb1f8e09f02bbb5b6)) - **pdf-viewer:** improve worker and blob handling for better loading of wasm PDFium workers ([#&#8203;333](https://github.com/grimmory-tools/grimmory/issues/333)) ([74c5bbd](https://github.com/grimmory-tools/grimmory/commit/74c5bbd81aef8d3c8fce42a398cc52c9f285d271)) - **regex:** replace string manipulation with Pattern matching for improved readability ([#&#8203;359](https://github.com/grimmory-tools/grimmory/issues/359)) ([78099cc](https://github.com/grimmory-tools/grimmory/commit/78099cc92cff0b4b68a273726ad9e1f552f3c9c1)) - **SecurityFilter:** Stop filters from being registered on all routes ([#&#8203;361](https://github.com/grimmory-tools/grimmory/issues/361)) ([9ddbe35](https://github.com/grimmory-tools/grimmory/commit/9ddbe3579d54e503226c70612a6ba27abd860e21)) - **service:** replace manual caching with Cacheable and JPQL with Criteria API ([#&#8203;316](https://github.com/grimmory-tools/grimmory/issues/316)) ([02b2087](https://github.com/grimmory-tools/grimmory/commit/02b2087c1782beadc742d33cc9d1630aa7e9c5a0)) - **settings:** replace unsubscribe logic with takeUntilDestroyed for better resource management ([#&#8203;443](https://github.com/grimmory-tools/grimmory/issues/443)) ([7abac02](https://github.com/grimmory-tools/grimmory/commit/7abac02b0c24584189bccb153d202c987ce31016)) - **threads:** replace manual thread management with Spring lifecycle ([#&#8203;322](https://github.com/grimmory-tools/grimmory/issues/322)) ([cf79990](https://github.com/grimmory-tools/grimmory/commit/cf7999044f12b654f59e06a36f590dd70d26ee2e)) - **ui:** replace SVG artwork placeholders with CSS ([#&#8203;292](https://github.com/grimmory-tools/grimmory/issues/292)) ([2fd7310](https://github.com/grimmory-tools/grimmory/commit/2fd7310e8186619142b9a4b34c6a12e13d38cd87)) ##### Chores - **api:** add the base OpenAPI metadata config ([#&#8203;423](https://github.com/grimmory-tools/grimmory/issues/423)) ([a32ca37](https://github.com/grimmory-tools/grimmory/commit/a32ca37f23a8279052b74aeb2eb243db4b1268eb)) - **api:** drop unused book download proxy ([#&#8203;428](https://github.com/grimmory-tools/grimmory/issues/428)) ([907ad09](https://github.com/grimmory-tools/grimmory/commit/907ad09d5bf510ec88837c8ad9dc073bc99cc434)) - **api:** drop unused code in AmazonBookParser and AudibleParser ([#&#8203;368](https://github.com/grimmory-tools/grimmory/issues/368)) ([b05d76d](https://github.com/grimmory-tools/grimmory/commit/b05d76d59434075879cdf13e5df2182d07356716)) - **api:** fix typo on openapi doc for healthcheck ([#&#8203;380](https://github.com/grimmory-tools/grimmory/issues/380)) ([7e796ec](https://github.com/grimmory-tools/grimmory/commit/7e796ec49156158d689076784a71855ef74ee1c0)) - **api:** Migrate BookCreatorServiceTests to AssertJ and remove unnessesary tests ([#&#8203;229](https://github.com/grimmory-tools/grimmory/issues/229)) ([2474cdd](https://github.com/grimmory-tools/grimmory/commit/2474cdd4aefbf424da1e9272ee88d9d28486841f)) - **banner:** add ASCII art banner ([#&#8203;381](https://github.com/grimmory-tools/grimmory/issues/381)) ([05185ee](https://github.com/grimmory-tools/grimmory/commit/05185eefb0998f3ea460ff2143cb85518ad4a0eb)) - **build:** migrate Gradle build scripts from Groovy to Kotlin DSL ([#&#8203;100](https://github.com/grimmory-tools/grimmory/issues/100)) ([ff14647](https://github.com/grimmory-tools/grimmory/commit/ff14647bd88bf394156ea93733f2a58308f89b7b)) - **codeql:** Initialize a codeql config so we can sort out the caching properly. ([2ad937a](https://github.com/grimmory-tools/grimmory/commit/2ad937a761567817717d130b5d45525c5a2034f8)) - **dependencies:** bump Spring Boot to 4.0.5 and Hibernate to 7.3.0 Final ([#&#8203;223](https://github.com/grimmory-tools/grimmory/issues/223)) ([4e57719](https://github.com/grimmory-tools/grimmory/commit/4e577191185a10e3053277cfd2357a6631326aee)) - **dependencies:** update [@&#8203;embedpdf](https://github.com/embedpdf) packages to version 2.12.0 ([#&#8203;325](https://github.com/grimmory-tools/grimmory/issues/325)) ([84ff595](https://github.com/grimmory-tools/grimmory/commit/84ff5953f61c01de54129844fab75a1cef2ad558)) - **deps:** bump [@&#8203;hono/node-server](https://github.com/hono/node-server) from 1.19.11 to 1.19.13 in /frontend ([#&#8203;419](https://github.com/grimmory-tools/grimmory/issues/419)) ([fadc129](https://github.com/grimmory-tools/grimmory/commit/fadc1293c8ddf23450484dec4d35c2a4a9381f7c)) - **deps:** bump actions/cache from 4.2.4 to 5.0.4 ([40d0076](https://github.com/grimmory-tools/grimmory/commit/40d0076a92b6c3dce41e9ab8e4562fff32ebaf68)) - **deps:** bump actions/cache from 5.0.4 to 5.0.5 ([#&#8203;762](https://github.com/grimmory-tools/grimmory/issues/762)) ([317557c](https://github.com/grimmory-tools/grimmory/commit/317557cecab30d7644b8cac0f43af36e6b441ec7)) - **deps:** bump actions/setup-node from 6.3.0 to 6.4.0 ([#&#8203;758](https://github.com/grimmory-tools/grimmory/issues/758)) ([6d6003c](https://github.com/grimmory-tools/grimmory/commit/6d6003c5cd746334b6aef609693ba632d4db2b6b)) - **deps:** bump actions/upload-artifact from 7.0.0 to 7.0.1 ([#&#8203;763](https://github.com/grimmory-tools/grimmory/issues/763)) ([a0e2f60](https://github.com/grimmory-tools/grimmory/commit/a0e2f600b16054b3ef551b01208c1f716efb2610)) - **deps:** bump conventional-changelog-conventionalcommits ([#&#8203;351](https://github.com/grimmory-tools/grimmory/issues/351)) ([19223d7](https://github.com/grimmory-tools/grimmory/commit/19223d749d2986b2da18185ba8b5145fc531f32f)) - **deps:** bump docker/build-push-action from 7.0.0 to 7.1.0 ([#&#8203;759](https://github.com/grimmory-tools/grimmory/issues/759)) ([9834381](https://github.com/grimmory-tools/grimmory/commit/983438108defdc5efcb7c464aae8fd6287e401a6)) - **deps:** bump docker/login-action from 4.0.0 to 4.1.0 ([#&#8203;757](https://github.com/grimmory-tools/grimmory/issues/757)) ([d2b32ed](https://github.com/grimmory-tools/grimmory/commit/d2b32edd3cc29492ff57b39dc74cf395241ac1d8)) - **deps:** bump docker/setup-qemu-action from 3.7.0 to 4.0.0 ([3a1cd68](https://github.com/grimmory-tools/grimmory/commit/3a1cd68edcfc91d7fd9d37637a2d94ce96f55fd0)) - **deps:** bump dompurify from 3.3.3 to 3.4.0 in /frontend ([#&#8203;536](https://github.com/grimmory-tools/grimmory/issues/536)) ([7f47b51](https://github.com/grimmory-tools/grimmory/commit/7f47b51d79a1b86ae0ab4fecece26903440b3a32)) - **deps:** bump github/codeql-action from 4.34.1 to 4.35.1 ([#&#8203;332](https://github.com/grimmory-tools/grimmory/issues/332)) ([4be3311](https://github.com/grimmory-tools/grimmory/commit/4be3311a8710d8f1a7c5ed9ddb272460a0fce4c6)) - **deps:** bump github/codeql-action from 4.35.1 to 4.35.2 ([#&#8203;754](https://github.com/grimmory-tools/grimmory/issues/754)) ([70b2463](https://github.com/grimmory-tools/grimmory/commit/70b246366378164a1a97401a428ad6cd58cdfdc5)) - **deps:** bump handlebars from 4.7.8 to 4.7.9 in /tools/release ([#&#8203;232](https://github.com/grimmory-tools/grimmory/issues/232)) ([e5ec9d0](https://github.com/grimmory-tools/grimmory/commit/e5ec9d0e963c97705678f72786d8a7d4003317e9)) - **deps:** bump hono from 4.12.12 to 4.12.14 in /frontend ([#&#8203;535](https://github.com/grimmory-tools/grimmory/issues/535)) ([91989b5](https://github.com/grimmory-tools/grimmory/commit/91989b522ba5cb24ab9d5120d4b7721c45ec6236)) - **deps:** bump hono from 4.12.9 to 4.12.12 in /frontend ([#&#8203;422](https://github.com/grimmory-tools/grimmory/issues/422)) ([10c7fac](https://github.com/grimmory-tools/grimmory/commit/10c7fac190084f97a2b09c6b961193db8e44b972)) - **deps:** bump lodash from 4.17.23 to 4.18.1 in /tools/release ([#&#8203;339](https://github.com/grimmory-tools/grimmory/issues/339)) ([736ed01](https://github.com/grimmory-tools/grimmory/commit/736ed01ac1351ea287e3d97495ee29e721b8ee91)) - **deps:** bump lodash-es from 4.17.23 to 4.18.1 in /frontend ([#&#8203;344](https://github.com/grimmory-tools/grimmory/issues/344)) ([f7294bf](https://github.com/grimmory-tools/grimmory/commit/f7294bf370cfc347d6f99894afcca8955fb5a64c)) - **deps:** bump lodash-es from 4.17.23 to 4.18.1 in /tools/release ([#&#8203;342](https://github.com/grimmory-tools/grimmory/issues/342)) ([bd58f19](https://github.com/grimmory-tools/grimmory/commit/bd58f197ffb895707b27d972d4bbe4021f4f726d)) - **deps:** bump taiki-e/install-action from 2.69.10 to 2.71.0 ([#&#8203;331](https://github.com/grimmory-tools/grimmory/issues/331)) ([f7600e6](https://github.com/grimmory-tools/grimmory/commit/f7600e65377b827acda93b5da8d1a87a01247e05)) - **deps:** bump taiki-e/install-action from 2.69.7 to 2.69.10 ([c0fca03](https://github.com/grimmory-tools/grimmory/commit/c0fca03ae8286e4c7707a3c47ce41a8f7d6b499d)) - **deps:** bump taiki-e/install-action from 2.71.0 to 2.75.19 ([#&#8203;756](https://github.com/grimmory-tools/grimmory/issues/756)) ([365d44e](https://github.com/grimmory-tools/grimmory/commit/365d44e26fc67d8b885ae06551b2bddbaab44610)) - **deps:** bump the gradle-dependencies group ([#&#8203;350](https://github.com/grimmory-tools/grimmory/issues/350)) ([73857a8](https://github.com/grimmory-tools/grimmory/commit/73857a81edd8d513292876985b277c60b0856a95)) - **deps:** bump the gradle-dependencies group across 1 directory with 8 updates ([#&#8203;224](https://github.com/grimmory-tools/grimmory/issues/224)) ([052c932](https://github.com/grimmory-tools/grimmory/commit/052c9323beb6bcaf1f1660004ab948cf4d84503c)) - **deps:** bump the gradle-dependencies group across 1 directory with 9 updates ([#&#8203;755](https://github.com/grimmory-tools/grimmory/issues/755)) ([8b0c3f8](https://github.com/grimmory-tools/grimmory/commit/8b0c3f8c869ce4a043dd81cf53adc55aa41a0891)) - **docker:** bump Gradle version to 9.4.1 in Dockerfiles ([#&#8203;379](https://github.com/grimmory-tools/grimmory/issues/379)) ([d254da1](https://github.com/grimmory-tools/grimmory/commit/d254da10226add46d48179bc3dd7ed06c843e5a4)) - **docs:** align Discord links with the README ([dee8cd9](https://github.com/grimmory-tools/grimmory/commit/dee8cd96590207fb3fe8b5ce1670d10e6af85864)) - **docs:** update Discord invite links ([e4fc279](https://github.com/grimmory-tools/grimmory/commit/e4fc279528a26ac45bf94b5cb9002d7942371e87)) - drop `booklore-ui` symlink ([#&#8203;753](https://github.com/grimmory-tools/grimmory/issues/753)) ([9c92f54](https://github.com/grimmory-tools/grimmory/commit/9c92f54f1697a6f7d4312ea8347c797bdd6d7880)) - expand and generate specs for the frontend code section ([#&#8203;242](https://github.com/grimmory-tools/grimmory/issues/242)) ([a3c5da9](https://github.com/grimmory-tools/grimmory/commit/a3c5da988c6a84dae85d4bf1a241711fcc39d4d3)) - **frontend-lint:** add local typecheck and stylelint commands ([cef000d](https://github.com/grimmory-tools/grimmory/commit/cef000d42512baa011746834644e442c97158264)) - **frontend-lint:** tune stylelint for Angular and legacy SCSS patterns ([dc2c1ec](https://github.com/grimmory-tools/grimmory/commit/dc2c1ec395ea4b97226cf0422b18f837a6c8f589)) - **frontend:** add missing auth service mock ([#&#8203;226](https://github.com/grimmory-tools/grimmory/issues/226)) ([4da5f2b](https://github.com/grimmory-tools/grimmory/commit/4da5f2be8b0c5ade4c2014c622a7b287a64debba)) - **frontend:** add temporary booklore-ui compatibility symlink ([4ddc567](https://github.com/grimmory-tools/grimmory/commit/4ddc567406b8bded35460b22f4a589e44ba8b532)) - **frontend:** fix build warnings + set threshold to zero ([#&#8203;421](https://github.com/grimmory-tools/grimmory/issues/421)) ([6ab2ad6](https://github.com/grimmory-tools/grimmory/commit/6ab2ad6ec209816b170f25baf734d661d28b3e5d)) - **github:** update bug report template with build selection ([#&#8203;529](https://github.com/grimmory-tools/grimmory/issues/529)) ([f2b3507](https://github.com/grimmory-tools/grimmory/commit/f2b35070a0d32f3efed0481a415df1ed2040df44)) - **lint:** set LINT\_ERROR\_THRESHOLD to zero ([#&#8203;238](https://github.com/grimmory-tools/grimmory/issues/238)) ([cb8fa67](https://github.com/grimmory-tools/grimmory/commit/cb8fa67ecd76514bf07731db9974fb9b2a5138ce)) - **nvm:** moved .nvmrc file to the repository root ([#&#8203;237](https://github.com/grimmory-tools/grimmory/issues/237)) ([169c9ff](https://github.com/grimmory-tools/grimmory/commit/169c9ff1e1edb7ca7e934451e9597a1e020db811)) - **packaging:** simplify dockerignore to a denylist ([a735bf1](https://github.com/grimmory-tools/grimmory/commit/a735bf12cdf76e457f7c9bc6e565219426ff4e05)) - rename springboot app folder to `backend` ([#&#8203;752](https://github.com/grimmory-tools/grimmory/issues/752)) ([1a664dd](https://github.com/grimmory-tools/grimmory/commit/1a664dda14e061703c0dd74888990c241f53c634)) - **sdkman:** add Java version 25.0.2-tem to .sdkmanrc ([#&#8203;228](https://github.com/grimmory-tools/grimmory/issues/228)) ([da88da5](https://github.com/grimmory-tools/grimmory/commit/da88da52077a3c1674f8f4162d723304d431b77c)) - **ui:** clear eslint angular style guide bucket ([68e3df7](https://github.com/grimmory-tools/grimmory/commit/68e3df7cdec57e773abcd25ad669d8c185ab63a0)) - **ui:** clear eslint control flow bucket ([ac6b44e](https://github.com/grimmory-tools/grimmory/commit/ac6b44e64eef95801e6909c054ad60828ca63005)) - **ui:** clear eslint empty object type bucket ([eba9688](https://github.com/grimmory-tools/grimmory/commit/eba96881124bdba82034e18c9275fa45b5281adc)) - **ui:** clear eslint empty-function bucket ([5dfd1e1](https://github.com/grimmory-tools/grimmory/commit/5dfd1e18d994c0de2c29cba5d23c756d514f1229)) - **ui:** clear eslint expression cleanup bucket ([79eef41](https://github.com/grimmory-tools/grimmory/commit/79eef411d282ceb921d30ddaf393653f4c89c5be)) - **ui:** clear eslint interaction accessibility bucket ([18784fd](https://github.com/grimmory-tools/grimmory/commit/18784fd12d784958acd3c45b5a264709c2a273d9)) - **ui:** clear eslint label-association bucket ([b03ecf3](https://github.com/grimmory-tools/grimmory/commit/b03ecf3a5e4775bb2ec616c328a020f5d23933af)) - **ui:** clear eslint mechanical style bucket ([ea15719](https://github.com/grimmory-tools/grimmory/commit/ea15719b6c6c602a11b3ccaa2d2a7b93bb84714e)) - **ui:** clear eslint no-unused-vars bucket ([0d6f83b](https://github.com/grimmory-tools/grimmory/commit/0d6f83bed0c0221e99d0911db4774af1585980e9)) - **ui:** clear eslint optional chain assertion bucket ([935b3ed](https://github.com/grimmory-tools/grimmory/commit/935b3edced5f2932734b0377664b2e42e4880372)) - **ui:** clear eslint presentation-label bucket ([0a407f6](https://github.com/grimmory-tools/grimmory/commit/0a407f6fae8bf1eb0f98ef74c5bdf01dffcae73e)) - **ui:** clear final prefer-inject bucket ([878cfa0](https://github.com/grimmory-tools/grimmory/commit/878cfa09c8a3c83ecace0aa62ea11accc394e2b7)) - **ui:** clear helper service any bucket ([f7a5d93](https://github.com/grimmory-tools/grimmory/commit/f7a5d939ae9f8c361c70345a6d4ff9ea3f5f3ede)) - **ui:** clear reader core any bucket ([782bd63](https://github.com/grimmory-tools/grimmory/commit/782bd6366451dcb0b512f71f1a60a6c08734b914)) - **ui:** clear reader settings prefer-inject bucket ([4f7d38a](https://github.com/grimmory-tools/grimmory/commit/4f7d38a306206fafa0689e3e009c6b3d6d0846e5)) - **ui:** clear reader state any bucket ([af9a53d](https://github.com/grimmory-tools/grimmory/commit/af9a53dd4e589117924ab1e7fb1bc1471dcf4ffb)) - **ui:** clear reader utility any bucket ([e12f4ea](https://github.com/grimmory-tools/grimmory/commit/e12f4ea827ea3ae8acb34ab0d905c55f2124add2)) - **ui:** clear settings and stats any bucket ([3700e35](https://github.com/grimmory-tools/grimmory/commit/3700e356b49cd85fc42ccf55301f50fc287c4a90)) - **ui:** clear shared prefer-inject bucket ([b3fe4fd](https://github.com/grimmory-tools/grimmory/commit/b3fe4fd598f7368f03681f618a18e357dd6a0baf)) - **ui:** clear test and declaration any bucket ([2e66fd3](https://github.com/grimmory-tools/grimmory/commit/2e66fd30b6b267e9a1656965affcb7791a9b75cf)) - **ui:** drop book and author animations ([#&#8203;270](https://github.com/grimmory-tools/grimmory/issues/270)) ([09c36df](https://github.com/grimmory-tools/grimmory/commit/09c36dfa0b4f888b82c4a637db49a14fedbc0d71)) - **ui:** drop unused favicon pngs ([#&#8203;675](https://github.com/grimmory-tools/grimmory/issues/675)) ([64b7a5c](https://github.com/grimmory-tools/grimmory/commit/64b7a5c75eb749b469085af82a7466fe3daa9b8e)) - **ui:** enforce placeholder aspect ratios ([#&#8203;320](https://github.com/grimmory-tools/grimmory/issues/320)) ([f376b68](https://github.com/grimmory-tools/grimmory/commit/f376b68873374f84f5793b72020fd9f29214737c)) - **ui:** lazily load filter sidebar content ([#&#8203;283](https://github.com/grimmory-tools/grimmory/issues/283)) ([2a2dee8](https://github.com/grimmory-tools/grimmory/commit/2a2dee8e8fe162ea923f210f4730cba86f4fa981)) - **ui:** remove remaining series chart template casts ([3fdb63f](https://github.com/grimmory-tools/grimmory/commit/3fdb63f00d7a38f728cc10a9133a31d13aa4f8c7)) - **ui:** update PWA icons for new branding ([#&#8203;679](https://github.com/grimmory-tools/grimmory/issues/679)) ([d5b497e](https://github.com/grimmory-tools/grimmory/commit/d5b497e4777d8156c2e124d412f1a1d2d9f4e0e6)) - **unraid:** sync unraid template with README ([#&#8203;417](https://github.com/grimmory-tools/grimmory/issues/417)) ([e3b22ed](https://github.com/grimmory-tools/grimmory/commit/e3b22ed9c60d1c699ed5ccc3b2fc78acde8e00fc)) - update npm packages and address warnings in build ([#&#8203;426](https://github.com/grimmory-tools/grimmory/issues/426)) ([f0e4497](https://github.com/grimmory-tools/grimmory/commit/f0e4497b5a6786ca3a2b55ec7fe49b16ed55c969)) ##### Documentation - add AI usage policy for contributors ([#&#8203;547](https://github.com/grimmory-tools/grimmory/issues/547)) ([2c6509e](https://github.com/grimmory-tools/grimmory/commit/2c6509e7e7dc0e9f85dad2c5a5bb5991d7163d1c)) - add code of conduct ([#&#8203;546](https://github.com/grimmory-tools/grimmory/issues/546)) ([4c56e10](https://github.com/grimmory-tools/grimmory/commit/4c56e108e2b45f17c67ea0bf0ce347e4e05f5963)) - **agents:** add repository agent workflow guide ([caa37cd](https://github.com/grimmory-tools/grimmory/commit/caa37cd64addea89e65a487bde64104f6ff7e3be)) - **api:** normalize OpenAPI tagging and operation metadata for app + auth/task endpoints ([#&#8203;437](https://github.com/grimmory-tools/grimmory/issues/437)) ([402c6f0](https://github.com/grimmory-tools/grimmory/commit/402c6f07c8462ce92387f9c5ec75b298d0e2874b)) - consolidate application project development docs ([#&#8203;545](https://github.com/grimmory-tools/grimmory/issues/545)) ([719e083](https://github.com/grimmory-tools/grimmory/commit/719e083353b09ca8368fda99fb041e61dee610de)) - **plan:** add frontend grimmory migration plan ([c99aa87](https://github.com/grimmory-tools/grimmory/commit/c99aa878774adfeed702075fe28077a554df3681)) - **readme:** add DISK\_TYPE to example compose file ([#&#8203;272](https://github.com/grimmory-tools/grimmory/issues/272)) ([#&#8203;477](https://github.com/grimmory-tools/grimmory/issues/477)) ([3ddec09](https://github.com/grimmory-tools/grimmory/commit/3ddec09578e75af119f4b7a287569d35c1c23d91)) - **readme:** modify wording on project independence ([#&#8203;382](https://github.com/grimmory-tools/grimmory/issues/382)) ([e172fa8](https://github.com/grimmory-tools/grimmory/commit/e172fa83a1a304cd02f433ab2f46e8527cfb7347)) - remove frontend test architecture plans ([#&#8203;543](https://github.com/grimmory-tools/grimmory/issues/543)) ([8fde433](https://github.com/grimmory-tools/grimmory/commit/8fde43391e03547e19a640420ea69e17047c50a4)) - **security:** update security policy with reporting guidelines and hints to supported versions ([#&#8203;76](https://github.com/grimmory-tools/grimmory/issues/76)) ([21c23d6](https://github.com/grimmory-tools/grimmory/commit/21c23d61fb4cfb7fd53151aa0623227205abe9ed)), closes [#&#8203;1](https://github.com/grimmory-tools/grimmory/issues/1) [#&#8203;2](https://github.com/grimmory-tools/grimmory/issues/2) [#&#8203;3](https://github.com/grimmory-tools/grimmory/issues/3) [#&#8203;6](https://github.com/grimmory-tools/grimmory/issues/6) ##### CI - apt update before installing libarchive ([#&#8203;375](https://github.com/grimmory-tools/grimmory/issues/375)) ([4d2b803](https://github.com/grimmory-tools/grimmory/commit/4d2b803905e64f99707823438690bcedecf888d7)) - drop `publish-test-results.yml` workflow ([#&#8203;737](https://github.com/grimmory-tools/grimmory/issues/737)) ([f05feae](https://github.com/grimmory-tools/grimmory/commit/f05feaea0852c5d8e77a456f45bc36aeece25621)) - match release automation to desired behavioral workflow ([#&#8203;739](https://github.com/grimmory-tools/grimmory/issues/739)) ([10afe3c](https://github.com/grimmory-tools/grimmory/commit/10afe3c826f4c4efddca5191460cf890c92cc401)) - split release from build ([#&#8203;749](https://github.com/grimmory-tools/grimmory/issues/749)) ([ff73eea](https://github.com/grimmory-tools/grimmory/commit/ff73eea697d944a9727576b9398d5909a5fee48d)) - temp disable dependabot typescript updates ([#&#8203;761](https://github.com/grimmory-tools/grimmory/issues/761)) ([1d32e5f](https://github.com/grimmory-tools/grimmory/commit/1d32e5f4f51f769069e6e4b4e758b8f1bb6e2e14)) - use env vars for input to scripts ([#&#8203;733](https://github.com/grimmory-tools/grimmory/issues/733)) ([2dbfe82](https://github.com/grimmory-tools/grimmory/commit/2dbfe821a9670f303072e918c31e716c31b97b29)) ##### Build - **frontend:** make deps checks work with yarn 4 ([d59d5f7](https://github.com/grimmory-tools/grimmory/commit/d59d5f7c874bc6ef638d2b7a50e1e48f397fc05a)) - **yarn:** migrate frontend and release tooling to yarn 4 ([4855f36](https://github.com/grimmory-tools/grimmory/commit/4855f36d4614cd29d2205b4ddc3478cde951d808)) ##### Style - **frontend:** apply the first eslint autofix pass ([e2a8e6a](https://github.com/grimmory-tools/grimmory/commit/e2a8e6a1d6833abec4bdbb006cde9a519533367d)) - **frontend:** apply the first stylelint autofix pass ([34fc600](https://github.com/grimmory-tools/grimmory/commit/34fc60050fe9c4154b57bb7b5a327426f50bf945)) - **frontend:** enforce alpha-value-notation in scss ([6921da7](https://github.com/grimmory-tools/grimmory/commit/6921da76bae73494c5923430d02525d9a7a29909)) - **frontend:** enforce at-rule-empty-line-before in scss ([43412c0](https://github.com/grimmory-tools/grimmory/commit/43412c0d29820f147b7ecdf0c94df34178e707e1)) - **frontend:** enforce color-function-alias-notation in scss ([130463b](https://github.com/grimmory-tools/grimmory/commit/130463bc4b261b181a905b56d29c6e71590ef83d)) - **frontend:** enforce color-function-notation in scss ([ddcbb5b](https://github.com/grimmory-tools/grimmory/commit/ddcbb5b66638ccfa160bbdb24f3c4f0d3338371b)) - **frontend:** enforce color-hex-length in scss ([a991351](https://github.com/grimmory-tools/grimmory/commit/a991351bb577e82e9cc066622b939a553d169a95)) - **frontend:** enforce declaration-block-single-line-max-declarations in scss ([32765de](https://github.com/grimmory-tools/grimmory/commit/32765de84cfad7619751ef05e65e4d7a2374d274)) - **frontend:** enforce declaration-empty-line-before in scss ([a04daac](https://github.com/grimmory-tools/grimmory/commit/a04daac341d34a760f68097ff6a00458600d8868)) - **frontend:** enforce declaration-property-value-keyword-no-deprecated ([1a65884](https://github.com/grimmory-tools/grimmory/commit/1a6588432cd3e1231beb66e6b49252e38069869f)) - **frontend:** enforce keyframes-name-pattern in scss ([7058992](https://github.com/grimmory-tools/grimmory/commit/7058992145ceaadf2debb80e44916e734adfd6aa)) - **frontend:** enforce media-feature-range-notation in scss ([e46f87e](https://github.com/grimmory-tools/grimmory/commit/e46f87eb964f9871fa42330ff3d53286bafe5a23)) - **frontend:** enforce no-empty-source in scss ([d95424d](https://github.com/grimmory-tools/grimmory/commit/d95424dd227b8aba635029d5e84db988ab6f3fb3)) - **frontend:** enforce number-max-precision in scss ([a689751](https://github.com/grimmory-tools/grimmory/commit/a689751e396337444a0a36489eabd0deddb1e8f0)) - **frontend:** enforce property-no-deprecated in scss ([df12acd](https://github.com/grimmory-tools/grimmory/commit/df12acd7fb0375b9991235b54621c39867c62a47)) - **frontend:** enforce property-no-vendor-prefix in scss ([ee02f6e](https://github.com/grimmory-tools/grimmory/commit/ee02f6e386799542d77ca68db925bd35513f60ce)) - **frontend:** enforce rule-empty-line-before in scss ([55f4481](https://github.com/grimmory-tools/grimmory/commit/55f448191fd1da18dd35a03906cbeb29aa3b49d4)) - **frontend:** enforce scss dollar-variable-empty-line-before ([e68938f](https://github.com/grimmory-tools/grimmory/commit/e68938f916e20e0d669df87aa53e1f7fe7d59a61)) - **frontend:** enforce scss dollar-variable-pattern in layout styles ([2ee5dce](https://github.com/grimmory-tools/grimmory/commit/2ee5dce4273bfd6c1df1fcb840330538b84fbdbd)) - **frontend:** enforce selector-class-pattern in scss ([c0dff27](https://github.com/grimmory-tools/grimmory/commit/c0dff27f78fbafb094173206d283aa6bb4ae97e7)) - **frontend:** enforce shorthand-property-no-redundant-values in scss ([7b9830f](https://github.com/grimmory-tools/grimmory/commit/7b9830faf5d46bfed91bfc668c37a03aaeda3e80)) - **frontend:** resolve the remaining stylelint findings ([dbd1f20](https://github.com/grimmory-tools/grimmory/commit/dbd1f203578ec3d18c31a66bf567d49a7c76b2b7)) - **frontend:** scope no-invalid-position-declaration for scss mixins ([0b34a85](https://github.com/grimmory-tools/grimmory/commit/0b34a85c5001da2c6d2dfcaad6a1a702b696ab73)) ### [`v2.3.1`](https://github.com/grimmory-tools/grimmory/releases/tag/v2.3.1) [Compare Source](https://github.com/grimmory-tools/grimmory/compare/v2.3.0...v2.3.1) ##### Bug Fixes - **reader:** remove foliate allow-scripts and add CSP for EPUB resources ([5448205](https://github.com/grimmory-tools/grimmory/commit/5448205045bc893d0cb80e8bf6cacf91d57079f2)) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/Chicago) - 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNiIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkb2NrZXIiXX0=-->
renovate-bot added the docker label 2026-04-22 22:06:26 +00:00
renovate-bot added 1 commit 2026-04-22 22:06:27 +00:00
chore(deps): update grimmory to v3
All checks were successful
lint-test-helm / lint-helm (pull_request) Successful in 46s
lint-test-helm / validate-kubeconform (pull_request) Successful in 39s
8b562b5ad2
All checks were successful
lint-test-helm / lint-helm (pull_request) Successful in 46s
lint-test-helm / validate-kubeconform (pull_request) Successful in 39s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/major-unified-grimmory:renovate/major-unified-grimmory
git checkout renovate/major-unified-grimmory
Sign in to join this conversation.