Skip to content

Releases: richardr1126/openreader

v2.0.1

22 Feb 03:27

Choose a tag to compare

✨ What's New

  • Added official KittenTTS-FastAPI support in OpenReader as an OpenAI-compatible TTS option.
  • Added a kitten-tts preset in Settings → Custom OpenAI-Like model selection.
  • Added a dedicated KittenTTS-FastAPI provider guide and linked it across TTS docs, introduction, Docker quick start, and README.

⚙️ Docs & Release Automation

  • Enhanced docs deployment workflow with conditional execution for workflow runs.
  • Improved the docs versioning-on-tag workflow with optional inputs and safer commit handling.

Full Changelog: v2.0.0...v2.0.1

v2.0.0

19 Feb 19:48

Choose a tag to compare

✨ What's New

TL;DR: OpenReader 2.0 adds full authentication, per-user TTS limits, encrypted data export, a new database layer with SQLite/PostgreSQL support, S3-compatible storage support, a new docs experience, and a full rebrand from OpenReader-WebUI.

Core

  • 🔐 Added full user authentication with sign-in, sign-up, account management, and improved session handling.
  • 📣 Added per-user TTS rate limiting with character limits, daily resets, and device/IP backstops.
  • 📤 Added encrypted user data export and updated privacy page/policy behavior.
  • 🗄️ Introduced a new database layer for OpenReader, with both SQLite and PostgreSQL backends (via Drizzle) plus migration tooling.
  • 🪣 Migrated server document/audiobook storage off the filesystem to S3-compatible blob storage; Docker uses embedded SeaweedFS by default, with support for external S3-compatible providers.
  • 🏷️ Rebranded from "OpenReader-WebUI" to "OpenReader", including Docker image naming updates (openreader with openreader-webui as legacy alias).

Additional Updates

  • 🛡️ Added route protection/security hardening and optional GitHub authentication.
  • 🧩 Added claimable-data flow so pre-auth usage can be migrated into signed-in email accounts.
  • 📚 Migrated documents to server-backed storage with caching.
  • 🎧 Migrated audiobook storage/pipeline to object storage with user-scoped handling.
  • 📖 Added document preview generation/caching with improved failure recovery.
  • ⚙️ Added user preferences + document progress syncing and smoother reading transitions via text prefetching.
  • 📘 Launched comprehensive docs with deployment guides, configuration references, and TTS provider integration guides.
  • 🧪 Expanded reliability work and test coverage across auth, previews, export, storage, and APIs.

Full Changelog: v1.2.1...v2.0.0

v1.2.1

21 Jan 21:54
5600487

Choose a tag to compare

✨ What's New

🐜 Bug Fixes

  • More reliable PDF sentence and word highlighting during layout changes and rapid updates, preventing stale or overlapping highlights.
  • Revamped text normalization and TTS block splitting for better handling of long/complex content, EPUB texts, dialogue/quotes, and PDF artifacts.

🧪 Tests

  • Expanded unit tests covering block-splitting, EPUB behavior, oversized inputs, and boundary cases.

Full Changelog: v1.2.0...v1.2.1

v1.2.0

20 Jan 04:29

Choose a tag to compare

✨ What's New

  • 📚 External library imports + server-side library sync with migration logic
  • 🎧 Updated server-side audiobook export (M4B/MP3) with per-audiobook generation settings
  • 🧩 Document selection modal to pick specific documents for sync, load, and import operations
  • 🛡️ Hardening for audiobook-related APIs: stricter validation, safe filename generation, path sanitization, and FFmpeg metadata escaping

Docker & CI

  • 🔧 Fix whisper CLI behavior in the Docker image (fixes broken Docker word-by-word highlight issue)
  • 🐳 Multi-arch Docker publish workflow improvements
  • ✅ Expanded unit/integration tests (audiobooks, docstore, NLP text processing, SHA-256 hashing)

Full Changelog: v1.1.2...v1.2.0

v1.1.2

12 Dec 20:19

Choose a tag to compare

✨ What's New

  • 📑 File previews in the document grid list (default layout)
  • ‼️ Upgrades packages to prevent React/Next.js CVEs discovered recently

Full Changelog: v1.1.1...v1.1.2

v1.1.1

11 Dec 20:23

Choose a tag to compare

✨ What's New

  • Bug fixes in the audiobook export modal

Full Changelog: v1.1.0...v1.1.1

v1.1.0

22 Nov 23:33

Choose a tag to compare

✨ What's New

  • 🎯 Word-by-word highlighting with whisper.cpp; TTS -> STT -> Word by word timestamps. (Optional)
  • 🗣️ Whisper binary built and bundled into the Docker image.

