v0.5.0 「Lake Baikal」
ReadAware 0.5.0 「Lake Baikal」 — the sync release. Your library, reading positions, annotations, AI conversations, and settings now travel between devices, end-to-end encrypted. Under the hood, the book-memory graph got dramatically faster and smarter, and error handling was rebuilt across the entire app.
New
- Multi-device sync, end-to-end encrypted. Sign in with Google or GitHub, set a passphrase, and your books, reading progress, highlights, notes, AI conversations, and covers follow you across devices. The server only ever sees ciphertext. Changes arrive live over a push channel instead of waiting for a poll, large books travel in resumable chunks, and a per-book panel in Settings → Data & Sync shows exactly what has and hasn't made it to the cloud.
- Roaming preferences. Themes, typography, AI provider settings, and API keys roam with your account — a fresh install feels like your own within a minute of signing in.
- Free tier and paid plans. Sync ships with a free quota; Sync, Pro, and Max plans raise storage and add monthly AI credits. Billing runs through Stripe from readaware.app/pricing.
- A faster, smarter book memory. The character/concept graph now builds while you read — a 30-chapter novel that used to take hours of idle time gets its graph in the first minutes after opening. The assistant queries the graph on demand (profiles, relationships, per-chapter digests), distinguishes narrative books from expository ones, merges character nicknames, and older conversations are mined for memories instead of being forgotten.
- Two update channels. Settings → About now offers Stable and Beta channels, and a What's New dialog with the in-app changelog appears once per upgrade.
- A real OpenRouter model picker. Search all ~300 models with per-million pricing shown inline, pin preferred upstreams, and sort routing by price, throughput, or latency. Ollama Cloud joins the provider list.
- Sturdier plugins. Plugin updates stage with automatic rollback, activation is atomic and health-checked, data schemas migrate across versions, and plugins can now ship app/reader themes (
ui:appearance). - Crash follow-up. If ReadAware crashes, the next launch offers — never auto-sends — a diagnostics report, with preview before anything leaves your device.
- Page turns by mouse wheel in paginated mode, with the same gesture manners on touch devices.
Improved
- Error handling was unified across the entire app: failures now show localized, actionable messages (never raw error dumps), distinguish "empty" from "broken", offer retry only when retrying can honestly help, and point at the fix (e.g. an invalid API key links straight to Settings → AI). Rate limits, auth failures, and network errors in chat are now told apart.
- Scanned PDFs get their text extracted, so the assistant can finally read them.
- Importing the same book twice now recognizes the duplicate and keeps one copy.
- The assistant's spoiler boundaries are enforced at runtime, not just requested in the prompt.
- The reading-position sync, multi-device AI-chat merges, and account switching all survived their first real two-device runs — with the bugs that surfaced fixed.
Fixed
- Android can finally import TXT files. The system file picker's type filter predated TXT support and greyed them out; TXT (and HTML/CBZ/CBR) are now selectable, and .txt files offer ReadAware in "Open with" on every platform.
- Sync authentication hardened against abuse (one-shot tickets for the live channel, per-IP throttles, session hygiene).
- The dialog panel no longer borrows the browser's blue focus ring.
- The data-location line in Settings said "on this Mac" on every platform.
Full Changelog: v0.4.2...v0.5.0