3.3.0 (2026-08-06)
This minor release of Grimmory has a large number of bug fixes, features, and refactors to prepare for the performance improvements we're looking to make in the near future. We've made a lot of improvements to our Hardcover and RanobeDB metadata parsers, fixed over twenty outstanding bugs, and have also added Korean and Czech language support.
Changelog
Full Changelog: v3.2.4...v3.3.0
Features
- author: derive and store author sort name on save (#1897) (
55b9d34) - language: use consistent language normalization across the frontend (#2258) (
1d707ff) - metadata: improve RanobeDB search (#1804) (
b68e022) - metadata: improve hardcover edition selection (#1800) (
fbd1d5e) - ui: app-menu based shelf assignment component (#2058) (
daae463) - emit actual koreader device / device ID (#2025) (
e978098)
Internationalization
Bug Fixes
- amazon: parse kindle ebook metadata (#2201) (
4d4df8c) - api: avoid
missing-cover.jpgwhen getting book thumbnails (#2256) (1420634) - api: use safer default file naming pattern (#2252) (
be2ac14) - api: emit 401 on bad credentials during login (#2130) (
3376d33) - api: ensure JWTs always have a unique JWT ID (#2246) (
5a6b0e5) - api: handle exceptions with status codes (#2160) (
6056f8f) - api: ignore unused tasks to stop warnings (#2213) (
38a0c47) - db: add explicit collation for icon map migration (#1944) (
0792e0b) - docker: disable heap dumps by default (#2027) (
1ff4619) - epub: ignores non-publication dates for published metadata (#2226) (
c077551) - epub: remove refines when referenced elements are removed (#2048) (
9dd8bcc) - fb2: prioritize explicit cover binary elements (#2230) (
106a2eb) - fb2: use base64 decoder aware of newlines (#2229) (
027ac6c) - magic-shelf: remove OPDS permission gate (#2144) (
f410ecb) - magic-shelf: remove timestamp from magic shelf date checks (#2097) (
8edf135) - metadata: require Google Books API key (#1795) (
4df5816) - properly flush books during detach (#2085) (
f1f86bc) - ranobedb: prioritize English results (#2133) (
068d006) - resolve timezone offset in reading session heatmap tooltip (#1870) (
2e4f85c) - support
getAuthenticatedUser()in OPDS (#2041) (108c5c1) - ui: add missing page titles (#2073) (
dbc0ccc) - ui: drop chartjs plugin datalabels (#2021) (
15446a8) - ui: prevent ng-deep overrides from hiding upload modal text (#2227) (
754637a) - use expected ranobedb rate limit (#2051) (
e28b911)
Refactors
- api: migrate away from nightcompress (#2103) (
134e97f) - books: add /api/v1/books/facets endpoint (#1898) (
d2c0836) - books: add /api/v1/books/ids select-all endpoint (#1899) (
30d8760) - books: frontend book query service and pagination basics (#2094) (
111670e) - books: initial book command service and shared command options (#2168) (
cb88558) - books: paginate /api/v1/books/page with cursor, sort, facet, search (#1853) (
ef51479) - covers: consolidate cover images into app-cover (#1928) (
b4570e3) - epub: use archiveservice instead of epub4j to read archive (#2066) (
b67b32a) - ui: autocomplete pagination and infinite scroll (#1965) (
0b1fa83) - ui: rebuilt app-menu to angular aria template-based component (#2044) (
0b71406) - ui: migrate controls to lucide (#1840) (
891f900) - ui: mobile enhancements to UI controls (#1916) (
88faeb6) - ui: new page header component and page size foundation (#1966) (
a1a6031) - ui: switch library and shelf menu to app-menu (#2057) (
0acd8bc) - ui: use
app-coverfor metadata searcher (#2254) (68f024b) - ui: simplify control transition guard (#2171) (
d77a580)
Chores
- drop unused demo-user permission (#2045) (
f2b64c1) - drop unused jsoup connection factory (#2151) (
6417224) - icons: remove bundled svgs and migrate preferences to default library (#1929) (
9c59e91) - repo: add
just ui dev-unsafecommand (#2142) (1b911b0) - ui: drop unused
missing-cover.jpg(#2260) (41f6c93) - ui: drop unused
secure-srcdirecctive (#2255) (5898153) - use
SERVER_PORTenv var for listening port (#2018) (74642c1) - use
grimmory.localfor fake email domains (#2023) (ef707ab) - use
Grimmorybranding for basic auth realms (#2049) (a078fd5) - use
grimmoryin sidecar generatedby (#2024) (2859e4e) - use
Grimmorybranding for fallback koreader device / device ID (#2026) (bd478ce) - use Grimmory user agent for comicvine / ranobedb / fileservice (#2014) (
9e3c503)
Dependencies
- deps: bump @analogjs/vite-plugin-angular from 2.6.2 to 2.6.3 in the frontend group (#1985) (
7e6e027) - deps: bump @angular/* from 21.2.18 to 21.2.19 (#2240) (
7b0dfed) - deps: bump actions/cache/restore from 5.0.5 to 6.1.0 (#1982) (
a451984) - deps: bump actions/cache/save from 5.0.5 to 6.1.0 (#1904) (
4bd4542) - deps: bump actions/checkout from 6.0.3 to 7.0.0 (#1925) (
0e483a2) - deps: bump actions/checkout from 7.0.0 to 7.0.1 (#2208) (
349a0c3) - deps: bump actions/setup-java from 5.2.0 to 5.4.0 (#1908) (
c94fc1a) - deps: bump actions/setup-java from 5.4.0 to 5.6.0 (#2205) (
ccc3746) - deps: bump actions/setup-node from 6.4.0 to 7.0.0 (#2207) (
86bf550) - deps: bump azure/setup-helm from 5.0.0 to 5.0.1 (#1906) (
efd8280) - deps: bump codeql from 4.36.2 to 4.36.3 (#1922) (
9838041) - deps: bump com.github.ben-manes.versions from 0.54.0 to 0.56.0 in /backend in the gradle-dependencies group (#2179) (
9d78cba) - deps: bump conventional-changelog-conventionalcommits from 10.2.0 to 10.2.1 in the release-tooling group across 1 directory (#1970) (
35959a6) - deps: bump conventional-changelog-conventionalcommits from 9.3.1 to 10.2.0 in the release-tooling group across 1 directory (#1919) (
5733d43) - deps: bump docker/build-push-action from 7.2.0 to 7.3.0 (#1926) (
4a2aa1f) - deps: bump docker/login-action from 4.2.0 to 4.4.0 (#1981) (
82d5313) - deps: bump docker/metadata-action from 6.1.0 to 6.2.0 (#1923) (
eb28439) - deps: bump docker/setup-buildx-action from 4.1.0 to 4.2.0 (#1924) (
c389c7b) - deps: bump docker/setup-qemu-action from 4.1.0 to 4.2.0 (#1905) (
e381ce5) - deps: bump github/codeql-action from 4.36.3 to 4.37.0 (#1980) (
01687be) - deps: bump github/codeql-action from 4.37.0 to 4.37.3 (#2206) (
a4ba65c) - deps: bump grimmory-epub4j to 1.5.0 (#2163) (
a7a8464) - deps: bump semantic-release from 25.0.5 to 25.0.7 in the release-tooling group (#2042) (
2cfe5d2) - deps: bump semantic-release from 25.0.7 to 25.0.8 in the release-tooling group (#2089) (
9741c6d) - deps: bump taiki-e/install-action from 2.81.11 to 2.82.7 (#1907) (
263e54f) - deps: bump taiki-e/install-action from 2.82.7 to 2.83.1 (#1983) (
6154d3e) - deps: bump taiki-e/install-action from 2.82.7 to 2.85.4 (#2204) (
61e9da7) - deps: bump the frontend group across 1 directory with 10 updates (#2101) (
bf093b9) - deps: bump the frontend group across 1 directory with 18 updates (#2043) (
d3c0c29) - deps: bump the frontend group with 10 updates (#2181) (
51afd6c) - deps: bump the frontend group with 14 updates (#1972) (
fa72429) - deps: bump the frontend group with 19 updates (#1921) (
d28aea3) - deps: bump the gradle-dependencies group across 1 directory with 4 updates (#1920) (
db20fcc) - deps: bump the gradle-dependencies group across 1 directory with 8 updates (#2008) (
634e9e2) - deps: bump the gradle-dependencies group in /backend with 3 updates (#2090) (
ce79661) - deps: bump the release-tooling group across 1 directory with 2 updates (#2180) (
2e04b1a) - deps: drop deprecated angular packages (#2242) (
b18c444) - deps: replace
tailwindcss-primeuiwithoptimus-ui-tailwindcss(#2175) (8152cd4) - deps: switch PrimeNG to Optimus UI (#2093) (
cc8a53b) - deps: update pnpm to 11.18.0 (#2193) (
2e60cb4) - fix pnpm peer dependency issues (#2074) (
9be80a4)
Documentation
- update instructions on bug reports (#2184) (
99f21b5) - drop agent instructions (#2053) (
840837a) - use actual docker tags instead of fake examples (#2139) (
edacce6)
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 @ftibi93 @imnotjames @NichaesMol @nightt5879 @pyrox0 @sabrina553 @terminalchai @zachyale @zanivann
New Contributors
- @terminalchai made their first contribution in #1795
- @NichaesMol made their first contribution in #1804
- @nightt5879 made their first contribution in #2027
- @pyrox0 made their first contribution in #2075
- @zanivann made their first contribution in #1870
- @ftibi93 made their first contribution in #2073