Skip to content

v4.4.0

Latest

Choose a tag to compare

@richardr1126 richardr1126 released this 03 Jul 22:42

✨ What's New

⚡ Improved

  • Server-Backed User Data (Full Migration): All remaining user state — folders, reading progress/last location, toolbar & list-view preferences, onboarding/first-visit tracking, and recently-opened timestamps — has moved from the browser's local IndexedDB (Dexie/RxDB) to the server database. The server is now the single source of truth for all user data; the browser keeps only an ephemeral cache for document blobs, previews, and audio. (PR #125)
  • Faster, More Reliable Media Caching: Document previews, blobs, and TTS audio now use the browser's Cache Storage with versioned keys, priming faster and evicting stale entries more reliably.
  • Consistent Loading, Error, and Empty States: A unified query-state layer now drives every list and reader view — a slow or failed folders/preferences fetch no longer blanks or blocks the document list, and a proper skeleton always appears on genuine cold loads.
  • Per-Session Data Isolation: Query keys are now scoped per user session, preventing any stale or cross-account data from leaking in after switching accounts in the same browser.

🐛 Fixed

  • Loopback Storage Playback: Fixed audio, previews, and downloads failing to load when object storage (S3/SeaweedFS) sits behind a reverse proxy on a loopback address — these now use the existing same-origin fallback route instead of an unreachable direct URL. (PR #127 by @fluffyspace)
  • HTML/Markdown Read-Aloud Segmentation: Fixed the HTML/Markdown reader collapsing an entire document into one paragraph for text-to-speech, which merged headings and unrelated paragraphs into run-on segments and broke per-paragraph highlighting. Each block is now read and highlighted individually. (PR #128 by @fluffyspace)
  • Corrupted Long-Segment Audio Playback: Fixed some OpenAI-compatible TTS servers (e.g. DeepInfra's Kokoro) streaming long segments as multiple concatenated MP3 chunks with an inaccurate duration header, which caused playback to stop early and skip ahead. These files are now detected and automatically repaired. (PR #129 by @fluffyspace)

⚠️ Upgrading from v4.3.0

  • The new database migration (0012, adding user_folders/user_onboarding tables and documents.folder_id/documents.recently_opened_at columns) runs automatically on startup for Docker, pnpm dev, and pnpm start. If you've disabled automatic migrations (RUN_DRIZZLE_MIGRATIONS=false) or manage schema changes outside the startup flow, run pnpm migrate before serving traffic.
  • Breaking: User-supplied TTS provider API keys (BYOK) are no longer supported. TTS providers must be configured by an admin as shared providers; previously stored per-user TTS credentials will stop working after upgrade.
  • This is a hard cutover from the legacy browser-side Dexie/IndexedDB state — no in-browser data migration is performed.

Full Changelog: v4.3.0...v4.4.0