What's in this release
Phase 2 of the cover-normalization design — pure backend. No visible changes for end users yet — the 5 new write endpoints are consumed by Phases 4 + 5 (cover editor + browse-view UI).
What you get on upgrade
- 4 new per-user preference columns added to your user table.
- A new
book_cover_previewtable for per-user-per-book overrides. - Migration is silent: existing users keep their current cover view (the new "show e-reader previews" toggle is off by default for upgrade users); new users default on.
- Kobo sync continues to work exactly as before — no admin settings touched.
Pull image
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.51
Or use :latest.
Coming next
- Phase 3:
GET /cover/<id>/previewendpoint with disk cache + LRU sweep. Library starts rendering normalized covers. - Phase 4: Cover-editor lock + apply-to-all controls.
- Phase 5: Settings checkbox + multi-select bulk-apply UI. Full feature lands.
Full design: notes/COVER-NORMALIZATION-DESIGN.md.
Technical detail
5 new POST endpoints (CSRF + login + edit_required):
/me/cover/preview-defaults— your defaults/book/<id>/cover/preview-settings— per-book override/book/<id>/cover/preview-lock— pin a book against apply-to-all/me/cover/preview-apply-to-all— push defaults to every unlocked book/books/cover/preview-bulk-apply— multi-select bulk-apply (cap 5000)
Resolution precedence is query-param > per-book override > user default — pinned by 10 dedicated tests. Validators reject unknown fill modes, presets, or malformed color hex.
52 new unit tests all green:
- 10 precedence-pinning tests
- 26 endpoint tests
- 6 migration tests (idempotency + existing-user backfill)
- 5 orphan-cleanup tests
Full report: notes/PHASE-2-VERIFICATION-2026-05-12.md.