github cporcellijr/abs-kosync-bridge V6.0
V6.0.0

latest releases: v6.5.0, v6.4.2, v6.4.1...
3 months ago

Highlights

Precision Syncing & Stability Overhaul. This release introduces the "XPath" sync engine, allowing for character-perfect position syncing with KOReader (/text().offset support). It also includes a complete rewrite of the Logging UI, a hardened Transcriber (fixing "screeching" audio bugs), and smarter Hardcover.app integration.
🚀 Added

Precision XPath Engine: Implemented lxml alongside BeautifulSoup to generate and resolve exact KOReader XPaths, eliminating "off-by-a-paragraph" sync errors.

Hybrid Resolver: New sync logic prioritizing "Perfect XPaths" when ABS leads, while maintaining fuzzy match fallbacks for older clients.

Live Logging Dashboard: Replaced the static log dump with a real-time, dark-mode dashboard (/logs) featuring search, filtering (DEBUG/INFO/ERROR), and live polling.

Manual Hardcover Linking: Added a UI tool to manually link books using a Hardcover URL, slug, or numeric ID.

Background Processing: Transcription and book matching now run in a non-blocking background thread, preventing the web UI from freezing during large imports.

Memory Logging: Captures startup logs occurring before the web server initializes for better debugging.

🛠 Changed

Transcriber Normalization: All audio is now pre-converted to 16kHz Mono 16-bit WAV using FFmpeg before processing. This resolves codec incompatibility and hallucinations in faster-whisper.

Hardcover "Started At" Logic: The started_at date is now only set when progress exceeds 2%, preventing accidental "start" dates for books merely opened for testing.

Contextual Matching: Increased transcript match context window to ~800 characters for higher accuracy.

Dependencies: Added lxml for XPath support.

Timestamp Logic: Removed arbitrary 10s/60s padding in Storyteller sync updates in favor of safer max(current, time) logic.

🐛 Fixed

KoSync Client Crash: Fixed a critical bug where get_progress returned a single float instead of the expected (percentage, xpath) tuple, causing sync loops to crash.

Cross-Platform Locking: Rewrote json_db.py to support Windows (via msvcrt) and Unix (via fcntl) file locking, preventing crashes on non-Linux hosts.

Storyteller Initialization: Wrapped Storyteller DB connection in a try/except block with a dummy fallback, ensuring the bridge stays online even if the Storyteller database is locked or corrupt.

Hardcover Resolver: Fixed regex/parsing logic to correctly extract book IDs from full URLs and slugs

Don't miss a new abs-kosync-bridge release

NewReleases is sending notifications on new releases.