You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.