docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.1.5
(or :latest — patch releases are safe to auto-update)
Four fixes in this release.
"Currently Reading" now shows the right books when your library uses a Calibre "Read" column. If your admin settings link read status to a custom column, the Currently Reading smart shelf listed books you'd finished and skipped the one you were actually partway through, and the "reading now" badge on a book's page never appeared even with KOReader progress synced. In-progress state now comes from the sync tracker regardless of the configured column, and "Yet to Read" counts books you've never touched instead of only books explicitly marked unread. Reported by @alva-seal, seconded by @iroQuai.
KOReader sync works when your reader matches books by filename. KOReader's sync plugin (and apps like Crossink) can identify a book by a hash of its filename instead of its file contents. The server only knew the content hash, so filename-mode devices always got "no book found" and progress never linked up. The server now registers a filename digest for every book — on download, and for your existing library automatically at startup. Devices holding an older copy of a book (from before an update, or side-loaded) can get back into sync by switching the sync plugin's document-matching method to "filename". Reported by @natabat, seconded by @Metamatam; also relevant to reports from @uschi1 and @Glalith121.
A single problem PDF can no longer hang the whole server on download. Downloading certain PDFs (UI or OPDS) triggered a metadata-embedding step that could hang inside Calibre's PDF writer, pinning a CPU core and leaving the request stuck until a 504. The embed step is now bounded (90 seconds by default, tunable with CWA_EMBED_TIMEOUT), the hung process tree is cleaned up, and the download falls back to serving the original file from your library. Send-to-eReader and Kepub conversion degrade the same way instead of failing. Reported by @darkmatterpelican.
The library's view-settings (gear) menu stays onscreen on phones. On narrow screens the toolbar wraps, and when the gear ended up on the left the menu opened toward the left and slid off the edge. It now drops below the toolbar and stays fully visible at any width. Reported by @iroQuai.
Something still broken? Open an issue: https://github.com/new-usemame/Calibre-Web-NextGen/issues — or join the Discord: https://discord.gg/B8NXZmcp32