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
Beta — feedback welcome: [email protected]