This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+12 more
Summary
AI summaryPrevents PDF corruption and adds healthchecks to Docker, Helm chart, podman quadlet deployments.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Redesigned sidebar and search UI Redesigned sidebar and search UI Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Supports personal ratings from native Kobo devices Supports personal ratings from native Kobo devices Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
PDF reader for vertical/infinite scroll layouts with improved responsiveness PDF reader for vertical/infinite scroll layouts with improved responsiveness Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Adds healthchecks to Docker, Docker Compose, Podman quadlet, and Helm chart Adds healthchecks to Docker, Docker Compose, Podman quadlet, and Helm chart Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Configurable mobile redirect URI in admin settings UI for OIDC Configurable mobile redirect URI in admin settings UI for OIDC Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Dependency | Medium |
Bumps various dependencies including @semantic-release/release-notes-generator and azure/setup-helm Bumps various dependencies including @semantic-release/release-notes-generator and azure/setup-helm Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fixes book browser sorting/filtering issues Fixes book browser sorting/filtering issues Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Includes physical books in app book list query Includes physical books in app book list query Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Handles non-standard OPF locations in metadata parsing Handles non-standard OPF locations in metadata parsing Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Ignores non-results when parsing Audible metadata Ignores non-results when parsing Audible metadata Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Truncates review data before storage Truncates review data before storage Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fixes metadata lock patch issue Fixes metadata lock patch issue Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Corrects series page layout and grid inconsistencies Corrects series page layout and grid inconsistencies Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Enhances mobile UI for better responsiveness Enhances mobile UI for better responsiveness Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Reverts to UI-based filtering & sorting Reverts to UI-based filtering & sorting Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Prevents PDF corruption bug Prevents PDF corruption bug Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Swaps PWA icons to light theme for better iOS support Swaps PWA icons to light theme for better iOS support Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Uses timing-safe comparison for Koreader password Uses timing-safe comparison for Koreader password Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Updates pdfium4j version to 1.2.0 and improves XMP metadata extraction Updates pdfium4j version to 1.2.0 and improves XMP metadata extraction Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Adds notification badge to sidebar Adds notification badge to sidebar Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Resolves sidebar height and button inconsistency problems Resolves sidebar height and button inconsistency problems Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Fixes upload books height and scroll issue Fixes upload books height and scroll issue Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Refines mobile sidebar layout adjustments Refines mobile sidebar layout adjustments Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Retrieves full-size cover in series page component for hero banner Retrieves full-size cover in series page component for hero banner Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Refactor | Medium |
Creates shared grid layout for author/series/book browser Creates shared grid layout for author/series/book browser Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Refactor | Medium |
Uses tanstack virtual+table for book browser table view Uses tanstack virtual+table for book browser table view Source: llm_adapter@2026-05-21 Confidence: high |
— |
Full changelog
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: https://github.com/grimmory-tools/grimmory/compare/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/versionendpoint (#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 render state service (#1255) (cac8681)
- ui: use tanstack virtual+table for book browser table view (#1047) (1c99024)
Chores
- deps: add 3 day npm release age gate (#1270) (442e0f9)
- deps: add angular/aria dependency (#1213) (7a62e71)
- deps: bump @semantic-release/release-notes-generator from 14.1.0 to 14.1.1 in /tools/release in the release-tooling group (#1273) (5988910)
- deps: bump @stomp/rx-stomp from 2.3.0 to 2.4.0 (#1144) (0485bce)
- deps: bump azure/setup-helm from 4.3.0 to 5.0.0 (#1275) (342b7d9)
- deps: bump dependencies and gradle wrapper to 9.5.0 (#1204) (319b3a5)
- deps: bump epub4j and epub4j-native versions to 1.4.0 (#1090) (686dd9f)
- deps: bump fast-uri from 3.1.0 to 3.1.2 in /frontend (#1220) (7c5b3da)
- deps: bump github/codeql-action from 4.35.2 to 4.35.3 (#1036) (e1a8109)
- deps: bump github/codeql-action from 4.35.3 to 4.35.4 (#1274) (82704a2)
- deps: bump hono from 4.12.14 to 4.12.18 in /frontend (#1180) (a71ff8c)
- deps: bump ip-address from 10.1.0 to 10.2.0 in /tools/release (#1146) (694747a)
- deps: bump taiki-e/install-action from 2.75.19 to 2.75.27 (#1037) (c355927)
- deps: bump taiki-e/install-action from 2.75.27 to 2.77.6 (#1277) (15d034e)
- deps: bump the gradle-dependencies group in /backend with 2 updates (#1276) (1bf253a)
- deps: bump the npm-dependencies group in /frontend with 17 updates (#1198) (1b19590)
- deps: bump the npm-dependencies on frontend (#1153) (207000d)
- deps: drop unused frontend dev dependencies (#1149) (84b00de)
- docker: bump Gradle version to 9.5.0 in Dockerfile/dev-docker-compose (#1295) (2c81b64)
- docker: drop mariadb container_name property (#1057) (c9b2a57)
- oidc: backfill + add mobile redirect URI whitelist setting to the backend (#1268) (ee3e21c)
- README: clarify quickstart library must be in a host-mounted directory (#1320) (48a5f5f)
- ui: move theme/language preferences into user profile (#1243) (868e8e6)
- ui: rename menu references to sidebar (#1212) (249878b)
- Update default settings tab from reader to view (#1171) (bf3f119)
Documentation
- api: add OpenAPI stability warning (#1321) (c0b5658)
- Fix Link to Quick Start Guide (#1177) (a47e35a)
- github: clarify and expand on the pull request template (#1075) (96b3a77)
- governance: add project rep (#1218) (4646a27)
CI
- docker: rotate Docker Hub auth secrets for token-based publishing (#1179) (7e55825)
- nightly: make Discord notification optional for manual runs (#1322) (273be54)
- release: publish Helm chart as OCI artifact on release (#993) (34eb6ce)
- use last release as nightly base tag (#1226) (ea02baf)
Build
- add gradle lockfile (#1119) (efc7be6)
- ensure gradle version does not have
vprefix (#1080) (108cd19) - ui: drop
ngx-extended-pdf-viewerangular asset config (#1143) (3dae0e0)
Tests
Contributors
We'd like to thank the contributors for this release for taking the time to make Grimmory better.
Including but not limited to: @thibaultamartin @alexhb1 @balazs-szucs @zachyale @imnotjames @aisa @TheBrandonMorris @bussardrobbie @rubengarciam @Michael-Tanzer @hwine
New Contributors
- @aisaiev made their first contribution in https://github.com/grimmory-tools/grimmory/pull/938
- @TheBrandonMorris made their first contribution in https://github.com/grimmory-tools/grimmory/pull/1057
- @bussardrobbie made their first contribution in https://github.com/grimmory-tools/grimmory/pull/1177
- @rubengarciam made their first contribution in https://github.com/grimmory-tools/grimmory/pull/1176
- @Michael-Tanzer made their first contribution in https://github.com/grimmory-tools/grimmory/pull/1085
- @hwine made their first contribution in https://github.com/grimmory-tools/grimmory/pull/1320
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]