First stable release. Subsequent fixes and additions in 1.0.1.
Added
- Reading achievements — Unlock badges (First Book, Bookworm, On Fire, Highlighter) as you read.
- Reading goals — Configurable daily reading goal (minutes) and yearly book goal.
- Activity heatmap — 12-week reading activity grid in Statistics.
- Reading speed tracking — Words-per-minute average reading speed.
- Highlight share as image — ShareStudio generates polished share-card images (highlight cards, reading stats). Export as PNG, copy to clipboard, or share via Web Share API / X (Twitter). Square (1080×1080) and Story (1080×1920) formats with multiple visual themes.
- Backup & restore — Full backup bundle (books, annotations, dictionaries, vocabulary, RSS, settings, sync state) exportable as a single JSON file. Clear all application data option.
- Onboarding flow — First-run step-by-step walkthrough covering library, reader, annotations, and sync.
- Open With file association — Desktop users can open ebook files directly from their file manager (“Open With Theorem”).
- Android content URI support — Full pipeline for materializing and reading files from Android content:// URIs.
- FBZ / fb2.zip import — Compressed FictionBook format support.
- Dictionary download from repository — Browse and download remote StarDict dictionaries with progress tracking.
Fixed
- TTS on Android — Fixed silent playback in production builds by properly awaiting AudioContext.resume() before scheduling audio. Previously the Web Audio context stayed suspended and audio was silently dropped.
- TTS speed control removed — Playback speed control was non-functional (SoundTouch blocked on mobile, playbackRate shifted pitch without preservation). The UI controls have been removed to avoid confusion.
- EPUB reader timeout regression — Some books were stuck at “Loading book…” indefinitely. Added timeout and fallback safeguards.
- Mobile reader back button — Correctly exits to library instead of navigating elsewhere.
- Redundant navigation — Prevented duplicate navigation actions during routing.
- Sync race conditions — Resolved overlapping library updates during rapid data syncs.
- Sync security — Addressed tombstone propagation and encryption edge cases.
- Storage timeout — Increased read timeout for large books.
- Text truncation on mobile — Fixed reader title wrapping on small screens.
Changed
- TTS system overhauled — Complete rewrite of the Kokoro neural TTS pipeline: streaming parallel synthesis, Web Audio API gapless playback, per-word highlighting, voice switching, next-page preloading. Replaced Rust
tts-rs ONNX bindings with kokoro-en (pure Rust phonemizer via misaki-lean, no espeak-ng subprocess needed). - LAN sync re-architected — Switched from blocking synchronous file payloads to async encrypted stream chunks. Reduced OOM risk on Android. Eliminated “Double JSON” serialization overhead.
- Import system rewritten — Concurrency-controlled batch import with SHA-256 content hash deduplication. Magic byte format detection. Filename metadata extraction.
- Settings schema migrated — Versioned Zustand migrations for all persisted stores (TTS, vault, sync, reading progress).
- Cross-platform build pipeline — GitHub Actions CI/CD produces Linux (.deb, .AppImage), macOS (Intel + Apple Silicon .dmg), Windows (.msi, .exe), and Android (.apk) from a single codebase.
Removed
- Playwright e2e tests and related devDependencies (replaced by expanded Vitest coverage).
Known Limitations
- iOS is not currently supported (Tauri does not target iOS)
- User is responsible for data backups (export bundle recommended for migration)
- No Cross-device network sync beyond local LAN