Repository navigation
v0.3.23
Fixes eight issues found in the full-project review:
- Prevent translations that started before clearing local data from writing into the new account; cancel old requests and discard stale review results and model diagnostics.
- Keep unrelated records and healthy archives syncing when one archive has missing or rejected resources. Show the failed archive in sync details and retry it later.
- Preserve book vocabulary review baselines in JSON backups so importing a backup does not grade the same review twice.
- Honor newer schedules in older exports, keep repeated imports stable, and commit imported records and review history atomically.
- Keep non-streaming model timeouts active until the response body has finished downloading.
- Invalidate cached translations after local or synchronized deletion so looking up the word again saves a new record.
- Preserve article and book images that share the same cached resource when deleting a book.
- Check for newer releases even when an older APK is already downloaded, remember the latest offer, and disarm obsolete automatic installations.
Validation: 1,000 client tests, 37 interface tests, and 24 backend tests including isolated PostgreSQL integration passed. A real Chromium IndexedDB check verified that importing a book vocabulary backup twice and reloading preserves the review count and due date.
No sync protocol or database schema migration is required. EPUB text and chapter progress remain device-local. Previously damaged schedules cannot always be reconstructed automatically; keep the original backup when available.