Guests can read again, covers refresh when you replace them, and emailed books sync your place.
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.1.21
Fixed
Guests can open and read books again. On a server with anonymous browsing enabled, a visitor who clicked "Read" got an error page in the classic view and was bounced back to the home page in the new interface. Three faults stacked on that one click: the classic reader crashed before it could render, the new interface mistook "this visitor is a guest" for "this visitor's session expired" and signed them out, and the reader then waited forever for personal settings a guest never has. A guest now reads with the default appearance, and signed-in readers keep their saved theme, font and position. Reported by @bentsea (#1074).
Uploading a new cover now shows the new cover. Replacing a book's cover from the edit page appeared to do nothing — the image kept showing the old one, so it looked like the upload had failed even though it had worked. The preview now updates the moment the upload finishes. Reported by @chloeroform (#989).
Books you email with "Send to Reader" now sync your reading position. If you send books to your e-reader by email rather than downloading them, KOReader would push your progress and the server would quietly drop it — the log said No book found for checksum, while the same book fetched over OPDS synced fine. The server recognises a book by fingerprinting the exact file it hands out, and it fingerprinted downloads but never the copy it emailed. Emailed books are now registered the same way downloads are. Reported by @uschi1 (#627).
On a phone, the Edit button no longer sits on top of "Read now". The label was clipped to "Read no…" because the pencil overlapped its tail. Both controls are permanently visible on a touch screen, so this was what every phone user saw. Reported by @Andrew-H2O (#1112).
The quick tag box on a book page now suggests tags you already use. It was easy to type "sci-fi" once and "Sci-Fi" the next time and end up with two tags meaning the same thing. It now offers matching tags as you type and skips the ones the book already has. Reported by @magdalar (#741, #572).
Search engines are now told not to index your library. robots.txt pointed at a file that had never existed, so every install answered "not found" and crawlers fell back to indexing whatever they could reach — on a server with guest browsing, that is your catalogue. To override, put your own robots.txt next to app.db (#1104).
Adding the library to an iPhone or iPad home screen now gives you the app icon instead of a screenshot of the page. Every page offered iOS an .ico file, which iOS cannot use there. The correctly sized icon had been sitting in the app unused (#1103).
When KOReader says "Server push failed", the server now records why. A rejected push, an unmatched book and a declined highlight all left the log empty, and two of them even answered "success". Every highlight sync now leaves a line naming the book and what happened to it. Reported by @iroQuai (#920).
Author names in the reading-progress export no longer come out with a stray | where a comma belongs. "William H. Keith, Jr." was exported as "William H. Keith| Jr.", so anything ingesting the export was matching a name no catalogue lists.
Added
The reading-progress export now includes each book's identifiers, so an external tracker can match on ISBN instead of guessing from the title. GET /kosync/export handed out only title and author, which is ambiguous for reissues and translations. Contributed by @Kyraminol (#1092).
Changed
The Russian interface is now complete — the "Support Calibre-Web NextGen" link was the last English string left in it. Russian is now the only language with every string translated. Contributed by @standhaftsohnsergius (#1088).
Removed
Two leftover app icons that nothing used are gone — cps/static/icon.png and icon.svg, about 29 KB shipped in every release for no reader. Reported by @chloeroform (#1095).