github crocodilestick/Calibre-Web-Automated v4.0.5
Version 4.0.5 - Smart Automatic Duplicate Handling & Resolution 🔍, a Gorgeous & Powerful New Stats Centre 📊, Magic Shelves ✨, Robust OAuth, Auto-Send & Auto-Fetch ✈️ Huge Performance Uplifts and more!

10 hours ago

Release Notes: v4.0.5

✨ New Features

  • KOReader Sync & Progress:
    • KOReader Progress: The web reader and book details page now display reading progress from KOReader (if available).
    • Resume Playback: If you have progress in KOReader but no web-reader progress, the web reader will now intelligently resume from your KOReader position.
  • Send-to-eReader Controls:
    • Per-User Customization: Added a new setting in user profiles (/me) to toggle the "Send to eReader" modal.
    • Direct Send: Users can now disable the modal to trigger an immediate "direct send" to all configured device addresses.
    • Admin Control: Admins can manage this setting for other users via the user edit page.
  • EPUB Fixer UI:
    • Single-Book Fixer: You can now run the EPUB fixer on a specific book directly from the UI.
    • Live Progress: The page now reloads to show progress immediately, and you can cancel stuck runs.

🚀 Improvements

  • Cover Handling & Stability:
    • Download Limits: Added a configurable size limit (default 15MB) for cover downloads to prevent the server from hanging on massive images (Fixes #1018).
    • Optimized Processing: The system now skips ImageMagick conversion if the cover is already a valid JPEG, saving CPU resources.
  • Metadata Management:
    • Bulk Edit Enforcement: Editing books via the "List View" (bulk edit) now correctly marks metadata as "dirty," forcing the system to write changes (Series, Tags, etc.) into the actual EPUB files (Fixes #998).
  • Startup Robustness:
    • Network Shares: Improved startup logic for libraries on network shares (NFS/SMB). The system now gracefully handles "disk I/O errors" by disabling WAL mode and redirecting to the DB config page instead of crashing with a 500 error.
    • Ingest Directory: Added a preflight check to ensure the /cwa-book-ingest directory is writable. If permissions are wrong, the upload now fails fast with a clear error message instead of failing silently (Fixes #995).

🐛 Bug Fixes

  • Kobo & Sync:
    • Sync Crash: Fixed a crash caused by books missing date_added or timestamp fields during Kobo sync (Fixes #1011).
    • KOReader Malformed Responses: Hardened the sync plugin against malformed responses from the server to prevent KOReader crashes (Fixes #1003).
    • Header Auth: Allowed header-based authentication for the kosync endpoint.
  • UI & Styling:
    • Delete Button: Fixed the delete button in the book details toolbar (Fixes #1000).
    • Mobile View: Fixed styling issues on the new book details page for mobile devices.
    • Login Page: Polished the login page styling.
    • Duplicates Sidebar: Fixed a bug where the "Duplicates" sidebar link would re-appear after every restart. The migration now runs only once (Fixes #1010).
  • Kindle EPUB Fixer: Fixed an issue where the fixer would duplicate XML declarations in files that lacked encoding information.

🌍 Translations

  • Japanese: Major update with 198 new translations and 155 corrections.
  • German: Updated translations for 4.x features.
  • Spanish: Improved phrasing and fixed variable names.
  • Slovenian & Dutch: General translation updates.

🔧 Technical & CI

  • CI Permissions: Fixed permissions issues in the test pipeline by dynamically setting UID/GID for test containers.
  • Python Babel: Switched translation scripts to use python -m babel to avoid issues with broken virtual environment shebangs.
  • Directory Ownership: Improved how the initialization script parses dirs.json to ensure all required folders (including /cwa-book-ingest) have correct ownership.

Don't miss a new Calibre-Web-Automated release

NewReleases is sending notifications on new releases.