This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
ReleasePort's take
Light signalRelease v0.4.0 adds an OPDS catalog at /opds and a KOReader sync endpoint at /kosync, improving library browsing and device position synchronization.
Why it matters: Provides new discovery (OPDS) and sync capabilities for readers; performance gains reduce large‑book location generation from tens of seconds to ~2 seconds.
Summary
AI summaryUpdates Highlights, Setup notes, and Internal across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds OPDS catalog at /opds for browsing, searching, and downloading libraries. Adds OPDS catalog at /opds for browsing, searching, and downloading libraries. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Medium |
Adds KOReader progress sync server at /kosync for device position synchronization. Adds KOReader progress sync server at /kosync for device position synchronization. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Medium |
Web reader jumps to device reading position for previously opened books. Web reader jumps to device reading position for previously opened books. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Performance | Medium |
Reduces large book reading‑locations generation time from tens of seconds to about two. Reduces large book reading‑locations generation time from tens of seconds to about two. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Ensures reading progress is saved immediately even while locations are generating for very large books. Ensures reading progress is saved immediately even while locations are generating for very large books. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Bugfix | Medium |
Scopes pending bulk‑job counters to the run's generation, preventing stale or double‑started runs from corrupting admin display. Scopes pending bulk‑job counters to the run's generation, preventing stale or double‑started runs from corrupting admin display. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Refactor | Low |
Migration 047 adds shared `book_locations` table to store reading locations. Migration 047 adds shared `book_locations` table to store reading locations. Source: llm_adapter@2026-07-16 Confidence: high |
— |
Full changelog
Highlights
- OPDS catalog at
/opds— browse, search, and download your libraries from KOReader, Readest, or any OPDS 1.2 client, authenticated with your BeePub username and password. - KOReader progress sync at
/kosync— a kosync-compatible sync server, same credentials. Devices sync their exact reading positions with each other through BeePub, and what you read on a device shows up in BeePub: the book is marked as currently reading and its progress percentage follows your e-reader. - Device position in the web reader: opening a book you've been reading on an e-reader jumps straight to the device position (books never opened on the web), or offers the jump in a dialog when the web reader has its own position.
- Large books open fast: reading-locations generation dropped from tens of seconds to about two (removed a per-section throttle, sections now prefetch concurrently), and the result is shared server-side — only the first reader of each book ever computes it, every other user, device, or browser downloads it.
Fixes
- Reading progress is saved immediately even while locations are still generating. Very large books could previously fail to save any position and always reopened at page one.
- Bulk jobs: pending counters are scoped to the run's generation, so stale or double-started runs can no longer corrupt the admin display, and the orchestrator no longer queues behind its own leftover per-book tasks.
Setup notes
- Point KOReader/Readest at sync server
https://<host>/kosyncand OPDS cataloghttps://<host>/opds. - Accounts created before v0.4.0 need one web login to enable device sync (the sync key is derived at login).
- Download books through OPDS so the file on the device is byte-identical to the server's — progress sync matches books by file digest.
Internal
- KOReader document digests for existing libraries are backfilled by a new admin-visible bulk job (auto-starts in the background).
- Migration 047 adds the shared
book_locationstable.
Breaking Changes
- Migration 047 adds the shared `book_locations` table (requires database schema migration).
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 BeePub
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]