Skip to content

OpenReader

v4.2.1 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

βœ“ 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

Summary

AI summary

Updates ⚑ Improved, πŸš€ New, and πŸ› Fixed across a mixed release.

Changes in this release

Feature Medium

Adds automatic WAV and OGG audio normalization with MP3 transcoding for OpenAI‑compatible TTS responses.

Adds automatic WAV and OGG audio normalization with MP3 transcoding for OpenAI‑compatible TTS responses.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Upgrades OpenAI voice resolution to query multiple candidate endpoints and fall back to canonical voices.

Upgrades OpenAI voice resolution to query multiple candidate endpoints and fall back to canonical voices.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Allows empty API keys and automatically retries without response_format: "mp3" when WAV‑only servers reject it, normalizing WAV to MP3.

Allows empty API keys and automatically retries without response_format: "mp3" when WAV‑only servers reject it, normalizing WAV to MP3.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Unifies EPUB text highlighting under a new character offset map with cache invalidation on viewport changes.

Unifies EPUB text highlighting under a new character offset map with cache invalidation on viewport changes.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Improves word‑sync UX by snapping highlights to the last started word during temporal gaps and raises TTS audio quality to VBR q2.

Improves word‑sync UX by snapping highlights to the last started word during temporal gaps and raises TTS audio quality to VBR q2.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Includes the local .npmrc file in compute worker Dockerfile build context for private registry dependency resolution.

Includes the local .npmrc file in compute worker Dockerfile build context for private registry dependency resolution.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Feature Medium

Transitions EPUB segment planning to a viewport‑independent chapter‑level canonical architecture, eliminating repeated/skipped segments on page turns and enabling stable prefetching.

Transitions EPUB segment planning to a viewport‑independent chapter‑level canonical architecture, eliminating repeated/skipped segments on page turns and enabling stable prefetching.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Bugfix Medium

Fixes race condition when aborting TTS requests during lazy imports of the ffmpeg binary module.

Fixes race condition when aborting TTS requests during lazy imports of the ffmpeg binary module.

Source: llm_adapter@2026-06-10

Confidence: high

β€”
Bugfix Medium

Prevents anonymous session creation on authentication‑related pages (login, signup).

Prevents anonymous session creation on authentication‑related pages (login, signup).

Source: llm_adapter@2026-06-10

Confidence: low

β€”
Full changelog

✨ What's New

πŸš€ New

  • Canonical EPUB Segment Planning: Transitioned from a client-side preview-based model to a viewport-independent chapter-level canonical planning architecture. Chapters are segmented exactly once, with viewport pages acting as contiguous, non-overlapping windows. This eliminates repeated/skipped segments on page turns, stabilizes highlights, and enables prefetching of exact upcoming segments using stable keys/locators (epub:${spineIndex}:${spineHref}:${charOffset}).
  • WAV & OGG Audio Normalization: Added automatic format sniffing and on-the-fly MP3 transcoding for custom OpenAI-compatible TTS responses. Audio is transcoded to VBR q2 via ffmpeg using seekable temp files to guarantee accurate Xing/Info duration headers. This fixes HTML5 <audio> duration bugs so the ended event fires reliably.

⚑ Improved

  • Multi-Route OpenAI Voice Probing: Upgraded custom OpenAI voice resolution to query multiple candidate endpoints (/audio/voices, /voices, /styles) and extract names from flat arrays, styles lists, or object structures. Falls back to canonical OpenAI voices if no endpoints resolve.
  • Robust OpenAI-Compatible Gateway Support: Allowed empty API keys by using placeholder authorization headers. Also, if a WAV-only server rejects response_format: "mp3" (returning 400/422), the gateway automatically retries without it, caches the decision, and normalizes the WAV response to MP3.
  • Unified EPUB Text Highlighting: Unified character mappings and word-region alignment under a new character offset map (highlight-char-map.ts). Refactored sentence alignment fallbacks and URL replacements, and added cache invalidation on viewport resize or layout changes.
  • Smooth Word-Sync UX: Improved word synchronization to snap the active highlight to the last started word when the play head lands in a temporal gap, preventing highlighting freezes on silence. Increased live TTS audio quality from 64k CBR to VBR q2.
  • Compute Worker Build Context: Included the local .npmrc file in the compute worker Dockerfile build context to allow dependency resolution for private registry packages.

πŸ› Fixed

  • Prevent Anonymous Sessions on Auth Pages: Blocked guest session generation on auth-related pages (login/signup) to prevent session leaks and keep database records clean.
  • FFmpeg Spawn Abort Race Condition: Fixed a race condition when aborting TTS requests during lazy imports of the ffmpeg binary module by registering the abort listeners prior to spawning.

Full Changelog: https://github.com/richardr1126/openreader/compare/v4.2.0...v4.2.1

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]