Liseur v0.2.0
·
124 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Reading positions now sync properly between devices: you can sync an individual book on demand, resolve position conflicts manually, and see which login positions belong to. This release also introduces accent-insensitive library search, per-book font and layout settings, library archiving, and highlight backup and restore.
Reading
- Customize typography and layout for a single book independently without changing your global reading settings.
- Back up highlights, notes, and bookmarks to a file and restore them on another device.
- Highlight multiple passages on the same page without a second selection overwriting the first.
- Page margins now match your selected reading theme color seamlessly across light, sepia, and dark modes.
Library
- Archive books to hide them from your main shelf without deleting the files, resetting reading progress, or stopping background sync.
- Search your library without typing accents, matching words anywhere in the title or author name.
- Filter your library with chips for downloaded, unread, or archived books.
- Sort your library and "Continue reading" shelf by when a book was last read on any device, rather than just locally.
- Clean up raw Calibre metadata automatically, reformatting pipe-separated author names and removing duplicate subtitle phrases.
- High-contrast cloud and finished badges remain legible over dark book covers in dark mode.
calibre-web
- Sync an individual book on demand from the Navigate menu and explicitly choose whether to keep your local position or the server's.
- Prompt to pick a reading position when opening a book where progress moved forward on two devices independently.
- See which calibre-web login your local reading positions belong to, along with detailed summaries of what recent syncs transferred.
- Sync progress automatically whenever the app returns to the foreground, when pulling down to refresh the library, or when opening a book.
- Sync manual read and unread status cleanly between devices without reading position thresholds overwriting your choice.
Fixes
- Fetch the server catalog immediately upon connecting a calibre-web account instead of leaving the library empty until restart.
- Distinguish between expired sign-ins, server errors, and offline status when sync fails, stopping background retries for unrecoverable auth errors.
- Allow pull-to-refresh on empty library screens while waiting for server catalogs or local folder permissions.
- Added spoken labels to highlight colors and reading theme buttons for screen readers.
Under the hood
- Detect when an existing file path is reused by a completely different book to clear old positions cleanly, while preserving progress when updating a copy of the same book.
- Compare sync positions against shared baseline states rather than server timestamps to prevent clock skew from losing page turns or rereads.
- Added migration and concurrency test suites covering database upgrades and overlapping sync requests.