Skip to content

OpenReader

v4.0.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 epubjs gpt-4o-mini-tts
+14 more
kitten-tts kokoro-tts markdown-reader open-ai open-ai-tts openai-api orpheus-tts pdf pdf-reader replicate-ai replicate-api text-to-speech tts txt-files

Affected surfaces

auth

ReleasePort's take

Moderate signal
editorial:auto 2d

Starting v4 requires setting BASE_URL and AUTH_SECRET before launch; the legacy `/api/whisper` endpoint and `whisper.cpp` integration have been removed.

Why it matters: Mandatory authentication at startup (BASE_URL, AUTH_SECRET) affects all deployments; removal of `/api/whisper` breaks integrations using that path or code.

Summary

AI summary

Updates ✨ What's New, πŸ”§ Other Changes, and ONNX across a mixed release.

Changes in this release

Breaking High

Auth is now required; set BASE_URL and AUTH_SECRET before starting v4.

Auth is now required; set BASE_URL and AUTH_SECRET before starting v4.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Breaking Medium

Legacy `/api/whisper` path and old `whisper.cpp` integration removed from active runtime.

Legacy `/api/whisper` path and old `whisper.cpp` integration removed from active runtime.

Source: llm_adapter@2026-06-02

Confidence: low

β€”
Feature Medium

PDF parsing now uses PP‑DocLayoutV3 (ONNX) with structured block detection, cross‑page stitching, and geometry‑based highlighting.

PDF parsing now uses PP‑DocLayoutV3 (ONNX) with structured block detection, cross‑page stitching, and geometry‑based highlighting.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Feature Medium

Word‑by‑word highlighting runs through ONNX Whisper alignment on a dedicated worker/control‑plane architecture with SSE status events and stale‑op healing.

Word‑by‑word highlighting runs through ONNX Whisper alignment on a dedicated worker/control‑plane architecture with SSE status events and stale‑op healing.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Feature Medium

Document library redesigned into a Finder‑style workspace with new sidebar, toolbar, status bar, and responsive mobile behavior.

Document library redesigned into a Finder‑style workspace with new sidebar, toolbar, status bar, and responsive mobile behavior.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Feature Medium

Shared UI system now powers buttons, modals, popovers, listboxes, and other app surfaces for consistent interface.

Shared UI system now powers buttons, modals, popovers, listboxes, and other app surfaces for consistent interface.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Feature Medium

Docker publishing now ships both the main app image and a separate compute‑worker image.

Docker publishing now ships both the main app image and a separate compute‑worker image.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Feature Medium

Embedded SeaweedFS, NATS, and compute worker can launch automatically during local/container startup; external compute‑worker mode also supported.

Embedded SeaweedFS, NATS, and compute worker can launch automatically during local/container startup; external compute‑worker mode also supported.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Refactor Low

Unit testing migrated to Vitest with additional route/bundle guard checks.

Unit testing migrated to Vitest with additional route/bundle guard checks.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Refactor Low

Server error responses standardized and structured logging switched to Pino.

Server error responses standardized and structured logging switched to Pino.

Source: llm_adapter@2026-06-02

Confidence: high

β€”
Full changelog

✨ What's New

🧱 Layout-Aware PDF Parsing + Read-Along

  • PDF parsing now runs through PP-DocLayoutV3 (ONNX) with structured block detection, cross-page stitching, and geometry-based highlighting.
  • This makes PDF read-along much more accurate and gives the app a real parsed-document pipeline instead of relying on legacy text extraction.
  • New parse progress and retry flows make long PDF processing easier to understand and recover.

⏱️ Worker-Backed Word Highlighting and Compute

  • Word-by-word highlighting now runs through ONNX Whisper alignment.
  • Compute moved to a dedicated worker/control-plane architecture with operation dedupe, SSE status events, and stale-op healing.
  • The legacy /api/whisper path and old whisper.cpp integration are gone from the active runtime.

πŸ—‚οΈ Rebuilt Library and Shared UI System

  • The document library has been redesigned into a Finder-style workspace with a new sidebar, toolbar, status bar, and more responsive mobile behavior.
  • New icons, list, and gallery document views replace the older library surface.
  • A shared UI system now powers buttons, modals, popovers, listboxes, and other app surfaces for a more consistent interface.

βš™οΈ Runtime, Admin, and Self-Hosting Changes

  • OpenReader now runs in an auth-required model. BASE_URL and AUTH_SECRET are required at startup in v4.
  • Runtime site settings moved further into admin-managed config and optional JSON seed files, including TTS limits, compute limits, upload limits, and TTS upstream/cache tuning.
  • Local and container startup can now launch embedded SeaweedFS + NATS + compute worker automatically, while external compute-worker deployments are also supported as a first-class mode.
  • Docker publishing now ships both the main app image and a separate compute-worker image.

πŸ”§ Other Changes

  • New per-document settings storage and parsed-document APIs.
  • Standardized server error responses and structured logging with Pino.
  • Unit testing migrated to Vitest with additional route/bundle guard checks.
  • Docs and release infrastructure were updated for the v4 architecture, including versioned docs and compute-worker deployment docs.

⚠️ Upgrading from v3.0.0

Startup migrations still run automatically. Pull the new image and restart, but review these changes before upgrading:

  • Auth is now required. Set BASE_URL and AUTH_SECRET before starting v4. The old no-auth runtime path is no longer the active model.
  • If you run embedded/local compute, nats-server is now part of the stack. The Docker image includes it; local host setups need it available unless you use an external compute worker.
  • API_BASE / API_KEY still act as first-boot bootstrap seeds for the default shared provider, but runtime configuration is now centered on the Admin panel and optional RUNTIME_SEED_JSON / RUNTIME_SEED_JSON_PATH.
  • If you use an external compute worker, configure COMPUTE_WORKER_URL + COMPUTE_WORKER_TOKEN and make sure app + worker share reachable object storage.

Full Changelog: https://github.com/richardr1126/openreader/compare/v3.0.0...v4.0.0

Breaking Changes

  • Authentication is now required; `BASE_URL` and `AUTH_SECRET` are mandatory startup environment variables.
  • Legacy `/api/whisper` endpoint and `whisper.cpp` integration have been removed from the active runtime.

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

Beta — feedback welcome: [email protected]