Each device can now keep its own reading place, or share it with the devices you choose. This release also lets each Kobo and KOReader device keep its own set of books and highlights, adds bulk editing in Table view, tag hierarchies, a Catalan interface and a long list of sync fixes.
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.1.48Before you upgrade
- Reading places stop syncing between devices until you turn sharing on. Every device, including the ones you already use and the web reader, starts with Share my place off, so each keeps its own place and read status. To sync as before, open Account → Devices and tick Share my place on each device you want in step. An administrator can bring back the old behaviour for everyone with
CWNG_SHARE_PLACE_GATES=0. - Each e-reader now gets back only the highlights made on it. The web reader still shows all of them, labelled by device.
- app.db is upgraded on first start (per-device settings, book scope and removal tracking). Back it up before you upgrade if you might roll back.
- Update the KOReader plugin to 4.1.48 for per-device control, device-only highlights and sleep screens. Devices without it keep their existing sync behaviour.
- Source installs need Flask 3.1 or newer. The Docker image already has it.
Added
- Share my place, per device, for Kobo, KOReader and the web reader. Shared devices pass the latest place between them, including a move back. A Kobo opens at KOReader's or the web reader's exact place when it holds the current KEPUB and the books line up; otherwise it gets the shared percentage.
- Choose which books each device keeps. On the Devices page, each KOReader device and each Kobo can use the account setting, all visible books, My Library or chosen shelves. A Kobo removes only its own delivered books when they leave its choice, and a known re-download restores its saved place, highlights and notes.
- A sleep-screen picture for each KOReader reader, set from Devices and fitted to the reader's screen. Works for KOReader on Kindle and Kobo.
- Select and bulk-edit books in Table view, with Shift-click ranges and Select all. Requested in #2266, with the Shift-click idea from @JoschD.
- Browse tags as a hierarchy in the New UI, Classic and OPDS when Calibre's tag hierarchy preference is on.
- A filename pattern for books emailed to an e-reader, built from the book's metadata (#2442, requested by @LightSBM).
- Catalan, for both interfaces. Contributed by @Tofax.
Changed
- Send to e-reader is a button beside Read now on the book page (#2367).
- The Discover source picker is behind a gear next to Shuffle (#2531). Thanks @magdalar.
Fixed
- Kobo sync no longer fails with "database is locked" while the KEPUB backfill or package repair task holds app.db (#2562, #2606). The sync delivers its books anyway and the next sync records what it could not. Thanks @eeksock for the diagnosis and fix, and @branpg and @francisprovost for the reports.
- Changing only the capitals in a title no longer deletes the book file on case-insensitive disks (macOS, NTFS, exFAT, SMB). Thanks @jg120a for the report and the diagnosis.
- An import that can't tell which book it added now stops instead of applying its metadata and cover to the most recently changed book (#2544).
- A Kobo's first report for a book is kept, so a Finished from the first sync is no longer dropped, and Recently read orders Kobo books by sync time.
- Volumes of one work stay separate in the KOReader library when their long titles differ only near the end (#2565). Renamed files keep their reading position and notes.
- The KOReader Library page fills in during the first sync instead of all at once at the end (#2329). Thanks @magdalar.
- Large Kobo downloads with updated metadata start right away.
- Convert Library sends EPUBs straight to kepubify for KEPUB, and logs the converter's output when a conversion fails.
- Updated covers appear when you return to the library, keeping your scroll position (#1126, requested by @chloeroform in #989).
- PDF links to a page open on that page (#2537), and shelves show their first letters in the collapsed sidebar again (#2536). Thanks @darkmatterpelican for both.
- Data left behind by users deleted before v4.1.45 is cleaned up on startup (#2563).
- French settings fit phone screens, and translated font selectors fit their columns in Safari.
Security
- Classic shelf names and rule previews are shown as literal text, so a name containing markup-like characters is displayed rather than interpreted.
Full details in CHANGELOG.md.