Skip to content

Releases: grimmory-tools/grimmory

Release v3.2.0

04 Jun 22:14
Immutable release. Only release title and notes can be modified.
3971ea0

Choose a tag to compare

3.2.0 (2026-06-04)

Features

  • helm: support external MariaDB (#1068) (4afc738)
  • kobo: add subtitle to KoboBookMetadata (#1543) (e4bf4c5)
  • pdf-reader: add manual save to the top bar functionality for document edits (#1426) (0e76b38)
  • ui: light mode and new theming system (#1468) (22ff6d8)
  • ui: move settings button to sidebar footer row (#1469) (62c1435)
  • ui: OLED dark mode variant (#1560) (5e0eac5)
  • ui: sync profile locale and theme preferences (#1604) (d6d18aa)
  • users: store locale and theme preferences on the backend (#1571) (ad63a95)

Bug Fixes

  • api: clear EntityManager before deleting books (#1467) (f9d9000)
  • api: flush/clear EntityManager after deleting books (#1453) (754bdb8)
  • audit-logs: refresh table reactively (#1611) (5b79e12)
  • auth: centralize token handling in auth service (#1534) (db64539)
  • author-browser: convert AuthorMatchComponent state to signals (#1581) (1018549)
  • email: pass correct mail properties for SSL transport (#1378) (150dcf4)
  • file-imports: Properly group multi-file audiobooks imported via the folder watcher (#1489) (fbbcd3f)
  • goodreads: use autocomplete endpoint for metadata provider (#1456) (673f008)
  • i18n: align translation domain structure (#1605) (099873a)
  • i18n: update Hardcover sync translations for clarity (#1640) (3971ea0)
  • kobo: limit kobo shelf additions to permissible books (#1423) (4980391)
  • kobo: update resources to match live values (#1502) (3211d78)
  • logo: set logo bookmark colour based on theme (#1511) (91c248f)
  • metadata: match new lubimyczytac HTML for search (#1608) (9b879af)
  • metadata: NPE when updating book without files (#1446) (be9b141)
  • metadata: replace iterator calls with getFirst() (#1305) (4055059)
  • opds: add audiobook covers for opds navigation (#1425) (21f3b0b)
  • reader: improve header layout and responsiveness in the reader (#1415) (b210265)
  • reader: prevent 'x' shortcut from closing reader while typing notes (#1387) (453a5b8)
  • readers: create reader-specific chrome colours (#1493) (7a3a3ba)
  • reader: visual feedback for tools selected (#1394) (c926582)
  • settings: hide opds, email, and device settings tabs when users lacks relevant perms (#1488) (413f12b)
  • ui: add version number overflow handling (#1625) (9d30913)
  • ui: backfill legacy appearance theme to system (#1510) (3726793)
  • ui: convert book metadata suggestions to signals (#1583) (32acb61)
  • ui: dashboard empty icon colour in light mode (#1600) (49239a1)
  • ui: filter sidebar width narrow bug + UI polish (#1470) (7da24d1)
  • ui: handle author adding when books are added (#1572) (49a7593)
  • ui: proper favicon format for bookmarks (#1432) (f202939)
  • ui: stats light mode theming (#1533) (bd9f99a)
  • ui: update file type tag links to book type (#1530) (d22a6d6)
  • ui: use signals for OPDS users to improve reactivity (#1544) (fe51328)
  • user-management: render loaded content restrictions (#1623) (24079f0)

Performance

  • frontend: optimize initial bundle size with lazy-loaded dialogs and localized chart providers (#1110) (c6cbdcf)

Refactors

  • api: avoid using objectmapper on TaskCreateRequest (#1509) (fa64030)
  • api: use spring objectmapper...
Read more

Release v3.1.0

15 May 00:01
Immutable release. Only release title and notes can be modified.
273be54

Choose a tag to compare

3.1.0 (2026-05-14)

This release of Grimmory: features a redesigned sidebar, supports personal ratings from native Kobo devices, has fixes for the book browser sorting/filtering, prevents a PDF corruption bug, swaps the PWA icons to use the light theme for better iOS support, and more.

Changelog

Full Changelog: v3.0.3...v3.1.0

Features

  • deploy: add healthchecks to docker, docker compose, podman quadlet, and helm chart (#1137) (c665359)
  • kobo: sync personal ratings from kobo (#1165) (7de39b8)
  • oidc: add configurable mobile redirect URI to the admin settings UI (#1287) (ff5f054)
  • pdf-reader: PDF reader for vertical/infinite scroll layouts and improved responsiveness (#841) (64945c0)
  • ui: add enhanced user popover + rearrange sidebar (#1246) (1042cad)
  • ui: add native control CSS system + button/text/tab examples (#1267) (a0a7100)
  • ui: New sidebar & search UI (#831) (f3138a8)

Bug Fixes

  • api: expose version from jar at /v1/version endpoint (#1224) (90547df)
  • avoid parsing access token on frontend during login (#1201) (60ffb09)
  • books: include physical books in app book list query (#938) (218ebb4)
  • frontend: unify custom metadata fetch dialog flow (#1088) (237171f)
  • kobo: add endpoints for devices to run with proxy off (#1052) (de93200)
  • koreader: use a timing-safe comparison for koreader password (#1154) (564ff93)
  • metadata: handle non-standard OPF locations (#1256) (f086964)
  • metadata: ignore non-results when parsing audble (#1081) (25bcc09)
  • metadata: truncate review data before storage (#1086) (d355f73)
  • pdf: update pdfium4j version to 1.2.0 and improve XMP metadata extraction (#1285) (a02499a)
  • pwa: swap PWA icons to light theme (#1122) (2fcbb5c)
  • regenerate-covers: wrap book query stream in transaction to prevent lazy init exception (#916) (2dcbfd1)
  • sidebar: add the notification badge to the sidebar (#1299) (168c915)
  • ui: add square audiobook artwork in command palette (#1099) (ddd3d6a)
  • ui: fix metadata lock patch (#1265) (81b423b)
  • ui: fix series page layout and grid (#1192) (95ef4db)
  • ui: fix sidebar height and button inconsistency (#1103) (e4c7eb9)
  • ui: fix upload books height and scroll issue (#1104) (1f3d776)
  • ui: mobile UI enhancements (#1184) (d792d32)
  • ui: refine mobile sidebar layout (#1100) (0d1a4ca)
  • ui: retrieve full size cover in series page component for hero banner (#1176) (da0d41b)
  • ui: revert to UI-based filtering & sorting (#935) (de96fd8)
  • ui: sidebar active outline consistency (#1093) (b228513)

Refactors

  • api: avoid polynomial regex issue in CustomFontService (#1042) (0edb544)
  • api: rename KOReader sync references from booklore to grimmory (#1085) (aec6d69)
  • api: replace FQNs with proper imports (#1206) (2deb25a)
  • docker: consolidate JVM options into JAVA_TOOL_OPTIONS (#1074) (efb2e1c)
  • jpa: apply Hibernate-safe equals and hashCode implementations (#1089) (76c6ca7)
  • metadata: make bookId and authorId/categoryId/shelfId final and adjust constructors (#968) (633f011)
  • metadata: replace Spring JSON processor with Jackson for leaner prod image (#905) (b9cb791)
  • stats: push bulk queries to streams, deduplicate aggregation logic (#937) (30f3a68)
  • ui: create shared grid layout for author/series/book browser (#1193) (3ecf312)
  • ui: native angular menu component + usage in sidebar (#1229) (e8c56e2)
  • ui: remove mobile-specific grid size controls (#1105) (3f3beaf)
  • ui: restore deferred ...
Read more

Release v3.0.3

02 May 05:09
Immutable release. Only release title and notes can be modified.
08450fa

Choose a tag to compare

3.0.3 (2026-04-25)

This release of Grimmory has various usability fixes for the CBX and PDF readers, fixes a crash when loading some CBX files, adds fields back to the book browser table - among other fixes and code clean ups.

Changelog

Full Changelog: v3.0.2...v3.0.3

Bug Fixes

ui: allow self frame-src for pdf doc mode (#901) (ed35da2)
ui: fall back the book sorting service to primary file (#944) (7da3377)
ui: virtual grid scroll restore (#948) (005d2f0)
ui: use signals to unfreeze library loading component (#964) (4001b04)
ui:: prevent console error when leaving reader (#956) (f359e49)
ui:: prevent directory picker folder clicks selecting (#986) (0fad5c1)
ui: add back the dashboard scroller scrollbar (#983) (2936d28)
comicvine: update Comicvine ID handling for issues and volumes in metadata extraction (#864) (661672b)
cbx: drain NightCompress InputStream before closing (#1004) (12e721f)
cbx-reader: fix two-page layout + navigation (#1030) (bc05738)
books: add missing book metadata fields (#1032) (08450fa)
repositories: add automatic flushing to delete methods in various repositories (#791) (183c688)

Refactors

api: use package imports in more situations (#899) (df40f84)
specifications: replace dynamic array creation with static empty arrays for improved performance (#883) (2cfcc64)
ui: unify author/series/book browsers using tanstack virtual (#941) (d256fbf)
metadata: avoid regex for AmazonBookParser (#926) (bf7c2d8)
metadata: avoid polynomial regexes in ComicvineBookParser (#930) (dce13b1)
api: replace Stream.collect(Collectors.toList()) with Stream.toList() (#977) (125b2c6)
styles: unify scrollbar styles (#990) (9e14f3b)
security: replace JWT library with Nimbus JOSE and improve token validation (#911) (491df47)
regex: replace string manipulation with regex patterns for improved clarity and performance (#869) (b22fa38)

Chores

deps: bump postcss from 8.5.8 to 8.5.12 in /frontend (#918) (95cd73d)
ui: replace showdown markdown renderer (#936) (75568d3)
helm: switch MariaDB chart to CloudPirate (#881) (da99788)

Style

api: replace ignored exceptions with Java's unnamed pattern (_) (#976) (72cd021)

Contributors

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

Including but not limited to: @alexhb1 @balazs-szucs @zachyale @thibaultamartin @imnotjames

Release v3.0.2

26 Apr 02:20
Immutable release. Only release title and notes can be modified.
08156bb

Choose a tag to compare

3.0.2 (2026-04-26)

This release of Grimmory has fixes for the Content-Security-Policy issue seen in 3.0.1 which caused a lack of styling.

Bug Fixes

  • ui: add 'self' to worker-src for our angular worker (#894) (08156bb)
  • ui: disable critical-inlining to prevent CSP failure (#893) (6b8d916)

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

Release v3.0.1

25 Apr 23:53
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Caution

We've identified a bug in this release related to the Content-Security-Policy which prevents usage of the UI.

Please use the v3.0.2 release instead.

3.0.1 (2026-04-25)

This release of Grimmory contains bug fixes & dependency updates.

Of note, this release fixes bugs affecting the series listing page, the iOS mobile browser reading experience, and the Kobo Sync reading progress experience.

However, there's a number of other fixes and changes which are detailed below.

Changelog

Full Changelog: v3.0.0...v3.0.1

Bug Fixes

  • api: improve sort feature parity of AppBookService (#828) (c6e8c4d)
  • api: use configurable upload limit for author photo / book cover (#783) (55f2255)
  • api: use correct field for lastReadTime (#779) (a3616c9)
  • file-move: clean up emptied source folders after sidecar move (#822) (019f13f)
  • kobo-sync: use KoboSpan for progress sync (#253) (cc83bd2)
  • kobo: fix epub cfi parsing for kobo progress sync (#861) (33dd36d)
  • kobo: fix progress sync graph error (#858) (950736a)
  • metadata: hide sidecar tab when sidecar json is disabled (#814) (7958232)
  • metadata: improve fallback logic for blank or null titles in metadata extraction, bump pdfium4j to 0.16.0 (#839) (5220803)
  • metadata: read proper description field for LubimyCzytac (#877) (137686e)
  • reader: fix kobo progress race + apply in-chapter progress (#859) (44ed090)
  • reader: use CSP for protecting foliate instead of iframe sandbox (#848) (fc02d4d)
  • ui: drop hard coded author/cover image upload limits (#782) (4bcbf8a)
  • ui: stabilize series browser virtual scroll (#873) (4f7c85c)

Refactors

  • kobo: update book recommendation and initialization resource handling to use entry sets (#870) (2bfc28a)
  • nativelib: implement JVM-wide native library availability checks and management (#790) (9e12432)

Chores

  • deps: update Spring Boot version to 4.0.6 and adjust testing behavior for new version (#833) (0ff7ce5)
  • deps: bump the npm-dependencies group across 1 directory with 13 updates (#825) (0977279)
  • deps: bump the npm-dependencies group across 1 directory with 35 updates (#764) (3bce715)
  • deps: drop deprecated npm package @types/dompurify (#827) (ebc6aab)
  • deps: remove unused dependencies from package.json and yarn.lock (#843) (adebd07)
  • dev: support accessing the dev server from non-localhost (#887) (36cc340)
  • drop CHANGELOG.md (#798) (d72e1a8)
  • repo: add coderabbit.yaml and transloco review rules (#829) (cf36411)

Contributors

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

Including but not limited to: @zachyale @alexhb1 @balazs-szucs @imnotjames

Release v3.0.0

22 Apr 21:53
Immutable release. Only release title and notes can be modified.
62434c5

Choose a tag to compare

3.0.0 (2026-04-22)

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)
    *...
Read more

Release v2.3.1

22 Apr 21:13
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

2.3.1 (2026-04-22)

Bug Fixes

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

Release v2.3.0

21 Mar 02:18
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

2.3.0 (2026-03-21)

Features

  • release: document develop-based stable release previews (930e526)

Bug Fixes

  • api: fix potential memory leaks in file processing (031e8ae)
  • ci: correct artifact download action pin (37ca101)
  • ci: publish PR test results from workflow_run (11a76bf)
  • ci: repair release preview and test result publishing (afa5b81)
  • drop telemetry from app (#52) (4d82cb7)
  • ui: repair frontend compile after rebrand (fea1ec6)

Refactors

  • build: rename frontend dist output to grimmory (ecf388f)
  • i18n: rename booklore translation keys to grimmory (eb94afa)
  • metadata: move default parser from Amazon to Goodreads (e252122)
  • pull kepubify & ffprobe during build (#50) (1c15629)
  • ui: rebrand frontend surfaces to grimmory (d786dd8)

Chores

  • api: remove the custom startup banner (98c9b1a)
  • deps: bump flatted from 3.4.1 to 3.4.2 in /booklore-ui (#73) (c4bd0c7)
  • funding: point support links at opencollective (55c0ac0)
  • release: 2.2.7 [skip ci] (0b5e24c)
  • remove old verbose PR template, replace with temporary more low-key one. (#84) (b868526)
  • ui: drop financial support dialog (#21) (62be6b1)

Documentation

  • updated supported file formats in README.md (#68) (f912e80)

Style

  • i18n: normalize translation json formatting (#89) (857290d)
  • ui: simplify the topbar logo branding (0416d48)

Release v2.2.7

21 Mar 01:59
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

2.2.7 (2026-03-21)

Bug Fixes

  • api: fix potential memory leaks in file processing (031e8ae)
  • ci: correct artifact download action pin (37ca101)
  • ci: publish PR test results from workflow_run (11a76bf)
  • drop telemetry from app (#52) (4d82cb7)
  • ui: repair frontend compile after rebrand (fea1ec6)

Refactors

  • build: rename frontend dist output to grimmory (ecf388f)
  • i18n: rename booklore translation keys to grimmory (eb94afa)
  • metadata: move default parser from Amazon to Goodreads (e252122)
  • pull kepubify & ffprobe during build (#50) (1c15629)
  • ui: rebrand frontend surfaces to grimmory (d786dd8)

Chores

  • api: remove the custom startup banner (98c9b1a)
  • deps: bump flatted from 3.4.1 to 3.4.2 in /booklore-ui (#73) (c4bd0c7)
  • funding: point support links at opencollective (55c0ac0)
  • remove old verbose PR template, replace with temporary more low-key one. (#84) (b868526)
  • ui: drop financial support dialog (#21) (62be6b1)

Documentation

  • updated supported file formats in README.md (#68) (f912e80)

Style

  • i18n: normalize translation json formatting (#89) (857290d)
  • ui: simplify the topbar logo branding (0416d48)

Release v2.2.6

20 Mar 22:21
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

2.2.6 (2026-03-20)

Bug Fixes

  • bookservice: fix of missing cover images by returning ByteArrayResource (#59) (b658a0a)