This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
ReleasePort's take
Moderate signalStarting 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 summaryUpdates β¨ What's New, π§ Other Changes, and ONNX across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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/whisperpath and oldwhisper.cppintegration 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_URLandAUTH_SECRETare 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_URLandAUTH_SECRETbefore starting v4. The old no-auth runtime path is no longer the active model. - If you run embedded/local compute,
nats-serveris 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_KEYstill act as first-boot bootstrap seeds for the default shared provider, but runtime configuration is now centered on the Admin panel and optionalRUNTIME_SEED_JSON/RUNTIME_SEED_JSON_PATH.- If you use an external compute worker, configure
COMPUTE_WORKER_URL+COMPUTE_WORKER_TOKENand 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
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.
Related context
Related tools
Beta — feedback welcome: [email protected]