Skip to content

Grimmory

Productivity & Wikis

Grimmory is a self-hosted digital library for people who take their reading seriously.

Java Latest v3.1.0 · 20d ago Security brief →

Features

  • Smart Shelves with rule‑based filtering, tagging and full‑text search
  • Metadata Lookup pulling covers, descriptions, reviews from Google Books, Open Library and Amazon (editable)
  • Built‑in Reader for PDFs, EPUBs and comics with annotations, highlights and progress tracking

Recent releases

View all 13 releases →
No immediate action
v3.1.0 Mixed

PDF corruption fix + healthchecks

v3.0.3 Bug fix

Fixed crash when loading certain CBX files.

Full changelog

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: https://github.com/grimmory-tools/grimmory/compare/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

v3.0.2 Bug fix

Fixed Content-Security-Policy failures that stripped UI styling.

Full changelog

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

v3.0.1 Breaking risk
⚠ Upgrade required
  • Immediately upgrade from v3.0.1 to v3.0.2 to resolve the blocking Content‑Security-Policy issue.
Security fixes
  • Critical CSP misconfiguration in v3.0.1 blocks UI rendering
Full changelog

[!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: https://github.com/grimmory-tools/grimmory/compare/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

v3.0.0 Breaking risk
Breaking changes
  • Minimum Node.js version raised to 24 (nvmrc file enforces automatic switch).
Notable features
  • Discord automated release notifications
  • Reading progress endpoints added to mobile API
  • Unraid community app template introduced
Full changelog

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)
  • ci: align github actions with yarn 4 frontend tooling (dcd264c)
  • ci: reduce workflow cache churn (3f9d3e0)
  • clean up import in AuthenticationSettingsComponent (49101b7)
  • collapse-series: fix series collapsing (#541) (e26df36)
  • dashboard: improve performance with OnPush change detection (#440) (85e8d23)
  • devex: add GitHub sign-in note to rc and nightly Discord posts (#572) (52ed009)
  • dto: add DailyListeningDto and update session-related DTOs to use LocalDate (#403) (e2d6c1b)
  • entrypoint: ensure books directory exists and is writable by the target user (#119) (af9beaf)
  • file-mover: fix file mover never updating (#651) (d9d7a18)
  • file: allow physical books to be moved between libraries (#296) (4ce9188)
  • file: deduplicate bookFiles and protect source library root in FileMoveService (#294) (1625055)
  • file: update file type and size retrieval to use primaryFile structure (#383) (707f0a8)
  • filter: add missing filters for: Lubimyczytac, RanobeDB, and Audible ratings, comic specific metadata fields (#647) (4bac913)
  • filter: update filter options to use CountedOption for read statuses and file types (#448) (4a68fa2)
  • fix text overflow with attach-to-book flow when dealing with long titles (#265) (1799493)
  • frontend: fixes library health pinging even when the user is not authenticated (#385) (d502c18)
  • frontend: remove double encoding of series name in URL (#262) (a92459d)
  • hardcover: add series position decimals and use primary books count (#87) (8def367)
  • hardcover: hardcover sync duplicates reads and doesn't update progress (#247) (a261749)
  • hardcover: use hardcover edition based on ISBN for syncing progress (#173) (85c1749)
  • hibernate: improve transaction management and optimize entity fetching (#176) (ad3a981)
  • image-dimension: fix image dimension detection loading whole CBX files into memory (#663) (9236ac9)
  • kobo: add library to entityGraph when fetching books for download (#646) (11e6a35)
  • kobo: default kobo store proxy to "on" (#515) (a32cd54)
  • kobo: handle missing book when pulling kobo metadata (#473) (28dd303)
  • kobo: proxy the /v1/auth/device endpoint (#511) (ba6eb4f)
  • lazy-loading: improve image loading performance with lazy loading and low priority fetch (#431) (2c26bd2)
  • loading: update loading checks to use signal() for reactive state management (#727) (284e7be)
  • logging: change book added event completion log level from info to debug (#532) (928ccff)
  • metadata: add support for audible fields in metadata refresh options (#348) (2ecd352)
  • metadata: fix metadata fetching relying for filename "first" instead of better fields like ISBN in Goodreads/Bookdrop (#85) (4ac1d31), closes #1 #2 #3 #6
  • metadata: include custom namespace fields in file write checks (#257) (339a0c7)
  • metadata: preserve lock states and fallback values in metadata refresh (#258) (3f8a185)
  • metadata: refactor book metadata fetching to use fetch API and signals for state management (#495) (fcee609)
  • metadata: support multiple roles for the same creator in EPUB metadata extraction (#561) (c06dc95)
  • metadata: update book retrieval methods to fix lazy init exception when removing some authors/retrieving metadata from file (#560) (9c3ecc5)
  • mobile: enable pan mode and disable swipe-to-navigate and tap-to-turn-page zones on mobile devices (#742) (fb555d9)
  • packaging: include frontend in the docker build context (00f116a)
  • packaging: keep the frontend compatibility symlink in docker context (237c54b)
  • pdf-reader: localize embedpdf viewer to active app language (#466) (da7fa4b)
  • pdf-viewer: convert component properties to signals for improved reactivity (#475) (846a4b2)
  • pdf-writer: use same-dir temp files and harden cleanup (#719) (9601667)
  • pdf: improve PDF blob handling and improve viewer destruction logic (#506) (68d0b26)
  • reader: add fetchFreshBookDetail method to ensure up-to-date reading position across devices (#358) (4527d43)
  • reader: implement signal-based state management and cleanup in EbookReaderComponent (#435) (a779de8)
  • reader: optimize memory management for canvas and image handling in infinite scrolling (#433) (376ac6f)
  • reader: resolve epub preview runtime and audiobook download failures (#463) (c95b5fa)
  • readers: add chapter caching and improve page rendering (#514) (649c485)
  • release: always publish nightly images on manual runs (#571) (c6d567e)
  • search: replace dropdown with popover for search results and improve visibility handling (#355) (a176be3)
  • security: add access control annotations to various controllers (#312) (145b94d)
  • security: enforce validation on request bodies and tighten JWT issuer checks (7d7a5d9)
  • service: add transactional support to author delete and update methods (#653) (fd00da3)
  • streaming: rewrite file streaming with NIO and HTTP caching (#512) (5bd2e9a)
  • table-view: table-view to also actually select all when users select press all (#645) (791a4ea)
  • transloco-loader: update deepMerge function type definitions (#167) (6ff7275)
  • ui: add missing OIDC group permissions (#487) (39de8e3)
  • ui: enable all OIDC permissions when admin is granted (#517) (27db18a)
  • ui: Fix book scroll judder (#309) (351074f)
  • ui: Fixed the Angular Linter (#138) (0e61057)
  • ui: handle RFC5987 content-disposition headers (#730) (8047f87)
  • ui: improve audible metadata provider detection (#456) (a63328b)
  • ui: parse magic shelf date values as local midnight (#489) (41e1132)
  • ui: properly scale placeholder artwork text with smaller sizes (#531) (6f2b86a)
  • ui: restore frontend verification after eslint cleanup (43389c8)
  • ui: settings forms not reflecting saved values reliably (#648) (78be516)
  • ui: use RFC3330 format for date picker (#491) (6541d41)
  • ui: use signals for duplicate merger (#732) (a03ae72)
  • upload: add ChangeDetectorRef calls to ensure UI updates during file upload process (#557) (bf4fab3)
  • user-settings: fix settings loading errors (#527) (902f5f5)
  • webmvc: avoid index fallback exception for missing public routes (#298) (a3add5d)
  • websocket: add heartbeat scheduling and transport limits (#313) (bfeeef2)

Performance

  • ui: captures some low hanging fruit around excessive re-renders in the app (#158) (8778827)
  • ui: decouple book browser rendering pipeline (#341) (be0b717)

Refactors

  • api: move detect deleted/new books to LibraryFileHelper (#555) (11caa91)
  • api: optimize caching mechanisms and improve book filtering (#372) (3e5a6a9)
  • api: switch to Spring logging filter (#195) (5f06ab9)
  • api: use NightCompress library for reading CBX (#113) (1e0b4d0)
  • api: use Path for FileUtils.getBookFullPath (#209) (97411fa)
  • api: use spring content disposition helper for BookDownloadService (#449) (2637960)
  • cbx-reader: convert properties to signals for improved reactivity and performance/add top/bottom swipe detection (#743) (a9ce7c7)
  • concurrency: improve thread management and locking in monitoring services (#137) (5bcef92)
  • config: remove redundant Spring Boot config and fix injection patterns (#314) (390a372)
  • cover: add async cover notifications, for real time updates (#716) (7a88b12)
  • drop unused standalone comicinfo.xml parser (#218) (66de45c)
  • ebook-reader: optimize destruction handling and improve reactive subscriptions (#478) (1f5f99d)
  • email: replace Booklore References In Email with Grimmory (#434) (a0a7be4)
  • entity: update fetch strategies to LAZY for improved relibility (#122) (b905e82)
  • epub: migrate from documentnode to grimmory epub4j library and update related code (#334) (bff20c5)
  • file: improve path handling and validation (#82) (cbd04ee)
  • frontend: decouple app shell from PrimeNG layout system (#307) (55a6343)
  • frontend: Migrate state to Tanstack Query + signals (#117) (ccb80d7)
  • frontend: rename booklore-ui to frontend (874b013)
  • frontend: repoint repo tooling to the frontend path (42d9dcb)
  • geoip: replace ObjectMapper instantiation with JsonMapper for improved configuration (#139) (aab68d5)
  • icon: fix SVG icons loading straight to memory (#56) (c9c255b), closes #80
  • kobo: create endpoints for non-catchall (#507) (bd7e578)
  • library: implement asynchronous book addition and cover generation with event handling (#329) (536daa9)
  • migrate library-creator component state to signals and enable component unit tests (#476) (f292a3e)
  • pdf-viewer: improve worker and blob handling for better loading of wasm PDFium workers (#333) (74c5bbd)
  • regex: replace string manipulation with Pattern matching for improved readability (#359) (78099cc)
  • SecurityFilter: Stop filters from being registered on all routes (#361) (9ddbe35)
  • service: replace manual caching with Cacheable and JPQL with Criteria API (#316) (02b2087)
  • settings: replace unsubscribe logic with takeUntilDestroyed for better resource management (#443) (7abac02)
  • threads: replace manual thread management with Spring lifecycle (#322) (cf79990)
  • ui: replace SVG artwork placeholders with CSS (#292) (2fd7310)

Chores

  • api: add the base OpenAPI metadata config (#423) (a32ca37)
  • api: drop unused book download proxy (#428) (907ad09)
  • api: drop unused code in AmazonBookParser and AudibleParser (#368) (b05d76d)
  • api: fix typo on openapi doc for healthcheck (#380) (7e796ec)
  • api: Migrate BookCreatorServiceTests to AssertJ and remove unnessesary tests (#229) (2474cdd)
  • banner: add ASCII art banner (#381) (05185ee)
  • build: migrate Gradle build scripts from Groovy to Kotlin DSL (#100) (ff14647)
  • codeql: Initialize a codeql config so we can sort out the caching properly. (2ad937a)
  • dependencies: bump Spring Boot to 4.0.5 and Hibernate to 7.3.0 Final (#223) (4e57719)
  • dependencies: update @embedpdf packages to version 2.12.0 (#325) (84ff595)
  • deps: bump @hono/node-server from 1.19.11 to 1.19.13 in /frontend (#419) (fadc129)
  • deps: bump actions/cache from 4.2.4 to 5.0.4 (40d0076)
  • deps: bump actions/cache from 5.0.4 to 5.0.5 (#762) (317557c)
  • deps: bump actions/setup-node from 6.3.0 to 6.4.0 (#758) (6d6003c)
  • deps: bump actions/upload-artifact from 7.0.0 to 7.0.1 (#763) (a0e2f60)
  • deps: bump conventional-changelog-conventionalcommits (#351) (19223d7)
  • deps: bump docker/build-push-action from 7.0.0 to 7.1.0 (#759) (9834381)
  • deps: bump docker/login-action from 4.0.0 to 4.1.0 (#757) (d2b32ed)
  • deps: bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (3a1cd68)
  • deps: bump dompurify from 3.3.3 to 3.4.0 in /frontend (#536) (7f47b51)
  • deps: bump github/codeql-action from 4.34.1 to 4.35.1 (#332) (4be3311)
  • deps: bump github/codeql-action from 4.35.1 to 4.35.2 (#754) (70b2463)
  • deps: bump handlebars from 4.7.8 to 4.7.9 in /tools/release (#232) (e5ec9d0)
  • deps: bump hono from 4.12.12 to 4.12.14 in /frontend (#535) (91989b5)
  • deps: bump hono from 4.12.9 to 4.12.12 in /frontend (#422) (10c7fac)
  • deps: bump lodash from 4.17.23 to 4.18.1 in /tools/release (#339) (736ed01)
  • deps: bump lodash-es from 4.17.23 to 4.18.1 in /frontend (#344) (f7294bf)
  • deps: bump lodash-es from 4.17.23 to 4.18.1 in /tools/release (#342) (bd58f19)
  • deps: bump taiki-e/install-action from 2.69.10 to 2.71.0 (#331) (f7600e6)
  • deps: bump taiki-e/install-action from 2.69.7 to 2.69.10 (c0fca03)
  • deps: bump taiki-e/install-action from 2.71.0 to 2.75.19 (#756) (365d44e)
  • deps: bump the gradle-dependencies group (#350) (73857a8)
  • deps: bump the gradle-dependencies group across 1 directory with 8 updates (#224) (052c932)
  • deps: bump the gradle-dependencies group across 1 directory with 9 updates (#755) (8b0c3f8)
  • docker: bump Gradle version to 9.4.1 in Dockerfiles (#379) (d254da1)
  • docs: align Discord links with the README (dee8cd9)
  • docs: update Discord invite links (e4fc279)
  • drop booklore-ui symlink (#753) (9c92f54)
  • expand and generate specs for the frontend code section (#242) (a3c5da9)
  • frontend-lint: add local typecheck and stylelint commands (cef000d)
  • frontend-lint: tune stylelint for Angular and legacy SCSS patterns (dc2c1ec)
  • frontend: add missing auth service mock (#226) (4da5f2b)
  • frontend: add temporary booklore-ui compatibility symlink (4ddc567)
  • frontend: fix build warnings + set threshold to zero (#421) (6ab2ad6)
  • github: update bug report template with build selection (#529) (f2b3507)
  • lint: set LINT_ERROR_THRESHOLD to zero (#238) (cb8fa67)
  • nvm: moved .nvmrc file to the repository root (#237) (169c9ff)
  • packaging: simplify dockerignore to a denylist (a735bf1)
  • rename springboot app folder to backend (#752) (1a664dd)
  • sdkman: add Java version 25.0.2-tem to .sdkmanrc (#228) (da88da5)
  • ui: clear eslint angular style guide bucket (68e3df7)
  • ui: clear eslint control flow bucket (ac6b44e)
  • ui: clear eslint empty object type bucket (eba9688)
  • ui: clear eslint empty-function bucket (5dfd1e1)
  • ui: clear eslint expression cleanup bucket (79eef41)
  • ui: clear eslint interaction accessibility bucket (18784fd)
  • ui: clear eslint label-association bucket (b03ecf3)
  • ui: clear eslint mechanical style bucket (ea15719)
  • ui: clear eslint no-unused-vars bucket (0d6f83b)
  • ui: clear eslint optional chain assertion bucket (935b3ed)
  • ui: clear eslint presentation-label bucket (0a407f6)
  • ui: clear final prefer-inject bucket (878cfa0)
  • ui: clear helper service any bucket (f7a5d93)
  • ui: clear reader core any bucket (782bd63)
  • ui: clear reader settings prefer-inject bucket (4f7d38a)
  • ui: clear reader state any bucket (af9a53d)
  • ui: clear reader utility any bucket (e12f4ea)
  • ui: clear settings and stats any bucket (3700e35)
  • ui: clear shared prefer-inject bucket (b3fe4fd)
  • ui: clear test and declaration any bucket (2e66fd3)
  • ui: drop book and author animations (#270) (09c36df)
  • ui: drop unused favicon pngs (#675) (64b7a5c)
  • ui: enforce placeholder aspect ratios (#320) (f376b68)
  • ui: lazily load filter sidebar content (#283) (2a2dee8)
  • ui: remove remaining series chart template casts (3fdb63f)
  • ui: update PWA icons for new branding (#679) (d5b497e)
  • unraid: sync unraid template with README (#417) (e3b22ed)
  • update npm packages and address warnings in build (#426) (f0e4497)

Documentation

  • add AI usage policy for contributors (#547) (2c6509e)
  • add code of conduct (#546) (4c56e10)
  • agents: add repository agent workflow guide (caa37cd)
  • api: normalize OpenAPI tagging and operation metadata for app + auth/task endpoints (#437) (402c6f0)
  • consolidate application project development docs (#545) (719e083)
  • plan: add frontend grimmory migration plan (c99aa87)
  • readme: add DISK_TYPE to example compose file (#272) (#477) (3ddec09)
  • readme: modify wording on project independence (#382) (e172fa8)
  • remove frontend test architecture plans (#543) (8fde433)
  • security: update security policy with reporting guidelines and hints to supported versions (#76) (21c23d6), closes #1 #2 #3 #6

CI

  • apt update before installing libarchive (#375) (4d2b803)
  • drop publish-test-results.yml workflow (#737) (f05feae)
  • match release automation to desired behavioral workflow (#739) (10afe3c)
  • split release from build (#749) (ff73eea)
  • temp disable dependabot typescript updates (#761) (1d32e5f)
  • use env vars for input to scripts (#733) (2dbfe82)

Build

  • frontend: make deps checks work with yarn 4 (d59d5f7)
  • yarn: migrate frontend and release tooling to yarn 4 (4855f36)

Style

  • frontend: apply the first eslint autofix pass (e2a8e6a)
  • frontend: apply the first stylelint autofix pass (34fc600)
  • frontend: enforce alpha-value-notation in scss (6921da7)
  • frontend: enforce at-rule-empty-line-before in scss (43412c0)
  • frontend: enforce color-function-alias-notation in scss (130463b)
  • frontend: enforce color-function-notation in scss (ddcbb5b)
  • frontend: enforce color-hex-length in scss (a991351)
  • frontend: enforce declaration-block-single-line-max-declarations in scss (32765de)
  • frontend: enforce declaration-empty-line-before in scss (a04daac)
  • frontend: enforce declaration-property-value-keyword-no-deprecated (1a65884)
  • frontend: enforce keyframes-name-pattern in scss (7058992)
  • frontend: enforce media-feature-range-notation in scss (e46f87e)
  • frontend: enforce no-empty-source in scss (d95424d)
  • frontend: enforce number-max-precision in scss (a689751)
  • frontend: enforce property-no-deprecated in scss (df12acd)
  • frontend: enforce property-no-vendor-prefix in scss (ee02f6e)
  • frontend: enforce rule-empty-line-before in scss (55f4481)
  • frontend: enforce scss dollar-variable-empty-line-before (e68938f)
  • frontend: enforce scss dollar-variable-pattern in layout styles (2ee5dce)
  • frontend: enforce selector-class-pattern in scss (c0dff27)
  • frontend: enforce shorthand-property-no-redundant-values in scss (7b9830f)
  • frontend: resolve the remaining stylelint findings (dbd1f20)
  • frontend: scope no-invalid-position-declaration for scss mixins (0b34a85)

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.

About

Stars
3,324
Forks
224
Languages
Java TypeScript HTML

Install & Platforms

Install via
docker docker-compose

Community & Support

Alternative to

Booklore

Open source alternatives

Beta — feedback welcome: [email protected]