github grimmory-tools/grimmory v3.4.0
Release v3.4.0

2 hours ago

3.4.0 (2026-09-14)

Grimmory 3.4.0 introduces OpenLibrary & Apple Books Metadata Providers, fixes the existing GoodReads & Douban Metadata Providers, fixes bugs with epub generation, handles non-UTF8 headers in archives, and more.

Changelog

Full Changelog: v3.3.3...v3.4.0

Features

  • kobo: show full Kobo API path in sync settings (#2381) (852da00)
  • metadata: initial implementation of Apple Books source (#1780) (0660e1d)
  • metadata: initial implementation of OpenLibrary source (#1764) (9b38a09)
  • opds: add pagination to authors / series navigation (#2315) (7d768a2)
  • api: add paged books sorts for author name / author sort name (#2497) (f44a7df)
  • api: add paged books random sort (#2451) (0e67549)

Bug Fixes

  • amazon: emit external Amazon URL with region domain (#2330) (4c160cd)
  • archive: handle non-utf8 ZIP headers with apache ZIP library (#2520) (0279c15)
  • cbx: use natural compare that handles numbers larger than int (#2536) (11224eb)
  • douban: ignore extraneous data when parsing window data (#2516) (d75c128)
  • epub: add applebooks ID to template content.opf (#2616) (a1b6233)
  • epub: handle duplicate zip entries when extracting epubs (#2526) (75495bf)
  • epub: handle literal + when decoding URLs (#2618) (ce18ce3)
  • epub: no flattening when sorting opf document elements (#2611) (0b887ae)
  • epub: support cover edits when media type changes (#2281) (828806a)
  • epub: support cover edits when no previous cover (#2278) (e963f28)
  • goodreads: refresh goodreads public api token (#2477) (8362a90)
  • i18n: use correct value for magicshelf.metadataFields.applebooksId (#2609) (0ca234d)
  • library: refresh file size and hash for in-place modified files (#2490) (7a9cd31)
  • magic-shelf: keep rule value on compatible operator change (#2604) (81a40fd)
  • sidecar files are not written when only cover changes (#2567) (b3574cc)
  • ui: add show/hide toggle to admin change-password dialog (#2612) (7163761)
  • ui: logout needs access token before clearing session (#2340) (bc5616f)
  • ui: use OIDC client secret if included in settings (#2557) (32b6384)

Refactors

  • api: add missing book facet fields (#2469) (e60bb82)
  • api: add missing book sorts (#2554) (14b45a2)
  • cbx: only use ArchiveService for CBXReaderService (#2395) (a88982b)
  • googbooks: move google books key to HTTP header (#2533) (ed8f7b3)
  • i18n: combine localization files into one JSON per language (#2498) (9bf8ca9)
  • metadata: normalize metadata provider language fields to BCP-47 (#2259) (8c24d69)
  • move OIDC client secret to non public app setting (#2558) (53abc8b)
  • settings: simplify app settings service (#2527) (1ee9b51)

Chores

  • api: add extra XSS protections to SVG icon endpoint (#2433) (f8c45da)
  • api: drop unused LibraryScanListener (#2434) (e0c8118)
  • backend: remove unused LoginRateLimitService (#2613) (9d239c3)
  • i18n: migrate translations from Weblate to Crowdin (#2568) (41c612c)
  • settings: drop installation service / migrations (#2528) (703c7f2)

Dependencies

  • deps: update to Angular 22 and adopt APIs (#2468) (3cc29fc)
  • deps: bump @tanstack/angular-query-experimental from 5.101.4 to 5.102.8 (#2552) (3724713)
  • deps: bump @vitest/coverage-v8 from 4.1.10 to 5.0.0 (#2547) (4a066e7)
  • deps: bump actions/checkout from 7.0.0 to 7.0.1 (#2503) (bceed0b)
  • deps: bump actions/setup-java from 5.6.0 to 5.7.0 (#2449) (5c535d8)
  • deps: bump actions/setup-java from 5.7.0 to 6.0.0 (#2504) (3725ca7)
  • deps: bump angular to 21.2.20 (#2420) (9960d2c)
  • deps: bump com.twelvemonkeys.imageio from 3.14.0 to 3.15.0 in /backend (#2587) (d528d2f)
  • deps: bump conventional-changelog-conventionalcommits from 10.3.0 to 10.4.0 in the release-tooling group (#2439) (8ff933c)
  • deps: bump docker/login-action from 4.4.0 to 4.6.0 (#2444) (ea80fc0)
  • deps: bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (#2441) (9f6754f)
  • deps: bump docker/setup-qemu-action from 4.2.0 to 4.3.0 (#2549) (ac68da1)
  • deps: bump eslint from 10.8.1 to 10.9.1 (#2542) (464a259)
  • deps: bump github/codeql-action/analyze from 4.37.3 to 4.37.7 (#2443) (b34ac76)
  • deps: bump gradle-wrapper from 9.7.0 to 9.7.1 in /backend in the gradle-dependencies group (#2442) (b941693)
  • deps: bump lucide-static from 1.31.0 to 1.40.0 (#2546) (7d4662b)
  • deps: bump markdown-it from 15.0.0 to 15.0.1 (#2544) (5186f85)
  • deps: bump org.flywaydb:flyway-mysql from 13.3.0 to 13.5.0 in /backend (#2548) (f8d6f75)
  • deps: bump org.freemarker:freemarker from 2.3.34 to 2.3.35 in /backend (#2541) (3432178)
  • deps: bump org.hibernate.orm from 7.4.6.Final to 7.4.7.Final in /backend (#2550) (9fdf424)
  • deps: bump org.jsoup:jsoup from 1.23.1 to 1.23.2 in /backend (#2545) (e7b8482)
  • deps: bump org.projectlombok:lombok from 1.18.46 to 1.18.48 in /backend (#2543) (e40f067)
  • deps: bump org.springdoc:springdoc-openapi-starter-webmvc-api from 3.1.0 to 3.1.1 in /backend (#2583) (83dede5)
  • deps: bump taiki-e/install-action from 2.85.4 to 2.86.4 (#2440) (60e59e4)
  • deps: bump taiki-e/install-action from 2.86.4 to 2.87.1 (#2502) (ffa9440)
  • deps: bump taiki-e/install-action from 2.87.1 to 2.87.5 (#2551) (2b843fa)
  • deps: bump the codeql group with 2 updates (#2501) (4e28fde)
  • deps: bump the gradle-dependencies group in /backend with 3 updates (#2474) (aa58069)
  • deps: bump uuid from 14.0.1 to 14.0.2 (#2540) (14454c3)
  • deps: bump vitest from 4.1.10 to 4.1.11 (#2578) (1d2c5a8)
  • deps: update pnpm to 11.19.0 and pnpm/action-setup to 6.0.10 (#2445) (fcc4d9c)
  • pin angular table to v8 (#2422) (1766f87)

Documentation

CI

Build

  • properly include LICENSE information during docker builds (#2579) (76bd4e8)

Contributors

We'd like to thank the contributors for this release for taking the time to make Grimmory better.

Including but not limited to: @imnotjames @alexhb1 @davemachado @zachyale @benjitobz

New Contributors

Don't miss a new grimmory release

NewReleases is sending notifications on new releases.