UI & UX Improvements

  • 📚 Custom EPUB navigation and table of contents for better readability
  • 📑 The document List now supports grid mode by default
  • 🧹 Small UI tweaks

API & Client Refactors

  • 🧩 Client API: Centralized client-side API calls and refined types for reliability.
  • 🛤️ Audiobooks: Moved audiobook endpoints to a different path for clearer separation.

Full Changelog: v1.0.1...v1.1.0

v1.0.1

21 Nov 19:07

Choose a tag to compare

✨ What's New

  • 📖 EPUB Playback Highlighting
    • Added text highlighting for the current sentence during EPUB playback.
    • Includes a new configuration option to toggle this feature on or off.

Full Changelog: v1.0.0...v1.0.1

v1.0.0

17 Nov 04:28
d7a94a6

Choose a tag to compare

✨ What's new

Version 1 release comes with many bug fixes, UI improvements, backend improvements, new features and changes.

  • 🧠 Smart sentence continuation
    • Improved NLP handling of complex structures and quoted dialogue provides more natural sentence boundaries and a smoother audio-text flow.
    • EPUB and PDF playback now use smarter sentence splitting and continuation metadata so sentences that cross page/chapter boundaries are merged before hitting the TTS API.
    • This yields more natural narration and fewer awkward pauses when a sentence spans multiple pages or EPUB spine items.
  • 📄 Modernized PDF text highlighting pipeline
    • Real-time PDF text highlighting is now offloaded to a dedicated Web Worker so scrolling and playback controls remain responsive during narration.
    • A new overlay-based highlighting system draws independent highlight layers on top of the PDF, avoiding interference with the underlying text layer.
    • Upgraded fuzzy matching with Dice-based similarity improves the accuracy of mapping spoken words to on-screen text.
    • A new per-device setting lets you enable or disable real-time PDF highlighting during playback for a more tailored reading experience.
  • 🎧 Chapter/page-based audiobook export with resume & regeneration
    • Per-chapter/per-page generation to disk with persistent bookId
    • Resumable generation (can cancel and continue later)
    • Per-chapter regeneration & deletion
    • Final combined M4B or MP3 download with embedded chapter metadata.
  • 💾 Dexie-backed local storage & sync
    • All document types (PDF, EPUB, TXT/MD-as-HTML) and config are stored via a unified Dexie layer on top of IndexedDB.
    • Document lists use live Dexie queries (no manual refresh needed), and server sync now correctly includes text/markdown documents as part of the library backup.
  • 🗣️ Kokoro multi-voice selection & utilities
    • Kokoro models now support multi-voice combination, with provider-aware limits and helpers (not supported on OpenAI or Deepinfra)
  • Faster, more efficient TTS backend proxy
    • In-memory LRU caching for audio responses with configurable size/TTL
    • ETag support (304 on cache hits) + X-Cache headers (HIT / MISS / INFLIGHT)
  • 📄 More robust DOCX → PDF conversion
    • DOCX conversion now uses isolated per-job LibreOffice profiles and temp directories, polls for a stable output file size, and aggressively cleans up temp files.
    • This reduces cross-job interference and flakiness when converting multiple DOCX files in parallel.
  • Accessibility & layout improvements
    • Dialogs and folder toggles expose proper roles and ARIA attributes.
    • PDF/EPUB/HTML readers use a full-height app shell with a sticky bottom TTS bar, improved scrollbars, and refined focus styles.
  • End-to-end Playwright test suite with TTS mocks
    • Deterministic TTS responses in tests via a reusable Playwright route mock.
    • Coverage for accessibility, upload, navigation, folder management, deletion flows, audiobook generation/export and playback across all document types.

Full Changelog: v0.4.0...v1.0.0

v0.4.0

09 Nov 23:47

Choose a tag to compare

What's New

🎯 Multi-Provider TTS Support

Choose your preferred TTS provider:

  • OpenAI - Original provider
  • Deepinfra - Open-source models (Kokoro-82M, Orpheus-3B, Sesame-1B)
  • Custom OpenAI-Compatible - Self-hosted or third-party endpoints

Provider-specific voice management with automatic restoration per model.

📦 Package Manager Migration

Migrated to pnpm for improved dependency handling and reproducible builds.

🐳 Docker Improvements

Updated Docker configuration with Deepinfra API defaults and added docker-compose example with Kokoro-FastAPI integration.

🔧 Bug Fixes & Improvements

  • Documentation updates
  • CI/CD workflow improvements for pnpm

⚠️ Breaking Changes

Voice selection is now provider-model specific. Previously saved voices may need to be reselected.

Full Changelog

v0.3.3...v0.4.0