Skip to content

OpenReader

v4.4.0 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’

✓ No known CVEs patched in this version

Topics

deepinfra-api document epub epub-reader gpt-4o-mini-tts kitten-tts
+14 more
kokoro-tts markdown-reader open-ai open-ai-tts openai-api orpheus-tts pdf pdf-reader replicate-ai replicate-api supertonic text-to-speech tts txt-files

Affected surfaces

auth breaking_upgrade

Summary

AI summary

Updates ⚑ Improved, πŸ› Fixed, and ⚠️ Upgrading from v4.3.0 across a mixed release.

Full changelog

✨ 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: https://github.com/richardr1126/openreader/compare/v4.3.0...v4.4.0

Breaking Changes

  • Removed support for user‑supplied TTS provider API keys (BYOK); admin‑configured shared providers required.
  • All user state (folders, reading progress, preferences, onboarding tracking, recent timestamps) moved from browser IndexedDB to server database; no in‑browser migration performed.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track OpenReader

Get notified when new releases ship.

Sign up free

About OpenReader

EPUB, PDF, DOCX, MD, and TXT file text to speech document reader. Read documents in realtime with high-quality TTS; or extract audiobooks.

All releases β†’

Related context

Earlier breaking changes

  • v4.0.0 Legacy `/api/whisper` path and old `whisper.cpp` integration removed from active runtime.
  • v4.0.0 Auth is now required; set BASE_URL and AUTH_SECRET before starting v4.

Beta — feedback welcome: [email protected]