Release Notes: v1.1.0
We are excited to release AnnotationSync v1.1.0! This version introduces major enhancements, headlined by Multi-Device Reading Progress Synchronization, native integration with KOReader's core Cloud Storage plugin, and robust background operation.
Warning
Important Compatibility Note: The new Reading Progress Sync and core Cloud Storage integration require a development or nightly build of KOReader. If you are on an older or stable release of KOReader, these features will gracefully degrade (disabled/greyed out in the menu) with an explanation button.
๐ Features
- Multi-Device Reading Progress Sync: Automatically synchronize your active reading page, progress percentage, and precise position (
pos) across all your reading devices. - Smart Reflowable EPUB Alignment: Sync progress based on the last word of a page (or last-but-3 words) to guarantee that you land on the correct reading location even if font size, margins, or device orientations differ.
- Background Sync with Trapper: Progress updates now sync quietly in the background using a helper subprocess (
Trapper), avoiding annoying toast notification popups on page turns. - Core Cloud Storage Integration: Migrated from custom storage setup to KOReader's core
cloudstorageplugin, giving you unified configuration for Dropbox, FTP, WebDAV, etc. - Graceful Backward Compatibility: Introduced a fallback mechanism for older KOReader versions that lack native cloud storage APIs. Progress settings are greyed out, and a "Why are some options greyed out?" help dialog is shown.
๐ ๏ธ Bug Fixes & Stability
- macOS Emulation Support: Fixed fork-related emulator crashes on macOS by improving async execution in background tasks.
- Position Preservation: Ensured that structural document positions (
posattributes) are properly merged and preserved. - Resilient File Writing: Replaced manual file-system operations with core KOReader APIs (
util.makePathandutil.writeToFile) to prevent data corruption during writes. - UI Polish: Auto-close jump dialogs upon selecting a device progress destination and fixed manual sync destination lookups.
- Safety Guards: Prevented a nil pointer dereference error in
restoreAnnotation.
๐งช Under the Hood
- Expanded the test coverage with unit specs verifying background sync logic, backward compatibility hooks, settings persistence/sanitization, and progress synchronization merges.
Installation
- Download
AnnotationSync.kopluginfrom this release. - Extract it to your KOReader
plugins/directory (make sure the folder is named exactlyAnnotationSync.koplugin). - Enable Annotation Sync in KOReader's plugin settings.
Full Changelog: v1.0.1...v1.1.0