Readest
com.bilingify.readest
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
**Readest** is a modern, open-source ebook reader for people who read a lot, and want their books, notes and progress to follow them everywhere. Open EPUB, PDF, MOBI, AZW3, FB2, CBZ, TXT and Markdown, and tune the reading experience down to the last detail. **Read your way** • Paginated or scrolling modes with smooth page-turn animations • Custom fonts, themes, spacing, margins and columns • Vertical text for CJK books • Built for e-ink, with contrast tuned for slow-refresh screens • Open up to four books side by side for research and comparison **Your whole library** • Browse and download from OPDS catalogs and public libraries • Connect to Calibre and Calibre-Web, covers and metadata included • Organize with custom bookshelf groups • Full-text search inside a book **Notes that last** • Highlights, bookmarks and structured notes • Copy a highlight together with a deep link back to the passage • Export your annotations **Listen and understand** • Text-to-speech with downloadable offline voices and Android Auto support • Translate a sentence, a page, or an entire book • Wikipedia and dictionary lookup without leaving the page **Sync everywhere** • Readest Cloud, or bring your own: Google Drive, OneDrive, WebDAV, S3 • KOReader sync keeps your progress in step with your e-reader • Android, iOS, macOS, Windows, Linux and the web Readest is open source. Questions or ideas: support@readest.com Privacy policy: https://readest.com/privacy-policy
First release: Sep 19, 2025, 35 total releases.
Most recent release: Sep 21, 2026.
Appears in 5 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 21, 2026 0.12.10## Release Highlights * Library: You can now organize books into configurable bookshelves, tag books in bulk * Audiobooks: You can download Audiobookshelf books for offline listening, stream audiobooks from OPDS catalogs and BookOrbit * Reading: You can now open HTML files as books, and select, highlight, and look up text in Paragraph Mode * Sync: Reading progress refreshes when you return to the app, WebDAV sync is more reliable, and Readwise exports now include bookmarks * TTS: You can now browse and resume your books from Android Auto and pick up recent books from CarPlay * PDF: Page-turn animations now work on PDFs, comics, and fixed-layout books, and wide comic pages get a spread of their own * KOReader: Added background sync, group downloads, and more library controls, and highlights you delete stay deleted * Dictionary: Pronunciations can play automatically on lookup, accented words are easier to find * More: Backups are much faster and keep the screen awake, and fixed freezes on App launch and in image-heavy chapters
More…
## What's Changed * release: version 0.12.8 by @chrox in https://github.com/readest/readest/pull/6135 * fix(library): keep the context menu actions wired to their items by @chrox in https://github.com/readest/readest/pull/6143 * fix(reader): draw the selection toolbar above the footnote popup by @chrox in https://github.com/readest/readest/pull/6146 * fix(ci): bundle libxkbcommon-x11 in the CEF AppImage by @chrox in https://github.com/readest/readest/pull/6151 * fix(proofread): keep selection rules applied after a toggle, edit or reopen (#6148) by @chrox in https://github.com/readest/readest/pull/6152 * chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/readest/readest/pull/6166 * fix(txt): detect Chinese chapters numbered with 两 or uppercase numerals (#6172) by @chrox in https://github.com/readest/readest/pull/6181 * fix(annotator): keep a highlight's rounded caps on its own page, closes #6128 by @chrox in https://github.com/readest/readest/pull/6182 * feat(reader): hide the image viewer controls on tap by @chrox in https://github.com/readest/readest/pull/6183 * Fixed translation error by @tygoee in https://github.com/readest/readest/pull/6215 * fix(reader): keep sliders mirrored when a book turns the layout RTL by @jadhavgaurav in https://github.com/readest/readest/pull/6168 * docker: pull minio images from quay.io, Docker Hub removed them by @thietala in https://github.com/readest/readest/pull/6196 * fix(payment): resolve the user's plan across every billing provider by @chrox in https://github.com/readest/readest/pull/6228 * fix(reader): open image-heavy sections in paged mode without freezing by @chrox in https://github.com/readest/readest/pull/6229 * fix(linux): drop the WebKitGTK assumptions now that Linux is CEF only by @Berserker-GM in https://github.com/readest/readest/pull/6218 * chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/readest/readest/pull/6236 * ci(android): stop asking sdkmanager for the removed `tools` package by @chrox in https://github.com/readest/readest/pull/6238 * Fix page-turn direction fallback and add missing applyMarginAndGap for vertical layout by @JackyHe398 in https://github.com/readest/readest/pull/6197 * fix(opds): persist sync progress incrementally so a large first sync can converge by @raman325 in https://github.com/readest/readest/pull/6237 * fix(android): stop the app freezing at launch on a page load deadlock by @chrox in https://github.com/readest/readest/pull/6240 * test(paginator): wait for the scroll relocate in the scrolled cover test by @chrox in https://github.com/readest/readest/pull/6243 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/6244 * fix(epub): play embedded media the OPF manifest never declares by @chrox in https://github.com/readest/readest/pull/6245 * feat(reader): animate page turns on PDF, CBZ and fixed-layout books by @chrox in https://github.com/readest/readest/pull/6246 * fix(tts): keep a non-English book on its own voice when the doc says en-US by @chrox in https://github.com/readest/readest/pull/6247 * fix(reader): select text on a long press near a link on Android (#6242) by @chrox in https://github.com/readest/readest/pull/6248 * fix(paginator): keep an RTL book's progression when a re-render lands mid-load by @chrox in https://github.com/readest/readest/pull/6249 * fix(reader): backward page curl on PDF/CBZ froze a few pixels in by @chrox in https://github.com/readest/readest/pull/6250 * feat(reader): animate Push on PDF, CBZ and fixed-layout books by @chrox in https://github.com/readest/readest/pull/6251 * fix(reader): keep a page-wide image inside its column in paginated mode by @chrox in https://github.com/readest/readest/pull/6252 * fix(macos): keep the traffic lights on the library page and stop them jumping on navigation by @chrox in https://github.com/readest/readest/pull/6253 * feat(reader): confirm before following external links by @chrox in https://github.com/readest/readest/pull/6254 * fix(ios): restore cross-page selection on iPadOS 27 by @chrox in https://github.com/readest/readest/pull/6255 * fix(reader): let the macOS annotation export save to disk (#6201) by @chrox in https://github.com/readest/readest/pull/6260 * feat(reader): select, highlight and look up text in Paragraph Mode by @chrox in https://github.com/readest/readest/pull/6258 * fix(ios): keep reader screen awake with native idle timer by @chrox in https://github.com/readest/readest/pull/6261 * fix(reader): restore tablet toolbar taps at fractional display density by @chrox in https://github.com/readest/readest/pull/6263 * feat(audiobookshelf): sync reading progress for ebook-only books (#6257) by @chrox in https://github.com/readest/readest/pull/6264 * feat(audiobookshelf): download books for offline use and import ABS zips from the web browser by @chrox in https://github.com/readest/readest/pull/6267 * fix(abs): stream audiobook tracks through a loopback media proxy so self-signed servers play (#6216) by @chrox in https://github.com/readest/readest/pull/6268 * fix(annotator): hand the selection back when the instant dictionary closes by @chrox in https://github.com/readest/readest/pull/6272 * perf(reader): split chapter loading to reduce swipe stalls by @chrox in https://github.com/readest/readest/pull/6266 * feat(reader): give each wide comic page a spread of its own (#6210) by @chrox in https://github.com/readest/readest/pull/6273 * fix(reader): preserve style tag attributes in the style transformer by @jadhavgaurav in https://github.com/readest/readest/pull/6270 * fix(nix): add imagesize to the CEF lockfile by @chrox in https://github.com/readest/readest/pull/6274 * feat(reader): cache wide comic pages and find them in streamed comics (#6210) by @chrox in https://github.com/readest/readest/pull/6276 * fix(bookdrop): only sound on a completed transfer, enable Nearby BookDrop by default by @chrox in https://github.com/readest/readest/pull/6277 * feat(reader): add pull-down bookmark gesture setting by @chrox in https://github.com/readest/readest/pull/6278 * fix(sentry,about): report the real WebView build via webview_version() by @k6G52m4Dz75W in https://github.com/readest/readest/pull/6275 * test(bookdrop): make the cue test independent of test order by @chrox in https://github.com/readest/readest/pull/6279 * feat(reader): import and render HTML files, closes #6198 by @chrox in https://github.com/readest/readest/pull/6281 * feat(dictionary): auto-play pronunciation on lookup by @chrox in https://github.com/readest/readest/pull/6280 * fix(nix): don't query wry's webview_version on Linux by @chrox in https://github.com/readest/readest/pull/6282 * feat(readwise): export bookmarks and their notes by @chrox in https://github.com/readest/readest/pull/6294 * fix(android): recognize iReader devices in e-ink detection by @k6G52m4Dz75W in https://github.com/readest/readest/pull/6293 * fix(backup): keep the screen awake and move bulk zip work to Rust, closes #6291 by @chrox in https://github.com/readest/readest/pull/6299 * fix(translate): remember source language per book by @chrox in https://github.com/readest/readest/pull/6300 * feat(wordlens): Traditional Chinese hints and an English→Arabic pack by @chrox in https://github.com/readest/readest/pull/6303 * fix(test): stop ResizeObserver notices flooding the browser-test log by @chrox in https://github.com/readest/readest/pull/6305 * fix(linux): explain missing X11 display on startup by @chrox in https://github.com/readest/readest/pull/6302 * feat(android): browse and resume books in Android Auto by @kelvinalfaro in https://github.com/readest/readest/pull/6285 * feat(opds): stream audiobooks from OPDS catalogs, with a BookOrbit connector (#6224) by @chrox in https://github.com/readest/readest/pull/6301 * fix(reader): keep highlight options inside the reading area by @chrox in https://github.com/readest/readest/pull/6306 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/6309 * feat(audiobook): stream BookOrbit audio through the loopback media proxy (#6224) by @chrox in https://github.com/readest/readest/pull/6308 * fix(sync): retry failed WebDAV writes without advancing config state by @chrox in https://github.com/readest/readest/pull/6310 * fix(sync): preserve WebDAV errors and report incomplete syncs by @chrox in https://github.com/readest/readest/pull/6311 * fix(reader): prevent vertical toolbar swipes from paging Push books by @chrox in https://github.com/readest/readest/pull/6313 * fix(mobile): align reader menus and improve dialog dismissal by @chrox in https://github.com/readest/readest/pull/6314 * fix(translate): decode HTML entities in popup text by @chrox in https://github.com/readest/readest/pull/6317 * fix: correct remaining-time sorting and chapter estimates by @chrox in https://github.com/readest/readest/pull/6319 * fix(dictionary): normalize Unicode and fold Latin diacritics by @chrox in https://github.com/readest/readest/pull/6320 * feat(koreader): background sync, group downloads, and library controls by @chrox in https://github.com/readest/readest/pull/6321 * fix(koreader): keep synced highlight deletions from reappearing by @chrox in https://github.com/readest/readest/pull/6322 * fix: refresh sidebar note timestamps every minute by @kv-chiu in https://github.com/readest/readest/pull/6324 * feat(library): add configurable bookshelves by @chrox in https://github.com/readest/readest/pull/6329 * fix(library): improve e-ink pagination and bookshelf sync by @chrox in https://github.com/readest/readest/pull/6330 * fix(reader): keep note editors open until saving succeeds by @chrox in https://github.com/readest/readest/pull/6331 * fix(sync): refresh reading progress when the app resumes by @chrox in https://github.com/readest/readest/pull/6332 * fix(reader): read M4B chapters when moov comes after the audio (#6262) by @knigam in https://github.com/readest/readest/pull/6327 * feat(library): book tags in the list view and a Tag Books action by @chrox in https://github.com/readest/readest/pull/6334 * fix(ui): smooth bottom-sheet gestures and Settings scrolling by @chrox in https://github.com/readest/readest/pull/6335 * fix(library): prevent scrollbar initialization layout shift by @chrox in https://github.com/readest/readest/pull/6336 * chore(payments): end the Full Customization grace period for storage add-ons by @chrox in https://github.com/readest/readest/pull/6337 * fix(reader): size annotation toolbar to enabled actions by @chrox in https://github.com/readest/readest/pull/6338 * fix(payments): store Play cancellation time as a timestamp by @chrox in https://github.com/readest/readest/pull/6342 * feat(ios): add CarPlay recent books and fix scene handoff by @chrox in https://github.com/readest/readest/pull/6339 * fix: harden ebook content and proxy trust boundaries by @chrox in https://github.com/readest/readest/pull/6343 * fix(tts): bound startup probes and filter Apple system voices by @chrox in https://github.com/readest/readest/pull/6345 * fix(android-auto): play cold EPUBs in media service by @kelvinalfaro in https://github.com/readest/readest/pull/6341 * fix: align player headers and restore mobile view menu dismissal by @chrox in https://github.com/readest/readest/pull/6346 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/6348 * release: version 0.12.10 by @chrox in https://github.com/readest/readest/pull/6349 ## New Contributors * @tygoee made their first contribution in https://github.com/readest/readest/pull/6215 * @thietala made their first contribution in https://github.com/readest/readest/pull/6196 * @Berserker-GM made their first contribution in https://github.com/readest/readest/pull/6218 * @JackyHe398 made their first contribution in https://github.com/readest/readest/pull/6197 * @raman325 made their first contribution in https://github.com/readest/readest/pull/6237 * @kelvinalfaro made their first contribution in https://github.com/readest/readest/pull/6285 * @kv-chiu made their first contribution in https://github.com/readest/readest/pull/6324 * @knigam made their first contribution in https://github.com/readest/readest/pull/6327 **Full Changelog**: https://github.com/readest/readest/compare/v0.12.8...v0.12.10 - Sep 7, 2026 0.12.8## Release Highlights * Reading: Customize the information shown in headers and footers, resize text with zoom shortcuts * Sync: You can choose whether to use Readest Cloud before signing in, and recover missing covers during sync * Annotations: You can now import highlights, bookmarks, and reading progress from ReadEra, and sync your notes and highlights to Notion * Audiobooks: You can now stream ebook-only titles from Audiobookshelf * Text-to-Speech: use Apple Enhanced and Premium voices on the web, and optionally skip parenthetical readings in Japanese books * Web Imports: You can now clip signed-in pages and import web novels that require an account, with more reliable text decoding * Styling: Your library and reader can now use separate theme modes and colors, and e-ink mode is available on every platform * PDF: You can lock horizontal panning while zoomed, highlights stay visible in dark mode, and PDFs work on older devices * Dictionary: Dictionary entries can now play embedded audio, jump to parts of speech, and enlarge images
More…
* Sharing: Nearby BookDrop now offers easier pairing, transfer sounds, and more reliable device discovery and reconnection ## What's Changed * fix(ios): stop web-browser downloads from deadlocking the main thread by @chrox in https://github.com/readest/readest/pull/5947 * feat(settings): show which scope the Settings dialog writes by @bmfrosty in https://github.com/readest/readest/pull/5933 * feat(ui): separate theme mode and color for the library and the reader by @chrox in https://github.com/readest/readest/pull/5948 * fix(reader): stop a mid-touch text selection from hijacking the brightness swipe (#5939) by @chrox in https://github.com/readest/readest/pull/5958 * feat(reader): customizable header and footer style (#5938) by @chrox in https://github.com/readest/readest/pull/5960 * fix(reader): contain Notebook text while typing (#5956) by @chrox in https://github.com/readest/readest/pull/5962 * fix(library): update the existing book when an updated EPUB is re-imported (#5959) by @chrox in https://github.com/readest/readest/pull/5961 * feat(grouping): Adding existing status as Grouping by @rigen1048 in https://github.com/readest/readest/pull/5935 * fix(reader): keep TTS chapter indicators synced (#5953) by @chrox in https://github.com/readest/readest/pull/5968 * fix(reader): correct PDF reference totals and slider endpoint (#5951) by @chrox in https://github.com/readest/readest/pull/5969 * feat(notion): sync notes and highlights to Notion by @PaleVerge in https://github.com/readest/readest/pull/5949 * fix(reader): stabilize Hardcover Sync submenu sizing by @chrox in https://github.com/readest/readest/pull/5978 * fix(reader): shrink hidden Android navigation controls (#5966) by @chrox in https://github.com/readest/readest/pull/5974 * fix(markdown): support tab-indented footnotes by @chrox in https://github.com/readest/readest/pull/5975 * chore: update agent memories and tidy library styles by @chrox in https://github.com/readest/readest/pull/5985 * feat(payments): yearly subscription plans and a modernized store front by @chrox in https://github.com/readest/readest/pull/5989 * feat(payments): record Apple one-time purchases from ONE_TIME_CHARGE by @chrox in https://github.com/readest/readest/pull/5993 * fix(payments): acknowledge Apple notifications that carry no transaction by @chrox in https://github.com/readest/readest/pull/5994 * feat(payments): separate storage and customization entitlements, unlock all when self-hosted by @chrox in https://github.com/readest/readest/pull/5996 * fix(payments): align the plan panels and stop the header eating clicks by @chrox in https://github.com/readest/readest/pull/6000 * READ-9: shrink hidden Android navigation buttons to 8px by @chrox in https://github.com/readest/readest/pull/6001 * fix(bookorbit): cap page-stat uploads at server limits by @chrox in https://github.com/readest/readest/pull/6002 * fix(reader): stop the note popup growing scrollbars of its own by @chrox in https://github.com/readest/readest/pull/6006 * fix(opds): import the publication date, not the calibre added-date by @chrox in https://github.com/readest/readest/pull/6008 * fix(kosync): resolve KOReader XPointers in their own DocFragment by @chrox in https://github.com/readest/readest/pull/6014 * fix(reader): write a new note on the selection, not in the sidebar by @chrox in https://github.com/readest/readest/pull/6013 * fix(pdf): render documents on older WebKit by @chrox in https://github.com/readest/readest/pull/6019 * fix(dict): play MDD audio, jump to POS sections, zoom entry images by @chrox in https://github.com/readest/readest/pull/6021 * fix(reader): keep lookup surfaces open when native handles are suppressed by @chrox in https://github.com/readest/readest/pull/6022 * feat(bookdrop): AirDrop-style Nearby BookDrop with pairing, sounds, and resilient discovery by @chrox in https://github.com/readest/readest/pull/6023 * feat(settings): add a Gamepad Support toggle by @chrox in https://github.com/readest/readest/pull/6027 * feat(pdf): add a Lock Horizontal Panning toggle for zoomed pages by @chrox in https://github.com/readest/readest/pull/6030 * feat(annotator): show highlight options immediately when highlight tool is present by @chrox in https://github.com/readest/readest/pull/6031 * fix(sync): fit OAuth tokens in Windows keychain by @chrox in https://github.com/readest/readest/pull/6033 * feat(annotator): import highlights, bookmarks and progress from ReadEra by @chrox in https://github.com/readest/readest/pull/6032 * feat(sync): add a manual sync option for BookOrbit (#6029) by @chrox in https://github.com/readest/readest/pull/6034 * fix(reader): keep mobile header tools stationary by @chrox in https://github.com/readest/readest/pull/6035 * fix(annotator): keep the annotation toolbar below the range handles by @chrox in https://github.com/readest/readest/pull/6036 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/6037 * fix(reader): restore XHTML namespaces so book CSS selectors match by @chrox in https://github.com/readest/readest/pull/6040 * fix(reader): draw scripted canvases and keep them inside their column by @chrox in https://github.com/readest/readest/pull/6042 * feat(sync): choose Readest Cloud before sign-in starts syncing by @chrox in https://github.com/readest/readest/pull/6045 * chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/readest/readest/pull/6039 * fix(ui): preserve mobile toast gutters by @chrox in https://github.com/readest/readest/pull/6046 * fix(bookdrop): recover the iOS service after suspension and keep peer presence honest by @chrox in https://github.com/readest/readest/pull/6049 * fix(koplugin): honour BookDrop goodbyes and un-dangle the localsend pin by @chrox in https://github.com/readest/readest/pull/6050 * fix(novel): decode imported pages with the charset they declare by @chrox in https://github.com/readest/readest/pull/6052 * fix(audiobookshelf): add web CORS setup hint by @chrox in https://github.com/readest/readest/pull/6053 * fix(reader): restore EPUB namespace in section fragments by @chrox in https://github.com/readest/readest/pull/6054 * fix(reader): stop the default font from overriding a book's embedded fonts by @k6G52m4Dz75W in https://github.com/readest/readest/pull/6047 * fix(reader): make the reading ruler legible on e-ink by @chrox in https://github.com/readest/readest/pull/6055 * feat(tts): skip inline parenthetical readings by @chrox in https://github.com/readest/readest/pull/6057 * fix(tts): stop Android narration rewinding when the block cursor stalls by @chrox in https://github.com/readest/readest/pull/6058 * feat(audiobookshelf): stream ebook-only books by @chrox in https://github.com/readest/readest/pull/6056 * fix(annotator): stop PDF selections opening the translator popup by @chrox in https://github.com/readest/readest/pull/6063 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/6064 * fix: resolve dependency and code-scanning alerts by @chrox in https://github.com/readest/readest/pull/6065 * fix(annotator): keep PDF highlights visible in dark mode by @chrox in https://github.com/readest/readest/pull/6066 * feat(reader): zoom shortcuts adjust font size in reflowable books, closes #5694 by @chrox in https://github.com/readest/readest/pull/6067 * fix(annotator): anchor the selection toolbar to the book cell by @chrox in https://github.com/readest/readest/pull/6068 * fix: own route transitions and scope Yandex cancellation by @chrox in https://github.com/readest/readest/pull/6069 * fix: guard reader reloads, search views, and sentence navigation by @chrox in https://github.com/readest/readest/pull/6070 * fix: await PDF destinations for TTS download chapters by @chrox in https://github.com/readest/readest/pull/6072 * fix: skip desktop fullscreen commands on mobile by @chrox in https://github.com/readest/readest/pull/6073 * fix(tts): read aloud only the selection on Ctrl/Cmd+R by @chrox in https://github.com/readest/readest/pull/6076 * fix(tts): stop a redundant PDF render detaching the ranges TTS reads by @chrox in https://github.com/readest/readest/pull/6075 * fix: ignore incomplete reader relocation events after close by @chrox in https://github.com/readest/readest/pull/6077 * feat(linux): ship Readest on the tauri CEF runtime by @chrox in https://github.com/readest/readest/pull/6074 * fix(linux): catch the CEF stack up with upstream feat/cef by @chrox in https://github.com/readest/readest/pull/6080 * fix: serialize TTS cache compaction before shutdown by @chrox in https://github.com/readest/readest/pull/6078 * chore: bump tauri to version 2.11.5 by @chrox in https://github.com/readest/readest/pull/6081 * feat(nix): build the Linux package on the CEF runtime by @chrox in https://github.com/readest/readest/pull/6083 * fix(nix): let the linker resolve libcef.so's own dependencies by @chrox in https://github.com/readest/readest/pull/6084 * chore: remove the packages/tao submodule by @chrox in https://github.com/readest/readest/pull/6085 * feat(linux): debug the CEF build over CDP, and three fixes it found by @chrox in https://github.com/readest/readest/pull/6087 * fix: continue library sync after cover download failures by @chrox in https://github.com/readest/readest/pull/6086 * fix(epub): match `[xml|lang]` and `:lang()` on `xml:lang` attributes by @chrox in https://github.com/readest/readest/pull/6090 * feat(ui): dismiss bottom sheets by swiping down from anywhere by @chrox in https://github.com/readest/readest/pull/6097 * fix(tts): allow Apple Enhanced and Premium Web TTS voices by @chrox in https://github.com/readest/readest/pull/6099 * fix(docker): unbreak large uploads and self-hosted cloud sync by @chrox in https://github.com/readest/readest/pull/6100 * fix(ci): bundle the NSS modules the CEF AppImage dlopens by @chrox in https://github.com/readest/readest/pull/6101 * Fix Wayland WebKitGTK window sizing bug on non-CEF Linux builds by @Frebbers in https://github.com/readest/readest/pull/6098 * fix(reader): never let the hidden nav buttons take taps by @chrox in https://github.com/readest/readest/pull/6102 * fix(ui): pad the plans section so its buttons align on mobile by @chrox in https://github.com/readest/readest/pull/6103 * feat(reader): hinge the two-column Page Curl at the spine by @kad-air in https://github.com/readest/readest/pull/6107 * fix(ci): bundle the audio libraries the CEF AppImage dlopens by @chrox in https://github.com/readest/readest/pull/6108 * fix(test): keep the curl leaf in flight until the incoming bitmap lands by @chrox in https://github.com/readest/readest/pull/6114 * feat(ui): remove e-ink mode checks for all devices and platforms by @54wedge in https://github.com/readest/readest/pull/6113 * ci: manual Linux AppImage build for validating bundler changes by @chrox in https://github.com/readest/readest/pull/6115 * feat: unify web imports with signed-in page clipping by @chrox in https://github.com/readest/readest/pull/6117 * feat(proofread): allow tts rules to be created in proofread management panel by @54wedge in https://github.com/readest/readest/pull/6109 * fix(deeplink): consume the launch URL once per app run by @chrox in https://github.com/readest/readest/pull/6111 * fix(tts): keep mini player above navigation panels by @chrox in https://github.com/readest/readest/pull/6118 * fix(sync): repair missing local covers from the file-sync remote by @jadhavgaurav in https://github.com/readest/readest/pull/6116 * compat(image): exclude some images in gallery view by @54wedge in https://github.com/readest/readest/pull/6120 * chore(scripts): account inspector and merge scripts for support tickets by @chrox in https://github.com/readest/readest/pull/6121 * feat: support authenticated web novel imports by @chrox in https://github.com/readest/readest/pull/6119 * fix(sync): closing unclosed void tags before XML re-parsing, closes #5271 by @chrox in https://github.com/readest/readest/pull/6122 * fix(ci): use CEF bundler with deployment array quoting fix by @chrox in https://github.com/readest/readest/pull/6125 * fix(nix): sync CEF dependencies for offline builds by @chrox in https://github.com/readest/readest/pull/6126 * release: version 0.12.8 by @chrox in https://github.com/readest/readest/pull/6127 * fix(reader): sync reading progress on a first open in scrolled mode by @chrox in https://github.com/readest/readest/pull/6130 * fix(android): follow system theme in reading widget by @chrox in https://github.com/readest/readest/pull/6131 * fix(abs): refresh cached token for streaming file access by @chrox in https://github.com/readest/readest/pull/6132 * i18n: update translations by @chrox in https://github.com/readest/readest/pull/6134 ## New Contributors * @bmfrosty made their first contribution in https://github.com/readest/readest/pull/5933 * @rigen1048 made their first contribution in https://github.com/readest/readest/pull/5935 * @PaleVerge made their first contribution in https://github.com/readest/readest/pull/5949 * @k6G52m4Dz75W made their first contribution in https://github.com/readest/readest/pull/6047 * @Frebbers made their first contribution in https://github.com/readest/readest/pull/6098 * @kad-air made their first contribution in https://github.com/readest/readest/pull/6107 **Full Changelog**: https://github.com/readest/readest/compare/v0.12.6...v0.12.8 - Aug 28, 2026 0.12.6## Release Highlights * Audiobooks: Added Audiobookshelf support for streaming audiobooks and podcasts, and you can now pair an audiobook with its ebook to read along as it plays * Text-to-Speech: Added a lyric-style view that shows the sentences around the one being read, plus per-book offline voice downloads and steadier pauses between sentences * Library: You can now browse the web inside Readest to add books, choose which chapters to import from a web novel, hide covers for privacy, and watch download progress right on the shelf * Sharing: Added Nearby BookDrop to send and receive books between nearby devices over your local network, including KOReader devices * Reading: Added customizable keyboard and mouse shortcuts, Yomitan dictionary support, a full-screen book cover view, and right-to-left page order for comics and fixed-layout books * Reading: The Notebook is now a full writing workspace, where your notes save as you type, sync across devices, and link back to the passage they came from * Footnotes: Footnote popups no longer get cut off, let you select and look up text, and can jump straight to the note's place in the book * PDF: You can now select text across page boundaries, copy paragraphs without broken line breaks, and see the printed page numbers as reference pages * Sync: Your book groups and shelves now sync, file sync between devices settles reliably, highlights you delete in KOReader come across, and your progress survives an OPDS re-download
More…
* More: Fixed crashes on launch, garbled AZW3 books, the reading position drifting after rotating the screen, and unreadable highlights on e-ink screens ## What's Changed * fix(ios): App Review launch crash, CarPlay crash on connect, and main thread hangs by @chrox in https://github.com/readest/readest/pull/5590 * fix(opds): make the title bar draggable in the online library view by @chrox in https://github.com/readest/readest/pull/5592 * fix(opds): filter incompatible download formats and offer one-click EPUB by @chrox in https://github.com/readest/readest/pull/5593 * fix(sync): drop the Origin header from OAuth token requests by @chrox in https://github.com/readest/readest/pull/5604 * fix(android): stop claiming APKs and other downloads as openable books by @chrox in https://github.com/readest/readest/pull/5610 * feat(localsend): send and receive books over the local network by @chrox in https://github.com/readest/readest/pull/5611 * fix(library): release TXT sources and chapter HTML during import by @ChuwuYo in https://github.com/readest/readest/pull/5607 * fix(library): checkpoint, serialize, and pool folder imports by @chrox in https://github.com/readest/readest/pull/5615 * fix(translation): gate Enable Translation on book availability by @chrox in https://github.com/readest/readest/pull/5617 * docs(readme): restore the Sponsors / TestMu AI section by @chrox in https://github.com/readest/readest/pull/5619 * fix(translate): send Bing language codes in the Azure provider by @chrox in https://github.com/readest/readest/pull/5620 * fix(library): stop a long press from selecting and then deselecting a book by @chrox in https://github.com/readest/readest/pull/5621 * fix(ci): stop cargo pulling the flutter SDK for the localsend dep by @chrox in https://github.com/readest/readest/pull/5622 * fix(reader): isolate the book cell to drop the Linux black corner by @PolybiusPro in https://github.com/readest/readest/pull/5618 * fix(popup): stop mounting the filtered pointer triangle at rest by @chrox in https://github.com/readest/readest/pull/5628 * fix(localsend): let Readest devices discover each other by @chrox in https://github.com/readest/readest/pull/5626 * fix(sync): recover KOReader progress when a chapter is not well-formed XML by @chrox in https://github.com/readest/readest/pull/5630 * fix(ci): gate build_tauri_app on tauri paths and give webdriver its own timeout by @chrox in https://github.com/readest/readest/pull/5644 * feat(ci): Added new step to release workflow to send release notes to a Discord channel by @sloaner in https://github.com/readest/readest/pull/5637 * fix(reader): commit settled image zoom into the layout size, closes #5633 by @chrox in https://github.com/readest/readest/pull/5639 * fix(novel): retry transient fetch failures and backfill work metadata by @chrox in https://github.com/readest/readest/pull/5650 * fix(markdown): title imported books after the file, not the first heading by @chrox in https://github.com/readest/readest/pull/5653 * fix(sanitizer): render Persian/Arabic half-space by converting misused RLM to ZWNJ by @shahram7 in https://github.com/readest/readest/pull/5651 * fix(reader): stop iOS 16 WebContent crash when opening a book by @chrox in https://github.com/readest/readest/pull/5654 * feat(reader): flash the target of in-page footnote jumps, closes #5647 by @chrox in https://github.com/readest/readest/pull/5655 * fix(koplugin): extract self-update with ffi/archiver on KOReader 2026.07+ by @chrox in https://github.com/readest/readest/pull/5656 * fix(reader): render fixed-layout pages as authored in dark mode, closes #5649 by @chrox in https://github.com/readest/readest/pull/5657 * fix(reader): disable text autosizing in fixed-layout books, closes #5641 by @chrox in https://github.com/readest/readest/pull/5659 * ci: raise nightly and release build timeouts to 90 minutes by @chrox in https://github.com/readest/readest/pull/5664 * fix(opds): stop auto-downloaded books from vanishing on restart by @chrox in https://github.com/readest/readest/pull/5665 * fix(iap): re-verify restored iOS one-time purchases with the server by @chrox in https://github.com/readest/readest/pull/5669 * chore(deps): bump the github-actions group with 6 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5668 * fix(ui): size the alert surface off its container, not its content by @WantenMN in https://github.com/readest/readest/pull/5662 * fix(koplugin): push reading stats in bounded chunks, closes #5666 by @chrox in https://github.com/readest/readest/pull/5670 * feat(reader): jump to the start or end of the book with Home/End by @chrox in https://github.com/readest/readest/pull/5673 * fix(sync): never show a future Last Synced time from a clock-skewed peer by @chrox in https://github.com/readest/readest/pull/5674 * fix(reader): update progress during Auto Scroll and put slider overlay values on top by @chrox in https://github.com/readest/readest/pull/5676 * fix(reader): reach the last page of the book on iOS by @chrox in https://github.com/readest/readest/pull/5678 * feat(reader): scroll Auto Scroll smoothly at low speeds by @chrox in https://github.com/readest/readest/pull/5679 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5682 * fix(library): allow unchecking Read books in place for registered folders, closes #5680 by @chrox in https://github.com/readest/readest/pull/5685 * fix(reader): keep table label columns from collapsing by @chrox in https://github.com/readest/readest/pull/5686 * feat(tts): scroll to the current chapter when opening Offline Audio by @gfreitash in https://github.com/readest/readest/pull/5684 * feat(koplugin): LocalSend receive and send for KOReader devices by @chrox in https://github.com/readest/readest/pull/5687 * fix(sync): create the replica bundle dir before downloading, closes #5675 by @chrox in https://github.com/readest/readest/pull/5700 * chore(koplugin): build nightly plugin zip and default to device targets by @chrox in https://github.com/readest/readest/pull/5699 * feat(sync): add cloud shelves and safe provider deletion by @chrox in https://github.com/readest/readest/pull/5701 * fix(android): gate gamepad polling on controller connection by @chrox in https://github.com/readest/readest/pull/5702 * fix(dictionary): recover StarDict searches after an empty result by @chrox in https://github.com/readest/readest/pull/5705 * feat(tts): symmetric minimal mini-player with centered play button by @chrox in https://github.com/readest/readest/pull/5707 * fix(reader): remove header controls duplicated by the mobile footer bar by @chrox in https://github.com/readest/readest/pull/5708 * feat(sync): optional document metadata on KOSync progress uploads by @chrisbutler in https://github.com/readest/readest/pull/5704 * feat(reader): resume Auto Scroll when reopening a book by @chrox in https://github.com/readest/readest/pull/5710 * fix(reader): support page turner key combinations by @chrox in https://github.com/readest/readest/pull/5709 * feat(reader): right-to-left page order for fixed-layout books by @chrox in https://github.com/readest/readest/pull/5712 * fix(reader): avoid wide word gaps from authored text-wrap pretty, closes #5582 by @chrox in https://github.com/readest/readest/pull/5718 * fix(reader): restore scrolled PDF highlights by @chrox in https://github.com/readest/readest/pull/5719 * fix(sync): remove the mixed-fleet info toast, closes #5720 by @chrox in https://github.com/readest/readest/pull/5726 * fix(sync): sync the reference page count and stop import wiping configs, closes #5716 by @chrox in https://github.com/readest/readest/pull/5727 * fix(reader): highlight search results visible across chapter boundary by @WantenMN in https://github.com/readest/readest/pull/5725 * fix(reader): drop the 500-result cap from in-book search by @chrox in https://github.com/readest/readest/pull/5728 * fix(annotator): drop the selection when the instant dictionary opens, closes #5585 by @chrox in https://github.com/readest/readest/pull/5730 * fix(reader): neutralize fixed backgrounds and drop negative margins by @chrox in https://github.com/readest/readest/pull/5729 * fix(library): optimize bookshelf covers in background, closes #5632 by @chrox in https://github.com/readest/readest/pull/5731 * fix(eink): make e-ink highlights and chips visible, closes #5667 by @chrox in https://github.com/readest/readest/pull/5735 * feat(wordlens): add the en-vi gloss pack, sync incrementally by @chrox in https://github.com/readest/readest/pull/5737 * feat(wordlens): add the en-hu gloss pack by @chrox in https://github.com/readest/readest/pull/5738 * fix(wordlens): key the manifest diff on pack routing fields too by @chrox in https://github.com/readest/readest/pull/5739 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5740 * feat(library): add hide-covers privacy option for the bookshelf by @WantenMN in https://github.com/readest/readest/pull/5733 * feat(tts): queue chapter downloads with per-book persistence by @gfreitash in https://github.com/readest/readest/pull/5690 * feat(library): show download progress overlay on book covers by @WantenMN in https://github.com/readest/readest/pull/5736 * feat(annotator): support text selection tools in footnote popups by @chrox in https://github.com/readest/readest/pull/5744 * feat(reader): pair local audiobooks with ebooks by @chrox in https://github.com/readest/readest/pull/5754 * fix(tts): make sentence and paragraph pauses consistent by @chrox in https://github.com/readest/readest/pull/5753 * fix(reader): keep chapter images openable after repeated footnote popups by @chrox in https://github.com/readest/readest/pull/5756 * docs: add contributor code of conduct by @chrox in https://github.com/readest/readest/pull/5758 * fix(opds): honor the Manage Sync Books toggle for automatic cloud uploads by @chrox in https://github.com/readest/readest/pull/5759 * feat(opds): confirm auto-download toggles and allow catalog reordering by @chrox in https://github.com/readest/readest/pull/5760 * feat(i18n): add Georgian translations by @chrox in https://github.com/readest/readest/pull/5763 * fix(cbz): order split chapter folders base-first by @chrox in https://github.com/readest/readest/pull/5762 * fix(opds): drop the webview Origin header on native requests by @NoaHimesaka1873 in https://github.com/readest/readest/pull/5765 * feat(dictionaries): add bundled plugin and Yomitan support by @chrox in https://github.com/readest/readest/pull/5764 * feat: package for nix by @dastarruer in https://github.com/readest/readest/pull/5605 * fix(reader): translate iframe text without duplicating TTS by @Columpio in https://github.com/readest/readest/pull/5772 * fix(tts): allow chapters sharing sentences with earlier packs to download by @gfreitash in https://github.com/readest/readest/pull/5768 * fix(deps): resolve open Dependabot alerts by @chrox in https://github.com/readest/readest/pull/5778 * fix(nix): update pnpmDeps hash and verify dep hashes on PRs by @chrox in https://github.com/readest/readest/pull/5779 * fix(library): recover from a failed startup instead of rendering a blank window by @chrox in https://github.com/readest/readest/pull/5789 * chore(deps): bump the github-actions group with 7 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5796 * docs: use git input instead of github input by @dastarruer in https://github.com/readest/readest/pull/5791 * feat: Audiobookshelf integration with audiobook streaming and podcasts by @chrox in https://github.com/readest/readest/pull/5801 * fix(reader): extend pull-to-bookmark to fixed layout and yield to late selection by @chrox in https://github.com/readest/readest/pull/5802 * feat(reader): expose data-eink on the book document for per-device custom CSS by @chrox in https://github.com/readest/readest/pull/5803 * fix(android): keep the reader alive when a Bluetooth controller connects (#5799) by @chrox in https://github.com/readest/readest/pull/5804 * fix(reader): render markdown in the note bubble popup, closes #5785 by @chrox in https://github.com/readest/readest/pull/5805 * feat(reader): add inline note editing by @libbybar in https://github.com/readest/readest/pull/5780 * feat(reader): expose book title and series as data attributes for custom UI CSS, closes #5776 by @chrox in https://github.com/readest/readest/pull/5806 * feat(reader): show PDF page labels as reference pages, closes #5822 by @chrox in https://github.com/readest/readest/pull/5824 * feat(rsvp): add exact WPM entry and 10 WPM nudge to the speed dropdown, closes #5820 by @chrox in https://github.com/readest/readest/pull/5825 * fix(translate): follow Bing regional host and show why a translation failed by @chrox in https://github.com/readest/readest/pull/5826 * feat(reader): join PDF line wraps into paragraphs when copying, closes #5814 by @chrox in https://github.com/readest/readest/pull/5828 * fix(annotator): hide the range editor handles while a lookup popup is open, closes #5815 by @chrox in https://github.com/readest/readest/pull/5829 * feat(reader): show the book cover full screen from the sidebar and book details, closes #5813 by @chrox in https://github.com/readest/readest/pull/5827 * perf(sync): merge stat_pages pushes in one upsert_stat_pages RPC by @chrox in https://github.com/readest/readest/pull/5832 * feat(reader): select text across PDF pages as one selection, closes #5809 by @chrox in https://github.com/readest/readest/pull/5831 * fix(koplugin): pull reading stats in bounded pages by @chrox in https://github.com/readest/readest/pull/5833 * feat(stats): tier stat_pages history into R2 segments behind a 7-day hot window by @chrox in https://github.com/readest/readest/pull/5835 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5840 * fix(audiobookshelf): hide ABS books without a server row and backfill covers unauthenticated by @chrox in https://github.com/readest/readest/pull/5841 * fix(stats): survive PostgREST's row cap when building archive segments by @chrox in https://github.com/readest/readest/pull/5844 * chore(stats): enable the archive compaction cron by @chrox in https://github.com/readest/readest/pull/5845 * fix(sync): send S3 object keys in SigV4 canonical form by @chrox in https://github.com/readest/readest/pull/5849 * fix(nix): match the Android AVD ABI to the host architecture (#5732) by @chrox in https://github.com/readest/readest/pull/5850 * fix(koplugin): stop auto sync from prompting for Wi-Fi on book open and wake by @chrox in https://github.com/readest/readest/pull/5848 * fix(backup): export only live library books and reclaim orphaned book files by @chrox in https://github.com/readest/readest/pull/5851 * fix(reader): keep the reading position across screen rotations by @chrox in https://github.com/readest/readest/pull/5855 * fix(sync): sync highlight deletions from KOReader to Readest by @chrox in https://github.com/readest/readest/pull/5853 * feat(reader): pair an Audiobookshelf audiobook and read along (#5807) by @chrox in https://github.com/readest/readest/pull/5856 * feat(reader): let users pick the Hardcover book a file syncs to, closes #5846 by @chrox in https://github.com/readest/readest/pull/5857 * feat(toc): wrap long headings onto multiple lines instead of truncating by @chrox in https://github.com/readest/readest/pull/5858 * fix(bookorbit): list the open book under Unmatched KOReader Books for manual linking by @chrox in https://github.com/readest/readest/pull/5860 * fix(wordlens): build kaikki packs from the raw wiktextract dump by @chrox in https://github.com/readest/readest/pull/5861 * fix(reader): move a paired audiobook by audio and decode WebP covers (#5863) by @chrox in https://github.com/readest/readest/pull/5865 * fix(sync): stop OPDS re-downloads from losing reading progress (#5859) by @chrox in https://github.com/readest/readest/pull/5866 * fix(reader): resolve media that book scripts add after the section loads, closes #1812 by @chrox in https://github.com/readest/readest/pull/5868 * fix(sync): shelve an imported book on other devices without opening it first by @chrox in https://github.com/readest/readest/pull/5869 * feat(library): add From Web Browser import with an in-app browser (#5775) by @chrox in https://github.com/readest/readest/pull/5870 * fix(reader): render the IDPF EPUB 3 samples correctly (#480) by @chrox in https://github.com/readest/readest/pull/5872 * fix(windows): match the main window's scroll bar style in clip and browser windows by @chrox in https://github.com/readest/readest/pull/5873 * fix(library): rubber-band the bookshelf at both edges and keep the reader from overscrolling by @jadhavgaurav in https://github.com/readest/readest/pull/5867 * fix(android): stop the launch crash on covers that decode 1px tall by @chrox in https://github.com/readest/readest/pull/5874 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5875 * feat(ui): migrate to daisyUI 5 and Tailwind CSS 4 by @chrox in https://github.com/readest/readest/pull/5884 * fix(library): save the new data location when migrating an empty library by @jadhavgaurav in https://github.com/readest/readest/pull/5878 * fix(sync): apply pulled file-sync progress to the live reader by @chrox in https://github.com/readest/readest/pull/5886 * feat(reader): jump from a footnote popup to the location in the book by @chrox in https://github.com/readest/readest/pull/5889 * feat(library): select chapters when importing web novels by @chrox in https://github.com/readest/readest/pull/5892 * chore(deps): upgrade to TypeScript 7 by @chrox in https://github.com/readest/readest/pull/5893 * fix(ui): size toasts to their message and fade dialogs out whole by @chrox in https://github.com/readest/readest/pull/5894 * fix(library): refresh PDF metadata on re-import by @chrox in https://github.com/readest/readest/pull/5895 * fix(reader): do not truncate footnote popups by @alexander-pecheny in https://github.com/readest/readest/pull/5887 * fix(reader): make cross-page selection actually work by @alexander-pecheny in https://github.com/readest/readest/pull/5888 * chore(deps): bump the github-actions group with 6 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5902 * fix(android): migrate Google Play Billing to v9 by @chrox in https://github.com/readest/readest/pull/5896 * fix: folder import of Markdown, widget opens, comic zoom, selection handle and TTS word highlight by @chrox in https://github.com/readest/readest/pull/5903 * fix(ui): restore the daisyUI 4 loading dots animation by @chrox in https://github.com/readest/readest/pull/5906 * fix(sync): converge multi-device file sync (#5900) by @jadhavgaurav in https://github.com/readest/readest/pull/5905 * feat(tts): lyric-style sentence view in the Read Aloud player (#5755) by @chrox in https://github.com/readest/readest/pull/5908 * fix(tts): queue a lyric reload requested during an in-flight fetch by @chrox in https://github.com/readest/readest/pull/5909 * feat(shortcuts): add customizable keyboard and mouse bindings by @WhiteHades in https://github.com/readest/readest/pull/5907 * fix(translate): Chinese targets, provider rate limits, and translator popup layout by @chrox in https://github.com/readest/readest/pull/5913 * fix(android): avoid full PDF parsing during import by @chrox in https://github.com/readest/readest/pull/5914 * feat(localsend): brand the LAN transfer feature as Nearby BookDrop by @chrox in https://github.com/readest/readest/pull/5915 * fix(ui): paint modal boxes that sit outside an open daisyUI modal by @chrox in https://github.com/readest/readest/pull/5916 * fix(mobi): keep AZW3 text and TOC intact when section loads overlap by @chrox in https://github.com/readest/readest/pull/5920 * fix(sync): report third-party sync status in the reader menu (#5910) by @chrox in https://github.com/readest/readest/pull/5922 * fix(sync): resolve book groups and metadata on their own clock (#5911, #5912) by @chrox in https://github.com/readest/readest/pull/5921 * fix(ui): search cloud storage files on demand instead of while typing (#5923) by @chrox in https://github.com/readest/readest/pull/5925 * fix(reader): stop the a11y skip link from padding RTL sections with blank pages (#5924) by @chrox in https://github.com/readest/readest/pull/5926 * fix(ui): align the keyboard shortcuts header with its group titles by @chrox in https://github.com/readest/readest/pull/5927 * feat(reader): Notebook as a linked writing workspace by @chrox in https://github.com/readest/readest/pull/5928 * release: version 0.12.6 by @chrox in https://github.com/readest/readest/pull/5929 ## New Contributors * @sloaner made their first contribution in https://github.com/readest/readest/pull/5637 * @gfreitash made their first contribution in https://github.com/readest/readest/pull/5684 * @chrisbutler made their first contribution in https://github.com/readest/readest/pull/5704 * @NoaHimesaka1873 made their first contribution in https://github.com/readest/readest/pull/5765 * @libbybar made their first contribution in https://github.com/readest/readest/pull/5780 * @jadhavgaurav made their first contribution in https://github.com/readest/readest/pull/5867 **Full Changelog**: https://github.com/readest/readest/compare/v0.12.1...v0.12.6 - Aug 8, 2026 0.12.1## Release Highlight * Text-to-Speech: Books that come with recorded narration now play their own audio in step with the text, and you can set the sleep timer to stop at the end of a chapter * Library: Added full text search across your books with fuzzy and nearby-word matching, importing web novels from a link, bulk downloading from the shelf, and page counts in book details * Annotations: Your notes and highlights now live in one hub, where you can export and import them as a file, copy a link back to any highlight, and write math formulas in your notes * Reading: You can now pull down to add a bookmark, tap the page label to jump to any page, tap the footer to bring up the progress bar, and turn pages with an Apple Pencil double tap or squeeze * Reading: Fixed layout books can now scroll horizontally, image descriptions show in the image viewer, search results group by chapter, and the mouse cursor gets out of the way while you read * Sync: Added iCloud sync on iPhone, iPad and Mac, plus a BookOrbit integration that keeps your annotations, bookmarks, stats and reading status in step * Translation: Translated text now keeps its bold, italic and other inline formatting, and the Azure and Yandex translators work again * Styling: Added Ambient Mode on Android, a refreshed theme and background picker with separate looks for your library and reader, and cleaner popups throughout * PDF: Sharper text on desktop and a readable footer in scrolled mode
More…
* More: Markdown books now pick up their title and author automatically and show every heading in the contents, plus fixes for some crashes ## What's Changed * fix(reader): resolve high-priority Sentry crashes by @chrox in https://github.com/readest/readest/pull/5231 * fix(android): drop the Sentry NDK integration that destabilizes the WebView (#5227) by @chrox in https://github.com/readest/readest/pull/5234 * fix(android): withdraw Android Auto opt-in to pass Play review by @chrox in https://github.com/readest/readest/pull/5235 * Contain updater and native auth rejections by @chrox in https://github.com/readest/readest/pull/5237 * Fix high-priority reader runtime errors by @chrox in https://github.com/readest/readest/pull/5236 * refactor: remove the auto upload books option in the main menu in favor of the settings in Readest manage sync settings by @chrox in https://github.com/readest/readest/pull/5243 * feat: style checked toggle by @dastarruer in https://github.com/readest/readest/pull/5242 * fix: set `GDK_BACKEND` to `x11` to fix rendering issues by @dastarruer in https://github.com/readest/readest/pull/5248 * feat: add setting to enable skeuomorphic book covers by @dastarruer in https://github.com/readest/readest/pull/5245 * chore: migrate away from numtide devshell by @dastarruer in https://github.com/readest/readest/pull/5131 * chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5276 * docs: fix typo in README by @dastarruer in https://github.com/readest/readest/pull/5298 * fix(windows): enforce LF line endings and normalize test path separators by @LukashevychAndrii in https://github.com/readest/readest/pull/5302 * feat(theme): unify theme selector and bg texture selector styling by @dastarruer in https://github.com/readest/readest/pull/5305 * fix(reader): invalidate stale nav cache for encoded TOC hrefs (#5308) by @chrox in https://github.com/readest/readest/pull/5311 * fix(rss): sync feed subscriptions across devices (#5307) by @chrox in https://github.com/readest/readest/pull/5314 * feat(settings): rename "Column Gap" to "Additional Margin" by @chrox in https://github.com/readest/readest/pull/5315 * fix(library): disable skeuomorphic book covers by default by @chrox in https://github.com/readest/readest/pull/5316 * feat(reader): add collapsible chapter sections to search results by @WantenMN in https://github.com/readest/readest/pull/5282 * Load OPDS catalogs when opening the Integrations panel by @chloeroform in https://github.com/readest/readest/pull/5283 * perf(reader): improve Slide/Curl gesture responsiveness by @chihumyum in https://github.com/readest/readest/pull/5291 * fix(opds): keep same-host links on https when the feed is https (#5300) by @chrox in https://github.com/readest/readest/pull/5324 * fix(calibre): verify the cloud blob exists before a row-only push by @chrox in https://github.com/readest/readest/pull/5325 * feat(calibre): Check Readest status action, with faster cloud lookups by @chrox in https://github.com/readest/readest/pull/5332 * fix(macos): restore close-to-hide behavior on Tahoe by @liyafly in https://github.com/readest/readest/pull/5333 * fix(reader): keep system brightness on after swipe by @alexander-pecheny in https://github.com/readest/readest/pull/5292 * feat: calculate TTS gap based on rate by @dastarruer in https://github.com/readest/readest/pull/5326 * Show import options when clicking the bookshelf add button by @bcrave in https://github.com/readest/readest/pull/5247 * chore(deps): bump dependencies for open Dependabot advisories by @chrox in https://github.com/readest/readest/pull/5335 * fix(auth): move ProviderLogin out of the auth page module by @chrox in https://github.com/readest/readest/pull/5336 * fix(library): stop re-importing duplicate files from watched folders by @chrox in https://github.com/readest/readest/pull/5337 * fix(reader): align paragraph mode chrome with the TTS player (#5275) by @chrox in https://github.com/readest/readest/pull/5338 * feat(markdown): parse YAML frontmatter into book metadata by @chrox in https://github.com/readest/readest/pull/5344 * fix(reader): keep book fonts when proofread rules change (#5277) by @chrox in https://github.com/readest/readest/pull/5345 * fix(epub): fall back to cover-named zip entries by @chrox in https://github.com/readest/readest/pull/5339 * fix(metadata): make "Change cover image" work on iOS by @chrox in https://github.com/readest/readest/pull/5346 * fix(reader): keep the PDF footer readable in scrolled mode (#5342) by @chrox in https://github.com/readest/readest/pull/5347 * fix(pdf): keep desktop PDF text sharp (#5251) by @chrox in https://github.com/readest/readest/pull/5348 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5358 * fix(translate): restore Yandex Translate provider by @Columpio in https://github.com/readest/readest/pull/5256 * feat(markdown): support full heading depth in the TOC (#5357) by @chrox in https://github.com/readest/readest/pull/5363 * fix(reader): report image zoom against the image resolution, closes #5362 by @chrox in https://github.com/readest/readest/pull/5365 * fix(sync): pull the books delta in bounded pages for large libraries by @chrox in https://github.com/readest/readest/pull/5364 * fix: preserve U+200F/U+200E BiDi marks in Persian/Arabic ebooks (#5216) by @shahram7 in https://github.com/readest/readest/pull/5361 * feat(tts): add End of Chapter option to sleep timer by @nurumubu in https://github.com/readest/readest/pull/5355 * fix: disable hardcoded debug flag in AI logger by @fix2015 in https://github.com/readest/readest/pull/5370 * fix(translate): restore Yandex auto-detection and translated TTS by @Columpio in https://github.com/readest/readest/pull/5374 * fix(sync): stop a local-only delete from wiping the Drive copy (#5265) by @chrox in https://github.com/readest/readest/pull/5376 * fix(android): keep All Files Access on the Play build (#5372) (#2862) by @chrox in https://github.com/readest/readest/pull/5378 * feat(clip): capture login-walled articles with an in-app sign-in by @chrox in https://github.com/readest/readest/pull/5377 * fix(ios): unbreak the share extension build after the clip capture change by @chrox in https://github.com/readest/readest/pull/5379 * fix(window): cover the taskbar when entering fullscreen while maximized on Windows by @chrox in https://github.com/readest/readest/pull/5380 * fix(discord): keep the rich presence cover URL stable (#5352) by @chrox in https://github.com/readest/readest/pull/5382 * feat(library): import web novels from a URL (#5294) by @chrox in https://github.com/readest/readest/pull/5381 * fix(css): keep image invert effective in dark mode with color override by @chrox in https://github.com/readest/readest/pull/5383 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5384 * chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5396 * feat(reader): add font size setting and honor custom fonts in paragraph mode by @chrox in https://github.com/readest/readest/pull/5403 * feat(reader): auto-hide the mouse cursor while reading (#5178) by @chrox in https://github.com/readest/readest/pull/5404 * fix(ios): declare NSPhotoLibraryAddUsageDescription so saving images works (#5397) by @chrox in https://github.com/readest/readest/pull/5405 * fix(layout): keep dropdown menus within viewport by @ChuwuYo in https://github.com/readest/readest/pull/5392 * fix(library): do not dedupe distinct PDFs with identical metadata by @chrox in https://github.com/readest/readest/pull/5412 * fix(reader): exclude trailing whitespace from double-click selection by @ChuwuYo in https://github.com/readest/readest/pull/5413 * feat(theme): add Ambient Mode on Android by @Jesusm1229 in https://github.com/readest/readest/pull/5394 * fix(ios): declare txt and md in fileAssociations so Files offers Readest again by @chrox in https://github.com/readest/readest/pull/5415 * fix(tts): read TTS section documents through the display transform pipeline (#5406) by @chrox in https://github.com/readest/readest/pull/5416 * fix(tts): cut Edge trailing silence on iOS playout so sentence pauses are honored (#5414) by @chrox in https://github.com/readest/readest/pull/5417 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5418 * feat(library): add scoped full text search with fuzzy and nearby modes by @WhiteHades in https://github.com/readest/readest/pull/5389 * fix(proofread): match Unicode punctuation next to letters by @ChuwuYo in https://github.com/readest/readest/pull/5421 * feat(dictionaries): add Babylon BGL dictionary format by @chrox in https://github.com/readest/readest/pull/5428 * fix(reader): normalize body text size in reflowable books by @ChuwuYo in https://github.com/readest/readest/pull/5422 * fix(reader): suppress the Android system selection menu natively (#5427) by @chrox in https://github.com/readest/readest/pull/5430 * fix(reader): eink popup pointer triangle rendered solid black above selections by @chrox in https://github.com/readest/readest/pull/5431 * fix(reader): let long press reach the first line on mobile (#5429) by @chrox in https://github.com/readest/readest/pull/5432 * fix(ci): pin the AppImage tauri-cli fork to a known-good rev by @chrox in https://github.com/readest/readest/pull/5433 * fix(search): keep search options on one line at any text scale by @chrox in https://github.com/readest/readest/pull/5434 * feat(reader): include book cover in annotation exports and Readwise sync (#5424) by @chrox in https://github.com/readest/readest/pull/5435 * fix(reader): give the toolbar controls a 44px touch target (#5401) by @chrox in https://github.com/readest/readest/pull/5437 * fix(library): keep subfolder groups for auto-imported books (#5423) by @chrox in https://github.com/readest/readest/pull/5436 * fix(library): release parsed book documents after import, closes #5387 by @chrox in https://github.com/readest/readest/pull/5439 * fix(sync): merge book metadata on its own clock so page turns cannot clobber edits by @chrox in https://github.com/readest/readest/pull/5442 * feat(annotations): export and import annotations as JSON, closes #5400 by @chrox in https://github.com/readest/readest/pull/5440 * fix(web): make CORS preflight responses cacheable for authenticated requests by @chrox in https://github.com/readest/readest/pull/5444 * feat(settings): add library/reader scope switcher to background image picker by @chrox in https://github.com/readest/readest/pull/5443 * feat(library): add bulk Download to the select-mode action bar (#5244) by @chrox in https://github.com/readest/readest/pull/5445 * feat(tts): fine-tune the mini player time info and transport (#5310) by @chrox in https://github.com/readest/readest/pull/5446 * fix(reader): lift the header into the notch on negative top margins by @chrox in https://github.com/readest/readest/pull/5447 * feat(popup): restyle popups by @dastarruer in https://github.com/readest/readest/pull/5351 * feat(reader): centralize notes and highlights in the annotations hub, closes #5398, #3870 by @chrox in https://github.com/readest/readest/pull/5448 * feat(stats): count TTS listening as reading time by @chrox in https://github.com/readest/readest/pull/5450 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5449 * fix(popup): center the marker glyph and compact the highlight style buttons by @chrox in https://github.com/readest/readest/pull/5451 * fix(android): stabilize the nightly e2e lane and the top-inset touch overlays by @chrox in https://github.com/readest/readest/pull/5453 * fix: install playwright browsers in nix flake by @dastarruer in https://github.com/readest/readest/pull/5454 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5458 * feat(about): copy the version label to the clipboard on click by @chrox in https://github.com/readest/readest/pull/5461 * fix(epub): parse OPF items and meta written with explicit closing tags by @chrox in https://github.com/readest/readest/pull/5463 * feat(annotator): add an opt-in Copy Link tool to the selection toolbar by @chrox in https://github.com/readest/readest/pull/5464 * feat(reader): tap the footer to show and dismiss the progress bar by @chrox in https://github.com/readest/readest/pull/5466 * fix(settings): drop the "Show" prefix from the footer widget labels by @chrox in https://github.com/readest/readest/pull/5469 * fix(library): render the book context menu in-app on Linux desktop by @chrox in https://github.com/readest/readest/pull/5467 * fix(sync): gate dictionary preferences on the Dictionaries toggle by @chrox in https://github.com/readest/readest/pull/5470 * fix(opds): use the cover advertised by the feed entry by @chrox in https://github.com/readest/readest/pull/5471 * feat(reader): show the image description in the image viewer by @chrox in https://github.com/readest/readest/pull/5472 * feat(library): give the "Then by" sort its own order, closes #5119 by @chrox in https://github.com/readest/readest/pull/5474 * fix(linux): explain the missing file picker in SteamOS Gaming Mode by @chrox in https://github.com/readest/readest/pull/5475 * fix(opds): apply the metadata advertised by the feed entry by @chrox in https://github.com/readest/readest/pull/5477 * fix(reader): stop the header hover strip from covering the page text by @chrox in https://github.com/readest/readest/pull/5478 * fix(reader): keep the aspect ratio of duokan fullscreen covers by @chrox in https://github.com/readest/readest/pull/5473 * fix(sync): handle OneDrive OAuth callbacks by @ChuwuYo in https://github.com/readest/readest/pull/5479 * feat(tts): play a book's own recorded narration (EPUB 3 Media Overlays) by @cubicruler in https://github.com/readest/readest/pull/5480 * fix(android): correct the package name in the native-tts unit test by @chrox in https://github.com/readest/readest/pull/5484 * feat(reader): horizontal scrolling mode for fixed layout books by @chrox in https://github.com/readest/readest/pull/5485 * feat(bookorbit): add BookOrbit integration with annotations, bookmarks, stats, and status sync by @chrox in https://github.com/readest/readest/pull/5487 * fix(library): select books in the recently read shelf and pull it with the grid by @chrox in https://github.com/readest/readest/pull/5486 * fix(library): make search history chips translucent like the search input by @chrox in https://github.com/readest/readest/pull/5488 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5489 * fix(reader): correct reading ruler transitions and line bounds by @ChuwuYo in https://github.com/readest/readest/pull/5490 * feat(reader): support adding bookmarks with a pull-down gesture by @chrox in https://github.com/readest/readest/pull/5493 * fix(opds): invalidate cached covers when the entry's updated value changes by @chrox in https://github.com/readest/readest/pull/5495 * fix(db): close only the target connection when closing a native database by @chrox in https://github.com/readest/readest/pull/5497 * fix(build): strip dangling sourceMappingURL comments from Tauri builds by @chrox in https://github.com/readest/readest/pull/5498 * fix(reader): style annotation toolbar customizer and flatten popup chrome by @dastarruer in https://github.com/readest/readest/pull/5496 * fix(opds): substitute percent-encoded {searchTerms} in OpenSearch templates (#5500) by @chrox in https://github.com/readest/readest/pull/5504 * fix(reader): render fixed layout documents edge to edge in scrolled mode by @chrox in https://github.com/readest/readest/pull/5503 * fix(auth): make the password sign-in form work with Android password managers by @chrox in https://github.com/readest/readest/pull/5505 * fix(koplugin): keep book metadata hash consistent with Readest by @chrox in https://github.com/readest/readest/pull/5508 * fix(koplugin): guard nil response on login/OTP failure by @jemyzhang in https://github.com/readest/readest/pull/5507 * feat(reader): support Apple Pencil double tap and squeeze as page turners by @chrox in https://github.com/readest/readest/pull/5511 * feat(send): clip locally opened html and xhtml pages with the browser extension by @chrox in https://github.com/readest/readest/pull/5512 * chore(deps): bump transitive dependencies for security advisories by @chrox in https://github.com/readest/readest/pull/5518 * fix(library): stop watched-folder scans from blocking the main thread by @chrox in https://github.com/readest/readest/pull/5517 * fix(reader): keep the reading ruler anchored to its text across repagination by @chrox in https://github.com/readest/readest/pull/5519 * test(reader): deflake DictionarySheet expand/collapse toggle test by @chrox in https://github.com/readest/readest/pull/5521 * feat(library): show the page count in book details (#5516) by @chrox in https://github.com/readest/readest/pull/5523 * feat(reader): jump to an entered page number from the progress label by @chrox in https://github.com/readest/readest/pull/5524 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5525 * fix(annotator): return to the selection toolbar after closing a lookup popup (#5213) by @ChuwuYo in https://github.com/readest/readest/pull/5526 * fix(kosync): stop re-prompting resolved sync conflicts on window re-activation (#5527) by @chrox in https://github.com/readest/readest/pull/5528 * fix(annotator): fall back to the selection toolbar when the dictionary quick action gets a multi-word selection by @chrox in https://github.com/readest/readest/pull/5529 * fix(android): deliver file picker results via a replayable plugin event by @chrox in https://github.com/readest/readest/pull/5531 * chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5530 * feat(sync): support iCloud as a cloud sync provider on iOS and macOS by @chrox in https://github.com/readest/readest/pull/5532 * fix(reader): discard booknotes without a CFI to prevent an app crash by @chrox in https://github.com/readest/readest/pull/5533 * fix(tts): settle Edge TTS synthesis when the Tauri WebSocket dies before turn.end by @chrox in https://github.com/readest/readest/pull/5534 * fix(ios): restore Open With file associations by @chrox in https://github.com/readest/readest/pull/5535 * feat(macos): enable iCloud sync in direct-distribution builds by @chrox in https://github.com/readest/readest/pull/5537 * fix(window): avoid unavailable title-bar APIs on mobile by @chrox in https://github.com/readest/readest/pull/5536 * fix(annotator): re-anchor the note bubble when a highlight is resized (#5538) by @chrox in https://github.com/readest/readest/pull/5541 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5543 * feat(user): add a Danger Zone with Delete All Books by @chrox in https://github.com/readest/readest/pull/5542 * fix(iap): consume Google Play one-time purchases so storage add-ons can be repurchased by @chrox in https://github.com/readest/readest/pull/5545 * feat(tts): speak Japanese ruby readings instead of the base kanji by @chrox in https://github.com/readest/readest/pull/5546 * feat(a11y): name the open book in the window title by @chrox in https://github.com/readest/readest/pull/5547 * fix(rsvp): respect safe area insets in landscape by @chrox in https://github.com/readest/readest/pull/5548 * fix(layout): keep code block indentation when overriding book layout by @chrox in https://github.com/readest/readest/pull/5549 * fix(docker): apply db migrations on first boot and let the font CDN be overridden (#5550) by @chrox in https://github.com/readest/readest/pull/5551 * fix(reader): scrolled-mode toggle fallout, proofread and footer chrome by @chrox in https://github.com/readest/readest/pull/5552 * fix(translate): restore Azure Translator, keep paragraph layout, preserve inline formatting by @chrox in https://github.com/readest/readest/pull/5555 * fix(reader): keep the cursor visible while text is selected by @chrox in https://github.com/readest/readest/pull/5557 * feat(translate): preserve inline formatting with Google too by @chrox in https://github.com/readest/readest/pull/5556 * fix(annotator): draw the highlight color check in the content color by @chrox in https://github.com/readest/readest/pull/5564 * fix(tts): keep the WebView alive while paused so Bluetooth Play resumes (#5561) by @chrox in https://github.com/readest/readest/pull/5567 * chore(store): rebuild store listings and manage them from fastlane by @chrox in https://github.com/readest/readest/pull/5573 * chore(store): replace Play listing images instead of appending by @chrox in https://github.com/readest/readest/pull/5574 * feat(reader): render math in annotation notes by @PolybiusPro in https://github.com/readest/readest/pull/5571 * feat(reader): summarize annotation counts in the sidebar toolbar by @chrox in https://github.com/readest/readest/pull/5576 * Add support for Custom HTTP Headers in Kosync/BookOrbit integrations by @heckler1 in https://github.com/readest/readest/pull/5570 * docs: update screenshots, closes #5368 by @chrox in https://github.com/readest/readest/pull/5577 * fix(tts): play Media Overlay narration via native AVPlayer on iOS by @Juansero29 in https://github.com/readest/readest/pull/5562 * fix: highlight swatch colors, window set-title ACL, and debug-build Sentry DSN by @chrox in https://github.com/readest/readest/pull/5578 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5579 * fix: fix occasional stuck when dismissing bookshelf menu by @chrox in https://github.com/readest/readest/pull/5580 * release: version 0.12.1 by @chrox in https://github.com/readest/readest/pull/5581 ## New Contributors * @LukashevychAndrii made their first contribution in https://github.com/readest/readest/pull/5302 * @liyafly made their first contribution in https://github.com/readest/readest/pull/5333 * @alexander-pecheny made their first contribution in https://github.com/readest/readest/pull/5292 * @bcrave made their first contribution in https://github.com/readest/readest/pull/5247 * @shahram7 made their first contribution in https://github.com/readest/readest/pull/5361 * @nurumubu made their first contribution in https://github.com/readest/readest/pull/5355 * @fix2015 made their first contribution in https://github.com/readest/readest/pull/5370 * @cubicruler made their first contribution in https://github.com/readest/readest/pull/5480 * @jemyzhang made their first contribution in https://github.com/readest/readest/pull/5507 * @PolybiusPro made their first contribution in https://github.com/readest/readest/pull/5571 * @heckler1 made their first contribution in https://github.com/readest/readest/pull/5570 * @Juansero29 made their first contribution in https://github.com/readest/readest/pull/5562 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.20...v0.12.1 - Jul 19, 2026 0.11.20## Release Highlight * Text-to-Speech: Read-aloud voices can now be downloaded per book for offline listening, and adjustable pauses between sentences and paragraphs * Text-to-Speech: Added CarPlay support on iOS and more reliable Android Auto controls so you can listen while driving * Sync: Added OneDrive as a cloud provider, you can now sync to several providers at once * Reading: Added a right-edge swipe to change Auto Scroll speed, footnotes in Markdown books, and copying text now keeps its paragraph breaks * Reading: Smoother page-turn animations, steadier text selection on iOS, and a redesigned custom theme editor that stays readable on mobile * Annotations: You can now copy a highlight or note together with a deep link that jumps straight back to its spot in the book * Library: You can now sort and filter your shelf by time remaining, and the Recently Read shelf and widget show only books you're currently reading * PDF: Fixed a crash that could happen when turning pages or zooming large PDFs on iOS * More: Fixed OPDS catalogs disappearing after a restart, and improved 32-bit Android stability
More…
## What's Changed * fix: Sentry high-priority crash batch (autoscroll, TTS, MOBI, book-open, PDF links) by @chrox in https://github.com/readest/readest/pull/5012 * docs: move source build instructions to CONTRIBUTING.md by @dastarruer in https://github.com/readest/readest/pull/5017 * fix(sentry): repair open-with crash-reporter arg and drop benign noise by @chrox in https://github.com/readest/readest/pull/5014 * fix(transfer): stop the progress render storm (READEST-2, max update depth) by @chrox in https://github.com/readest/readest/pull/5015 * fix: media-session teardown race + page_stat view migration idempotency by @chrox in https://github.com/readest/readest/pull/5019 * chore: add zed-editor support by @dastarruer in https://github.com/readest/readest/pull/5026 * chore(deps): bump the github-actions group with 9 updates by @dependabot[bot] in https://github.com/readest/readest/pull/5031 * fix(reader): guard foliate paginator null-document crashes (READEST-1H, 2X) by @chrox in https://github.com/readest/readest/pull/5020 * fix(reader): guard applyMarginAndGap against a torn-down view (READEST-2V) by @chrox in https://github.com/readest/readest/pull/5022 * fix(updater): never throw from an auto update check (READEST-J, READEST-22) by @chrox in https://github.com/readest/readest/pull/5028 * feat(sentry): upload browser source maps for symbolicated JS crashes by @chrox in https://github.com/readest/readest/pull/5027 * Footer obstruction fix by @bincent0929 in https://github.com/readest/readest/pull/5029 * fix(android): remove Android Auto opt-in from manifest to unblock Play review by @chrox in https://github.com/readest/readest/pull/5038 * feat(reader): subscribe to RSS/Atom/JSON feeds as periodical feed books by @chrox in https://github.com/readest/readest/pull/5039 * fix: add backticks to docstring for proper formatting by @dastarruer in https://github.com/readest/readest/pull/5040 * feat(sync): add Microsoft OneDrive as a cloud sync provider by @chrox in https://github.com/readest/readest/pull/5048 * chore(style): unified info bar font style by @chrox in https://github.com/readest/readest/pull/5045 * feat(sync): sync S3 config + credentials cross-device, fix backup leak of device-local fields by @chrox in https://github.com/readest/readest/pull/5051 * fix: fix malformed code block in docs by @dastarruer in https://github.com/readest/readest/pull/5059 * fix(opds): fix logic for temporary destination filename (#5024) by @chloeroform in https://github.com/readest/readest/pull/5058 * feat: add nicer issue templates by @dastarruer in https://github.com/readest/readest/pull/5060 * refactor: rename ColorPanel to ThemePanel by @dastarruer in https://github.com/readest/readest/pull/5042 * feat(tts): make inter-sentence and inter-paragraph gaps configurable by @muvox in https://github.com/readest/readest/pull/5057 * fix(android): reliable Android Auto media controls by @chrox in https://github.com/readest/readest/pull/5066 * feat(settings): Increase margin upper bounds by @GoatDamn-dev in https://github.com/readest/readest/pull/5071 * fix: only open last book if book is not marked as finished by @dastarruer in https://github.com/readest/readest/pull/5072 * feat(ios): CarPlay support and native TTS playout with Now Playing integration by @chrox in https://github.com/readest/readest/pull/5085 * fix(dictionary): let a web search entry lead the popup when it is first in the configured order by @chrox in https://github.com/readest/readest/pull/5086 * fix(sync): keep the cloud copy when deleting a book from the device only (#5084) by @chrox in https://github.com/readest/readest/pull/5087 * fix(android): stop 32-bit ARM builds aborting at launch (#5070) by @chrox in https://github.com/readest/readest/pull/5089 * fix(kosync): accept pulled progress from servers that omit document by @chrox in https://github.com/readest/readest/pull/5090 * fix(macos): skip the minidump handler in sandboxed App Store builds by @chrox in https://github.com/readest/readest/pull/5091 * feat(markdown): render footnotes in .md books (#5074) by @chrox in https://github.com/readest/readest/pull/5095 * fix(sync): carry reading progress onto the shelf row in file sync by @chrox in https://github.com/readest/readest/pull/5096 * chore(zed): enable typescript type checking across entire codebase by @dastarruer in https://github.com/readest/readest/pull/5098 * feat(sorting): add toggle to filter by time remaining by @dastarruer in https://github.com/readest/readest/pull/5079 * fix(i18n): merge the split cloud provider tip into one key by @chrox in https://github.com/readest/readest/pull/5102 * fix(epub): load chapters whose zip entry name needs percent-encoding by @chrox in https://github.com/readest/readest/pull/5100 * feat(koplugin): bind full annotation sync to a gesture, upload the open book by @chrox in https://github.com/readest/readest/pull/5106 * fix(sentry): stop the crash reporter booting a second copy of the app (#5052) by @chrox in https://github.com/readest/readest/pull/5107 * fix(reader): remove long-press to zoom images and tables by @chrox in https://github.com/readest/readest/pull/5108 * fix(android): give each gallery image its own name and report insert failures by @chrox in https://github.com/readest/readest/pull/5109 * fix(library): keep demo books out of the cloud book channel (#5049) by @chrox in https://github.com/readest/readest/pull/5110 * fix(sentry): drop the minidump crash reporter, it re-execs our own binary by @chrox in https://github.com/readest/readest/pull/5112 * fix(settings): keep the screen awake only while reading (#5104) by @chrox in https://github.com/readest/readest/pull/5113 * fix(sync): verify the sync passphrase and make a wrong one recoverable by @chrox in https://github.com/readest/readest/pull/5115 * fix(kosync): resolve element-offset XPointers and isolate percentage drift anchor to KOReader by @adagues in https://github.com/readest/readest/pull/5111 * fix(tts): use more intuitive icons in tts player by @dastarruer in https://github.com/readest/readest/pull/5117 * fix(opds): normalize XML MIME types by @yozlog in https://github.com/readest/readest/pull/5120 * fix(opds): escape malformed XML in proxy by @yozlog in https://github.com/readest/readest/pull/5121 * feat(sync): allow syncing to multiple providers at once (#5062) by @chrox in https://github.com/readest/readest/pull/5122 * feat(tts): persistent per-book audio cache with offline downloads by @chrox in https://github.com/readest/readest/pull/5126 * perf(sync): drop redundant deleted_at OR from stats pull cursor by @chrox in https://github.com/readest/readest/pull/5127 * fix(pdf): prevent iOS WebContent OOM crash on PDF page turn and zoom (#5118) by @chrox in https://github.com/readest/readest/pull/5129 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5130 * fix(deploy): restore webpack build so the Cloudflare worker fits 64 MiB by @chrox in https://github.com/readest/readest/pull/5136 * fix: change dictionary icon by @dastarruer in https://github.com/readest/readest/pull/5135 * chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/5138 * fix: fix param name typo by @dastarruer in https://github.com/readest/readest/pull/5145 * fix(tts): keep Android system TTS reading with the screen locked (#4408) by @chrox in https://github.com/readest/readest/pull/5146 * fix(tts): show mini player immediately and keep it above bottom bar and footer by @chrox in https://github.com/readest/readest/pull/5144 * fix(sync): create Google Drive files atomically to stop stranding "Untitled" files in the Drive root by @chrox in https://github.com/readest/readest/pull/5150 * fix(sync): sync WebDAV server URL for configured-but-disabled providers (#5141) by @chrox in https://github.com/readest/readest/pull/5149 * test(tts): stop detached speak loops so no state dispatch escapes teardown by @chrox in https://github.com/readest/readest/pull/5151 * docs(design): default primary buttons to btn-contrast, reserve btn-primary for CTAs by @chrox in https://github.com/readest/readest/pull/5155 * chore: replace outdated `react-color` package with `react-colorful` by @dastarruer in https://github.com/readest/readest/pull/5128 * feat: redesign custom theme creation menu by @dastarruer in https://github.com/readest/readest/pull/5152 * chore: gate rust_lint on src-tauri changes and drop redundant btn-primary in WordLens by @chrox in https://github.com/readest/readest/pull/5156 * fix(layout): items overlap in footer on Android phone (#5004) by @gojodennis in https://github.com/readest/readest/pull/5158 * feat(tts): add 0.8x and 0.85x tts speech speed presets by @gojodennis in https://github.com/readest/readest/pull/5157 * fix(reader): return the turn promise from the captured view.next/prev wrappers by @chrox in https://github.com/readest/readest/pull/5159 * fix(reader): do not toggle bars on vertical pan swipes over fixed-layout pages by @chrox in https://github.com/readest/readest/pull/5160 * fix(payment): stop Google Play RTDN fallback from downgrading paying subscribers by @chrox in https://github.com/readest/readest/pull/5163 * feat(tts): refine the TTS player sheet and redesign the mini player by @chrox in https://github.com/readest/readest/pull/5162 * feat(tts): add mini player Player Style (full/minimal); keep Tauri off the edge proxy by @chrox in https://github.com/readest/readest/pull/5170 * feat(annotator): copy a highlight or note with its deep link by @chrox in https://github.com/readest/readest/pull/5171 * fix(transfer): stop bulk cloud uploads from freezing the library (#5047) by @chrox in https://github.com/readest/readest/pull/5172 * fix(library): anchor the native context menu popup at the pointer position by @chrox in https://github.com/readest/readest/pull/5182 * refactor: create primitive `Toggle` component by @dastarruer in https://github.com/readest/readest/pull/5173 * fix(reader): stop vertical swipes from turning or flashing the layered slide by @chrox in https://github.com/readest/readest/pull/5185 * fix(reader): stabilize iOS text selection with instant highlight and captured page turns by @chrox in https://github.com/readest/readest/pull/5184 * fix(koplugin): fix auto-sync push crash and UI-thread block on book open/close (#5006) by @chrox in https://github.com/readest/readest/pull/5186 * fix(ios): keep the App Group on the widget and share extensions in App Store builds by @chrox in https://github.com/readest/readest/pull/5188 * fix(opds): restore Calibre pipe-escaped commas in author names and join authors with & by @chrox in https://github.com/readest/readest/pull/5189 * perf(test): reduce unit test runtime by @chrox in https://github.com/readest/readest/pull/5190 * fix(opds): keep re-added catalogs from vanishing after app restart by @chrox in https://github.com/readest/readest/pull/5191 * test: remove redundant cases and silence passing logs by @chrox in https://github.com/readest/readest/pull/5192 * feat: use shorter quote in theme preview by @dastarruer in https://github.com/readest/readest/pull/5197 * fix(reader): keep the side panel resize handle from sticking over PDF pages by @chrox in https://github.com/readest/readest/pull/5198 * fix(library): keep the select-mode action bar from hiding the last book by @chrox in https://github.com/readest/readest/pull/5200 * feat: improve accuracy of time remaining calculation by @dastarruer in https://github.com/readest/readest/pull/5194 * fix(library): show only currently-reading books on recent shelf and widget by @chrox in https://github.com/readest/readest/pull/5201 * fix(reader): preserve paragraph breaks when copying text by @chrox in https://github.com/readest/readest/pull/5202 * feat(updater): show original text for auto-translated release notes by @chrox in https://github.com/readest/readest/pull/5203 * fix(reader): synchronize toolbar with layered page turns by @chihumyum in https://github.com/readest/readest/pull/5179 * ci(release): publish Send to Readest extension zip by @chrox in https://github.com/readest/readest/pull/5204 * fix(reader): support offline dictionary pronunciation by @chrox in https://github.com/readest/readest/pull/5205 * feat(reader): add right-edge swipe to adjust auto scroll speed by @chrox in https://github.com/readest/readest/pull/5206 * fix(applock): hide PIN entry while the biometric sheet is on screen by @chrox in https://github.com/readest/readest/pull/5207 * fix(reader): draw the theme background on the curl back face by @chrox in https://github.com/readest/readest/pull/5208 * chore: update agent memories by @chrox in https://github.com/readest/readest/pull/5209 * fix(reader): gate concurrent programmatic captured page turns by @chrox in https://github.com/readest/readest/pull/5211 * fix(reader): make the custom theme editor readable on mobile by @chrox in https://github.com/readest/readest/pull/5212 * fix(reader): keep TTS media session and volume control with volume-key paging by @chrox in https://github.com/readest/readest/pull/5218 * fix(reader): keep captured turns aligned with the finger by @chihumyum in https://github.com/readest/readest/pull/5217 * fix(ios): re-attach App Group to widget/share extensions in App Store builds by @chrox in https://github.com/readest/readest/pull/5219 * release: version 0.11.20 by @chrox in https://github.com/readest/readest/pull/5220 ## New Contributors * @bincent0929 made their first contribution in https://github.com/readest/readest/pull/5029 * @chloeroform made their first contribution in https://github.com/readest/readest/pull/5058 * @muvox made their first contribution in https://github.com/readest/readest/pull/5057 * @GoatDamn-dev made their first contribution in https://github.com/readest/readest/pull/5071 * @adagues made their first contribution in https://github.com/readest/readest/pull/5111 * @yozlog made their first contribution in https://github.com/readest/readest/pull/5120 * @gojodennis made their first contribution in https://github.com/readest/readest/pull/5158 * @chihumyum made their first contribution in https://github.com/readest/readest/pull/5179 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.18...v0.11.20 - Jul 7, 2026 0.11.18## Release Highlight * Reading: Added Auto Scroll, a hands-free mode that scrolls the page for you at an adjustable pace, plus middle-click autoscroll on the desktop * Reading: Added slide and page-curl animations when turning pages for a more natural feel * Reading: Fixed page turning and the reading ruler for vertical right-to-left books, PDF text selection when system font scaling is on, and header/footer readability over light PDFs in dark mode * Text-to-Speech: Redesigned read-aloud as a mini player with an expandable full player, and playback now keeps going even after you close the book * Text-to-Speech: Online voices now play gap-free with chapter seeking and lock-screen controls, plus Android Auto support so you can listen in the car * Sync: Added S3-compatible cloud storage and a new Cloud Sync screen to choose and switch between your sync providers * Integrations: Added a Calibre plugin to push books and custom columns into Readest, and improved OPDS sign-in and auto-download for self-hosted catalogs * Library: New books dropped into watched folders now import automatically, and you can sort your shelf by reading progress * More: Added a speak button in the dictionary popup, a cleaner theme switcher, and per-rule toggles for proofreading
More…
## What's Changed * fix(reader): remember last read position for markdown files by @chrox in https://github.com/readest/readest/pull/4871 * fix(layout): respect author vertical-align on inline images (#4866) by @chrox in https://github.com/readest/readest/pull/4878 * fix(reader): fix fixed-layout spread spine seam and zoomed-out blank page (#4857) by @chrox in https://github.com/readest/readest/pull/4873 * fix(reader): correct reading ruler direction for vertical-rl books (#4865) by @chrox in https://github.com/readest/readest/pull/4879 * chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4884 * feat(proofread): editable Find pattern and per-rule enable/disable toggle (#4859) by @chrox in https://github.com/readest/readest/pull/4888 * fix(android): avoid black screen when external cache dir is unavailable by @chrox in https://github.com/readest/readest/pull/4889 * fix(macos): minimize instead of hide on macOS 26 to avoid black window (#4875) by @chrox in https://github.com/readest/readest/pull/4890 * fix(ios): keep App Group entitlement on widget/share extensions in App Store builds by @chrox in https://github.com/readest/readest/pull/4891 * fix(sync): WebDAV upload-after-enable and deletion propagation (#4856, #4860) by @chrox in https://github.com/readest/readest/pull/4892 * feat(library): add "Progress Read" sort option (#4427) by @chrox in https://github.com/readest/readest/pull/4893 * fix(auth): surface OAuth callback errors on desktop deeplink (#4881) by @chrox in https://github.com/readest/readest/pull/4894 * fix(ios): release screen brightness on background so auto-brightness resumes (#4885) by @chrox in https://github.com/readest/readest/pull/4896 * fix(koplugin): fold duplicate stats book rows so synced time shows in KOReader by @chrox in https://github.com/readest/readest/pull/4895 * fix(updater): disable in-app updater on non-AppImage Linux (#4874) by @chrox in https://github.com/readest/readest/pull/4897 * fix(reader): apply page margin changes live on all platforms (#4898) by @chrox in https://github.com/readest/readest/pull/4900 * fix(reader): turn pages horizontally for vertical-rl books (#624) by @chrox in https://github.com/readest/readest/pull/4899 * fix(window): enter fullscreen from maximized windows (#4034) by @chrox in https://github.com/readest/readest/pull/4903 * fix(window): keep Linux window opaque so it can't turn invisible (#3682) by @chrox in https://github.com/readest/readest/pull/4904 * feat(android): Android Auto media support for TTS playback by @chrox in https://github.com/readest/readest/pull/4907 * ci(nightly): fix nightly update detection broken by AppImage bundling hang by @chrox in https://github.com/readest/readest/pull/4909 * feat(library): auto-import new books from watched folders (#3889) by @chrox in https://github.com/readest/readest/pull/4902 * fix(reader): open annotation deep link when a different book is open (#4887) by @chrox in https://github.com/readest/readest/pull/4910 * fix(reader): keep running header/footer readable over light PDFs in dark mode (#4901) by @chrox in https://github.com/readest/readest/pull/4911 * fix(reader): distinguish two-finger scroll from pinch-zoom on touchscreens (#4858) by @chrox in https://github.com/readest/readest/pull/4912 * feat(settings): redesign theme mode toggle as a segmented control (#4831) by @chrox in https://github.com/readest/readest/pull/4913 * feat(sentry): add crash reporting for Android, iOS, desktop, and web by @chrox in https://github.com/readest/readest/pull/4914 * fix(ios): stop share extension hijacking shared .txt files by @chrox in https://github.com/readest/readest/pull/4917 * fix(test): make Android double-tap e2e pass on default-config CI devices by @chrox in https://github.com/readest/readest/pull/4921 * fix(nix): get nix devshell working by @dastarruer in https://github.com/readest/readest/pull/4883 * feat(calibre): add Readest calibre plugin to push books and metadata by @chrox in https://github.com/readest/readest/pull/4918 * fix(turso): bump plugin submodule to serialize connection operations by @chrox in https://github.com/readest/readest/pull/4927 * feat(koplugin): pull sync on device wake with book open by @chrox in https://github.com/readest/readest/pull/4928 * fix: Sentry production hardening (release/OS tags, unhandled-rejection & render-loop guards) by @chrox in https://github.com/readest/readest/pull/4929 * fix: change formatter to nixpkgs-fmt by @dastarruer in https://github.com/readest/readest/pull/4932 * feat(tts): gapless Web Audio playback engine for Edge TTS with chapter timeline and seek by @chrox in https://github.com/readest/readest/pull/4931 * feat(tts): keep TTS playing when the book is closed by @chrox in https://github.com/readest/readest/pull/4941 * fix(koplugin): key library pull cursor on synced_at to stop stale library (#4934) by @chrox in https://github.com/readest/readest/pull/4944 * feat(metadata): surface calibre custom columns from EPUB metadata by @chrox in https://github.com/readest/readest/pull/4939 * fix(sync): propagate group membership for already-synced books (#4942) by @chrox in https://github.com/readest/readest/pull/4946 * fix: real fix for library-save storage-permission crash + narrowed view-transition filter by @chrox in https://github.com/readest/readest/pull/4943 * fix(transfer): persist queue when clearing completed/failed/all by @chrox in https://github.com/readest/readest/pull/4947 * fix(opds): crawl subdirectories when auto-downloading directory-style catalogs by @chrox in https://github.com/readest/readest/pull/4948 * fix(widget): round iOS cover thumbnail size to whole pixels by @chrox in https://github.com/readest/readest/pull/4950 * feat(reader): slide and page curl turn animations (#555) by @chrox in https://github.com/readest/readest/pull/4940 * fix(reader): open books without a View Transition to avoid timeout (READEST-9) by @chrox in https://github.com/readest/readest/pull/4949 * feat(sentry): tag events with the WebView engine and version by @chrox in https://github.com/readest/readest/pull/4952 * feat(reader): middle mouse button autoscroll in scrolled mode by @chrox in https://github.com/readest/readest/pull/4955 * feat(reader): add TTS speak button to dictionary popup (#4876) by @chrox in https://github.com/readest/readest/pull/4957 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4958 * fix(reader): fix PDF text selection misplaced by OS font scaling (#49) by @chrox in https://github.com/readest/readest/pull/4960 * fix: more production crashes (View Transition noise, book-dir race, stats transaction) by @chrox in https://github.com/readest/readest/pull/4962 * fix(sync): decouple Readest Cloud storage quota from third-party cloud sync by @chrox in https://github.com/readest/readest/pull/4971 * feat(sync): propagate tags and reading status through third-party file sync by @chrox in https://github.com/readest/readest/pull/4973 * perf(koplugin): defer and cache Library group covers (#4954) by @chrox in https://github.com/readest/readest/pull/4974 * feat(sync): route library sync exclusively to the selected cloud provider by @chrox in https://github.com/readest/readest/pull/4975 * feat(settings): unified Cloud Sync chooser with Readest Cloud as a first-class provider by @chrox in https://github.com/readest/readest/pull/4976 * test(reader): harden fixed-layout wheel double-scroll test against CI flake by @chrox in https://github.com/readest/readest/pull/4978 * fix(sync): abort the file-sync run on auth failure instead of marching the library by @chrox in https://github.com/readest/readest/pull/4981 * chore(i18n): translate the cloud sync provider-selection strings by @chrox in https://github.com/readest/readest/pull/4980 * feat(sync): incremental file sync and per-book transfers for the active provider by @chrox in https://github.com/readest/readest/pull/4982 * fix(reader): gate route View Transitions on API support (READEST-9) by @chrox in https://github.com/readest/readest/pull/4989 * feat(sync): S3-compatible cloud sync provider by @chrox in https://github.com/readest/readest/pull/4990 * fix(reader): center the lone PDF page in portrait auto-spread (#4984) by @chrox in https://github.com/readest/readest/pull/4992 * fix(android): background TTS media controls + lock-screen scrubber/seek + Edge click fix by @chrox in https://github.com/readest/readest/pull/4994 * feat(reader): redesign the TTS control as a mini player with an expandable player sheet by @chrox in https://github.com/readest/readest/pull/4996 * feat(reader): Auto Scroll reading mode for scrolled flow by @chrox in https://github.com/readest/readest/pull/4999 * fix(reader): gate captured slide/curl turn on scrollLocked like push by @chrox in https://github.com/readest/readest/pull/5000 * fix(reader): let page margins shrink into the safe-area inset (#4761) by @chrox in https://github.com/readest/readest/pull/5001 * fix(opds): auth negotiation and auto-download fixes for self-hosted catalogs by @chrox in https://github.com/readest/readest/pull/5002 * release: version 0.11.18 by @chrox in https://github.com/readest/readest/pull/5003 ## New Contributors * @dastarruer made their first contribution in https://github.com/readest/readest/pull/4883 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.17...v0.11.18 - Jun 29, 2026 0.11.17## Release Highlight * Sync: Added WebDAV and Google Drive sync for your books and reading data * Widgets: Added home-screen reading widgets on mobile so you can jump straight back into your book * Reading: You can now open and read Markdown(.md) files * Reading: You can select a word by double-clicking it, and search gained regex and nearby-words modes * Reading: Added a sticky progress bar with chapter markers, and keyboard shortcuts to fine-tune text selection * Library: Added a Recently Read shelf to quickly pick up where you left off, plus a separate background texture for your library * Text-to-Speech: Added offline voices on iOS, a setting to highlight by word or by sentence * PDF: Smoother pinch-zoom and panning, faster scrolling on mobile, and a new contrast option in the view menu * More: Customize the highlight toolbar across all books, filter exported annotations by color and style
More…
## What's Changed * fix(widget): avoid recycling aliased source bitmap for 2:3 covers by @chrox in https://github.com/readest/readest/pull/4850 * ci(release): add GitHub artifact attestation to release and nightly builds by @chrox in https://github.com/readest/readest/pull/4851 * release: version 0.11.17 (hotfix for an Android crash) by @chrox in https://github.com/readest/readest/pull/4852 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.16...v0.11.17 - Jun 28, 2026 0.11.16## Release Highlight * Sync: Added WebDAV and Google Drive sync for your books and reading data * Widgets: Added home-screen reading widgets on mobile so you can jump straight back into your book * Reading: You can now open and read Markdown(.md) files * Reading: You can select a word by double-clicking it, and search gained regex and nearby-words modes * Reading: Added a sticky progress bar with chapter markers, and keyboard shortcuts to fine-tune text selection * Library: Added a Recently Read shelf to quickly pick up where you left off, plus a separate background texture for your library * Text-to-Speech: Added offline voices on iOS, a setting to highlight by word or by sentence * PDF: Smoother pinch-zoom and panning, faster scrolling on mobile, and a new contrast option in the view menu * More: Customize the highlight toolbar across all books, filter exported annotations by color and style
More…
## What's Changed * fix(deps): bump undici and dompurify overrides for security advisories by @chrox in https://github.com/readest/readest/pull/4684 * chore(release): fastlane for iOS and macOS release by @chrox in https://github.com/readest/readest/pull/4685 * fix(payment): reflect highest active plan across overlapping Stripe subscriptions by @chrox in https://github.com/readest/readest/pull/4694 * fix(reader): reset scroll to top on paginated fit-width page turn (#4683) by @chrox in https://github.com/readest/readest/pull/4695 * fix(library): preserve original files when deleting "read in place" books by @chrox in https://github.com/readest/readest/pull/4696 * feat(tts): add native local iOS TTS (AVSpeechSynthesizer) by @chrox in https://github.com/readest/readest/pull/4697 * feat(payment): handle App Store and Google Play subscription webhooks by @chrox in https://github.com/readest/readest/pull/4701 * feat(payment): observability for store subscription webhooks by @chrox in https://github.com/readest/readest/pull/4704 * feat(library): add opt-in "purge reading data" toggle to delete confirm (#4698) by @chrox in https://github.com/readest/readest/pull/4705 * fix(backup): normalize Windows backslash paths in backup zip entries (#4703) by @chrox in https://github.com/readest/readest/pull/4706 * feat(reader): proofread rule sync, regex, reorder, and dialog refresh (#4700) by @chrox in https://github.com/readest/readest/pull/4708 * feat(reader): add sticky progress bar with chapter ticks by @chrox in https://github.com/readest/readest/pull/4707 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4709 * fix(kosync): reject non-KOReader-Sync server URLs on connect (#4692) by @chrox in https://github.com/readest/readest/pull/4711 * fix(reader): release volume-key page-flip while TTS is playing (#4691) by @chrox in https://github.com/readest/readest/pull/4710 * fix(reader): remove 1px white seam in PDF spread at fractional DPI (#4587) by @chrox in https://github.com/readest/readest/pull/4713 * feat(sync): decouple the incremental-pull cursor from updated_at via server synced_at (#4678) by @chrox in https://github.com/readest/readest/pull/4712 * fix(tts): recover native System TTS auto-advance when offline (#4613) by @chrox in https://github.com/readest/readest/pull/4716 * fix(reader): add Alt+P proofread shortcut and let Shift+P exit paragraph mode (#4717) by @chrox in https://github.com/readest/readest/pull/4723 * feat(translator): add Urdu as a Translate Text target language (#4721) by @chrox in https://github.com/readest/readest/pull/4726 * fix(reader): make Shift+P toggle, exit, and resume paragraph mode reliably (#4717) by @chrox in https://github.com/readest/readest/pull/4725 * fix(library): keep in-place book paths absolute so uploads stay in fs scope (#4720) by @chrox in https://github.com/readest/readest/pull/4730 * fix(reader): smooth single-notch wheel scroll over PDF pages in scrolled mode (#4727) by @chrox in https://github.com/readest/readest/pull/4732 * fix(sync): sync updated book covers across devices (#4544) by @chrox in https://github.com/readest/readest/pull/4731 * feat(dictionary): add adjustable dictionary popup font size (#4443) by @chrox in https://github.com/readest/readest/pull/4734 * fix(reader): stop per-chapter listener leak that degrades paragraph mode by @chrox in https://github.com/readest/readest/pull/4735 * feat(android): add monochrome themed launcher icon (#4733) by @chrox in https://github.com/readest/readest/pull/4736 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4737 * feat(reader): adjust text selection with Shift/Ctrl/Opt+Arrow keys (#4728) by @chrox in https://github.com/readest/readest/pull/4738 * fix(reader): show the centred section's chapter title in scrolled mode (#4436) by @chrox in https://github.com/readest/readest/pull/4739 * feat(wordlens): en-en glosses, styling, derivation lemmas, display-time cap by @chrox in https://github.com/readest/readest/pull/4744 * fix(reader): require a still-hold before instant-highlight on touch by @chrox in https://github.com/readest/readest/pull/4745 * fix(library): import books opened via "Open with" by default on mobile (#4746) by @chrox in https://github.com/readest/readest/pull/4747 * fix(reader): stop trackpad pinch-zoom flicker on image viewer (#4742) by @chrox in https://github.com/readest/readest/pull/4748 * fix(opds): dereference publication self link for full metadata (#4749) by @chrox in https://github.com/readest/readest/pull/4753 * feat(library): separate background texture for library and reader by @chrox in https://github.com/readest/readest/pull/4754 * feat(opds): show groups as horizontal carousels when 2+ groups (#4750) by @chrox in https://github.com/readest/readest/pull/4755 * fix(reader): make annotation toolbar customization apply to all books by @chrox in https://github.com/readest/readest/pull/4760 * fix(security): iframe srcdoc atrribute can lead to XSS attack by @chrox in https://github.com/readest/readest/pull/4762 * fix(css): multiply mix blend for images in dark override color mode by @chrox in https://github.com/readest/readest/pull/4763 * feat(reader): add regex and nearby-words search modes (#4560) by @chrox in https://github.com/readest/readest/pull/4764 * feat(koplugin): bulk download all cloud books from Library view (#4751) by @chrox in https://github.com/readest/readest/pull/4765 * fix(reader): zoom linked images on single tap (#4757) by @chrox in https://github.com/readest/readest/pull/4766 * feat(reader): extend selections and highlights across pages (#4741) by @chrox in https://github.com/readest/readest/pull/4767 * fix(reader): stop iOS page-turn animation stutter (#4768) by @chrox in https://github.com/readest/readest/pull/4772 * refactor(settings): polish sync and integration panels by @chrox in https://github.com/readest/readest/pull/4774 * fix(sync): WebDAV Sync now pulls latest book metadata and merges config (#4756) by @chrox in https://github.com/readest/readest/pull/4776 * chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4775 * fix(reader): stop a quick-deleted highlight from being re-drawn (#4773) by @chrox in https://github.com/readest/readest/pull/4779 * feat(reader): sync per-book proofread rules across devices by @chrox in https://github.com/readest/readest/pull/4781 * refactor(sync): provider-agnostic file-sync engine with incremental WebDAV sync by @chrox in https://github.com/readest/readest/pull/4784 * fix(opds): hide popular catalog after adding it to My Catalogs (#4782) by @chrox in https://github.com/readest/readest/pull/4787 * feat(webdav): sort and filter the WebDAV browser by @chrox in https://github.com/readest/readest/pull/4786 * fix(sync): keep WebDAV connection after restart when a pull overlaps it by @chrox in https://github.com/readest/readest/pull/4793 * fix(hardcover): never send a book id as edition_id (#4792) by @chrox in https://github.com/readest/readest/pull/4794 * feat(reader): glue non-breaking spaces after short Russian words (#4769) by @chrox in https://github.com/readest/readest/pull/4798 * feat(reader): add contrast option to PDF/CBZ view menu by @chrox in https://github.com/readest/readest/pull/4800 * fix(library): prevent series and description overlap in list view (#4796) by @chrox in https://github.com/readest/readest/pull/4799 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4802 * fix(settings): keep global settings in sync across windows (#4580) by @chrox in https://github.com/readest/readest/pull/4803 * fix(annotator): clean up empty highlight on annotation cancel (#4791) by @chrox in https://github.com/readest/readest/pull/4804 * feat(reader): filter exported annotations by color and style (#4801) by @chrox in https://github.com/readest/readest/pull/4806 * feat(reader): add TTS highlight granularity setting (word or sentence) by @chrox in https://github.com/readest/readest/pull/4807 * fix(reader): keep negative table margins from clipping wrapped layout tables (#4439) by @chrox in https://github.com/readest/readest/pull/4808 * perf(reader): stop per-frame background reflow on swipe page turns (#4785) by @chrox in https://github.com/readest/readest/pull/4814 * fix(reader): eliminate PDF scrolled-mode rendering lag on mobile (#4795) by @chrox in https://github.com/readest/readest/pull/4813 * feat(reader): import and render Markdown (.md) files (#774) by @chrox in https://github.com/readest/readest/pull/4816 * fix(sync): sync WebDAV credentials across devices (#4810) by @chrox in https://github.com/readest/readest/pull/4818 * fix(reader): cap auto page-turn corner zone size (#4812) by @chrox in https://github.com/readest/readest/pull/4820 * fix(node): ensure correct cross-platform path resolution in NodeAppService by @luiscortesdev in https://github.com/readest/readest/pull/4819 * feat(sync): Google Drive cloud sync + premium Third-party Cloud Sync section (desktop) by @chrox in https://github.com/readest/readest/pull/4821 * fix(reader): smooth pinch-zoom, pan for scrolled PDF by @chrox in https://github.com/readest/readest/pull/4817 * feat(reader): add e-ink screen refresh page-turner action (#4687) by @chrox in https://github.com/readest/readest/pull/4822 * feat(sync): stream Google Drive book uploads/downloads from disk by @chrox in https://github.com/readest/readest/pull/4824 * feat(sync): Google Drive sign-in on Android + iOS (mobile OAuth) by @chrox in https://github.com/readest/readest/pull/4823 * fix(sync): retry thrown transport errors in Google Drive sync (Android) by @chrox in https://github.com/readest/readest/pull/4827 * fix(sync): cloud-sync settings polish + temporary premium ungate by @chrox in https://github.com/readest/readest/pull/4828 * feat(library): add recently read shelf to the library (#3797) by @chrox in https://github.com/readest/readest/pull/4829 * fix(reader): render code operators literally instead of as ligatures (#4830) by @chrox in https://github.com/readest/readest/pull/4832 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4833 * feat(sync): library-scoped auto-sync for third-party cloud (WebDAV / Drive) by @chrox in https://github.com/readest/readest/pull/4835 * fix(eink): render Customize Toolbar preview as bordered surface, not black bar (#4839) by @chrox in https://github.com/readest/readest/pull/4841 * feat(widget): mobile home-screen reading widgets (#1602) by @chrox in https://github.com/readest/readest/pull/4842 * feat(sync): Google Drive on web via full-page redirect OAuth by @chrox in https://github.com/readest/readest/pull/4843 * fix(translate): align RTL translated text to the start by @chrox in https://github.com/readest/readest/pull/4844 * feat(reader): select word on double-click and run instant action or toolbar by @chrox in https://github.com/readest/readest/pull/4846 * fix(sync): silence third-party cloud-sync error toasts by @chrox in https://github.com/readest/readest/pull/4845 * release: version 0.11.16 by @chrox in https://github.com/readest/readest/pull/4847 ## New Contributors * @luiscortesdev made their first contribution in https://github.com/readest/readest/pull/4819 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.12...v0.11.16 - Jun 20, 2026 0.11.12## Release Highlight * Reading: Fixed full-page cover images and cover backgrounds that didn't display correctly under a page texture * Reading: Fixed a crash when opening large PDF files on mobile devices * Reading: You can now save or share an image straight from the image viewer * Speed Reading: Fixed the control bar overlapping the playback controls on mobile * Sync: Books without a reading status no longer jump back to the top after every sync * Sync: Your per-device reading view settings now stay local instead of syncing between devices * OPDS: Fixed the Add Catalog dialog appearing behind Settings on mobile ## What's Changed
More…
* fix(opds): show Add Catalog dialog above Settings on mobile by @chrox in https://github.com/readest/readest/pull/4669 * fix(pdf): throttle PDF range reads to fix large-file OOM on Android/iOS (#3470) by @chrox in https://github.com/readest/readest/pull/4670 * fix(rsvp): restore in-flow control bar layout reverted by #4589 by @chrox in https://github.com/readest/readest/pull/4671 * fix(opds): make saved catalog card hover distinct from dialog background by @chrox in https://github.com/readest/readest/pull/4673 * fix(sync): keep view settings device-local and exclude them from sync by @chrox in https://github.com/readest/readest/pull/4672 * fix(reader): keep cover background-image visible under a texture by @chrox in https://github.com/readest/readest/pull/4675 * fix(sync): stop re-pinning statusless books to the top of the library after every sync by @chrox in https://github.com/readest/readest/pull/4677 * fix(reader): stretch fullscreen cover to fill the page by @chrox in https://github.com/readest/readest/pull/4679 * feat(reader): add save/share button to image gallery toolbar by @chrox in https://github.com/readest/readest/pull/4680 * release: version 0.11.12 by @chrox in https://github.com/readest/readest/pull/4682 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.10...v0.11.12 - Jun 19, 2026 0.11.10## Release Highlight * Reading: Added Word Lens, which shows a quick translation above difficult words as you read * Reading: Added real page numbers from the book's own page list, and the current page now appears under the active chapter in the table of contents * Reading: Added Webtoon Mode for seamless, gap-free scrolling through comics and image books, and you can now tap an image or table to open it full-screen * Reading Stats: Track your reading time and pages, now synced across your devices and with KOReader * Library: Unlock the app with your fingerprint or Face ID, browse books by series in list view, search any title on Goodreads * Integrations: Hardcover progress and notes sync automatically, OPDS catalogs gained search and richer descriptions * Text-to-Speech: Words are highlighted one at a time as they're read aloud, with read-along following you through paragraph and speed reading modes * Speed Reading: Added a start delay, word-by-word stepping, dictionary lookups, keyboard shortcuts, and your reading font now styles the focused word * Dictionary: Word variations now resolve to their base forms, with more reliable system dictionary lookups on Android and iOS
More…
* Annotations: Customize the highlight toolbar, share selected text to other apps, and highlights now render correctly over bulleted lists * Platform: Added an opt-in nightly update channel for early access to new features, plus faster, smoother reading and many platform fixes ## What's Changed * release: version 0.11.4 by @chrox in https://github.com/readest/readest/pull/4431 * fix(eink): keep dropdown-toggle label legible under e-ink (#4435) by @chrox in https://github.com/readest/readest/pull/4441 * chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4450 * fix(reader): show KOReader progress-synced as a top-right hint (#4461) by @chrox in https://github.com/readest/readest/pull/4463 * fix(webdav): always sync book covers, not just when syncBooks is on by @loveheaven in https://github.com/readest/readest/pull/4445 * fix(eink): make Custom Fonts panel readable in e-ink mode (#4454) by @chrox in https://github.com/readest/readest/pull/4464 * fix(reader): stop zoomed image pan from flickering on desktop (#4451) by @chrox in https://github.com/readest/readest/pull/4465 * fix(opds): tolerate junk after document element in feeds (#4479) by @chrox in https://github.com/readest/readest/pull/4506 * fix(reader): correct RTL reading position restore on book reopen by @loveheaven in https://github.com/readest/readest/pull/4505 * fix(reader): Android long-press swallowed by hidden page-nav buttons by @loveheaven in https://github.com/readest/readest/pull/4501 * fix(reader): dismiss annotation popup when selection clears by @WantenMN in https://github.com/readest/readest/pull/4483 * fix(updater): disable in-app updater inside Flatpak sandbox by @chrox in https://github.com/readest/readest/pull/4507 * fix(opds): render HTML in publication descriptions by @chrox in https://github.com/readest/readest/pull/4510 * fix(opds): enable search for OPDS 2.0 JSON catalogs by @chrox in https://github.com/readest/readest/pull/4509 * feat(metadata): show file path for in-place imported books by @loveheaven in https://github.com/readest/readest/pull/4508 * fix(linux): resize cursor lost on window edges after hovering webview content by @WantenMN in https://github.com/readest/readest/pull/4512 * feat(opds): make subject and author links clickable in the book detail view by @chrox in https://github.com/readest/readest/pull/4515 * chore(memory): record OPDS HTML description and JSON search notes by @chrox in https://github.com/readest/readest/pull/4516 * perf(import+open): native Rust EPUB/MOBI parser, OPF prefetch, parallel TOC enrichment by @loveheaven in https://github.com/readest/readest/pull/4369 * chore(deps): bump shell-quote to 1.8.4 and qs to 6.15.2 for security by @chrox in https://github.com/readest/readest/pull/4523 * feat(toc): show current reading page under the active item by @chrox in https://github.com/readest/readest/pull/4525 * fix(paginator): guard scrollBy/snap against uninitialized scrollBounds by @loveheaven in https://github.com/readest/readest/pull/4526 * fix(android): deliver Open-with intents reliably on cold start and re-mount by @loveheaven in https://github.com/readest/readest/pull/4527 * feat(reader): random-access file reads on Android via rangefile scheme by @chrox in https://github.com/readest/readest/pull/4534 * chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/4533 * fix(nav): bound section-scan concurrency to keep zip.js writers from ERRORED-ing by @loveheaven in https://github.com/readest/readest/pull/4528 * fix(sync): flush pending Readest cloud push when the reader closes by @chrox in https://github.com/readest/readest/pull/4535 * fix(reader): turn automatically when highlighting across pages by @justin-jiajia in https://github.com/readest/readest/pull/4487 * fix(reader): keep double-click-and-drag from turning the page (#4524) by @chrox in https://github.com/readest/readest/pull/4536 * feat(rsvp): apply reader font face/family settings to the RSVP word (#4519) by @chrox in https://github.com/readest/readest/pull/4537 * fix(reader): keep scrolled-mode scrollbar visible after opening a book (#4470) by @chrox in https://github.com/readest/readest/pull/4538 * fix(reader): prevent accidental paragraph-mode exit and center its bar (#4474) by @chrox in https://github.com/readest/readest/pull/4539 * fix(reader): hide footnote aside border again when custom fonts are loaded (#4438) by @chrox in https://github.com/readest/readest/pull/4540 * feat(rsvp): start-delay setting, manual word stepping, context dictionary lookup, and keyboard shortcut by @chrox in https://github.com/readest/readest/pull/4541 * fix(reader): Android text selection breaks on the first word of hyphenated paragraphs by @chrox in https://github.com/readest/readest/pull/4545 * feat(library): search a book on Goodreads from the library and reader (#4543) by @chrox in https://github.com/readest/readest/pull/4548 * feat(reader): reference page numbers from EPUB page-list with manual page count fallback by @chrox in https://github.com/readest/readest/pull/4549 * ci: pin android-emulator-runner by SHA + shard the slow PR test job by @chrox in https://github.com/readest/readest/pull/4547 * feat(css): override document layout also apply to hyphenation, closes #4529 by @chrox in https://github.com/readest/readest/pull/4546 * ci: single, workspace-aware rust-cache for build_tauri_app by @chrox in https://github.com/readest/readest/pull/4550 * docs(readme): add a Documentation section linking to readest.com/docs by @chrox in https://github.com/readest/readest/pull/4551 * fix(reader): draw annotation highlights over bullet lists by @chrox in https://github.com/readest/readest/pull/4552 * fix(dict): resolve Android content-URI filenames via native basename (#4489, #4472) by @chrox in https://github.com/readest/readest/pull/4553 * perf(reader): reduce open-book TBT by batching layout-thrashing reads/writes and deferring annotation page back-fill by @loveheaven in https://github.com/readest/readest/pull/4554 * perf(reader): throttle library.json writes and cache known dirs to cut IPC by @loveheaven in https://github.com/readest/readest/pull/4556 * perf(reader): split progress into its own store to cut React commit storm by @loveheaven in https://github.com/readest/readest/pull/4557 * fix(reader): texture the scrolled-mode top inset mask by @chrox in https://github.com/readest/readest/pull/4563 * perf(reader): coalesce relocate events and memoize BookCell to stop per-swipe storm by @loveheaven in https://github.com/readest/readest/pull/4562 * perf(cfi): bucket booknotes per chapter and batch-collapse location matcher by @loveheaven in https://github.com/readest/readest/pull/4561 * fix(reader): keep dark-mode page body transparent so the bg texture shows by @chrox in https://github.com/readest/readest/pull/4564 * fix(tts): keep voice list stable across region variants of a language by @chrox in https://github.com/readest/readest/pull/4565 * fix(android): launch installed dictionary for system lookup, closes #4559 by @chrox in https://github.com/readest/readest/pull/4568 * feat(tts): word-by-word highlighting for Edge TTS by @chrox in https://github.com/readest/readest/pull/4566 * agent: stage memories by @chrox in https://github.com/readest/readest/pull/4569 * feat(reader): Share intent + customizable annotation toolbar (#4014) by @chrox in https://github.com/readest/readest/pull/4570 * fix(reader): open TXT files shared via "Open with" by @chrox in https://github.com/readest/readest/pull/4571 * fix(library): refresh book cover after editing metadata by @chrox in https://github.com/readest/readest/pull/4572 * test(tts): browser e2e for TTS auto-advance across a chapter boundary by @chrox in https://github.com/readest/readest/pull/4573 * feat(reader): sync paragraph mode & speed reader with TTS read-along (#3235) by @chrox in https://github.com/readest/readest/pull/4576 * feat(updater): nightly update channel (Android/Windows/macOS/Linux) by @chrox in https://github.com/readest/readest/pull/4577 * perf(reader): fix page-turn lag from global (highlight-all) annotations (#4575) by @chrox in https://github.com/readest/readest/pull/4579 * fix(ci): correct nightly Linux AppImage collect path by @chrox in https://github.com/readest/readest/pull/4581 * feat(dictionary): lemmatize inflected words before lookup (#4574) by @chrox in https://github.com/readest/readest/pull/4582 * fix(nightly): publish latest.json via directory rclone copy by @chrox in https://github.com/readest/readest/pull/4588 * fix(rsvp): keep the audio toggle from overlapping transport on mobile by @chrox in https://github.com/readest/readest/pull/4585 * feat(reader): Word Wise inline vocabulary hints by @chrox in https://github.com/readest/readest/pull/4589 * feat(settings): move update & telemetry controls into Settings → Behavior by @chrox in https://github.com/readest/readest/pull/4592 * docs(readme): point donations to the unified donate.readest.com hub by @chrox in https://github.com/readest/readest/pull/4601 * perf(library): in-place re-import is a no-op on the same file path by @loveheaven in https://github.com/readest/readest/pull/4597 * feat(reader): open image gallery & table zoom on single tap by @chrox in https://github.com/readest/readest/pull/4600 * docs(readme): remove the Sponsors / TestMu AI section by @chrox in https://github.com/readest/readest/pull/4604 * docs(readme): make license badge static and modernize release badge by @chrox in https://github.com/readest/readest/pull/4603 * feat(statistics): KOReader-compatible reading stats with cross-device sync by @chrox in https://github.com/readest/readest/pull/4606 * chore(agent): update agent memories by @chrox in https://github.com/readest/readest/pull/4610 * fix(opds): handle entries with no downloadable format (#4599) by @chrox in https://github.com/readest/readest/pull/4611 * feat(library): show series and number in list view (#4593) by @chrox in https://github.com/readest/readest/pull/4612 * feat(hardcover): automatically sync progress and notes by @chrox in https://github.com/readest/readest/pull/4614 * feat(library): add Clear Pending action to transfer queue by @chrox in https://github.com/readest/readest/pull/4617 * chore(deps): bump esbuild to 0.28.1 and vitest to 4.1.x for security advisories by @chrox in https://github.com/readest/readest/pull/4618 * chore(deps): bump transitive deps for security advisories (batch) by @chrox in https://github.com/readest/readest/pull/4620 * build(web): standalone Docker image + drop Turbopack build cache by @chrox in https://github.com/readest/readest/pull/4619 * chore(config): add disableIncrementalCache to skip populating remote R2 incremental cache by @chrox in https://github.com/readest/readest/pull/4623 * feat(library): add Purge Data and fold detail actions into a More menu (#4615) by @chrox in https://github.com/readest/readest/pull/4626 * fix(library): never let a routine save shrink library.json (cold-start "Open with" wipe) by @chrox in https://github.com/readest/readest/pull/4627 * fix(android): move plugin @Command I/O off the main thread; fix WebView leak & #3297 blank screen by @chrox in https://github.com/readest/readest/pull/4628 * fix(library): restore back button from series/author folders (#4437) by @chrox in https://github.com/readest/readest/pull/4629 * fix(search): show context for matches in italicized text (#4594) by @chrox in https://github.com/readest/readest/pull/4631 * fix(koplugin): sync note deletions to Readest via tombstones by @chrox in https://github.com/readest/readest/pull/4632 * refactor(wordlens): rename "Word Wise" to "Word Lens" by @chrox in https://github.com/readest/readest/pull/4633 * feat(wordlens): trim hints to first sense + suppress known derivations by @chrox in https://github.com/readest/readest/pull/4635 * fix(share): load cover under COEP, keep share links out of the clipper, fix in-app import by @chrox in https://github.com/readest/readest/pull/4636 * chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4637 * fix(security): harden OPDS proxy SSRF, storage key validation, Stripe check by @chrox in https://github.com/readest/readest/pull/4638 * fix(security): scope Tauri download_file/upload_file to fs_scope by @chrox in https://github.com/readest/readest/pull/4639 * fix(epub): import books whose OPF has an unescaped ampersand by @chrox in https://github.com/readest/readest/pull/4640 * fix(reader): paginate inline-block-wrapped chapters instead of clipping them by @chrox in https://github.com/readest/readest/pull/4641 * fix(reader): keep last paragraph's line spacing by making the section skip link a <span> by @chrox in https://github.com/readest/readest/pull/4642 * fix(dict): stop iOS instant system dictionary popping multiple times by @chrox in https://github.com/readest/readest/pull/4644 * feat(annotations): unify highlights and annotations into one record (#3870, #4511) by @chrox in https://github.com/readest/readest/pull/4647 * fix(rsvp): render RTL words whole so Arabic shapes correctly (#4630) by @chrox in https://github.com/readest/readest/pull/4648 * fix(metadata): parse FB2 series from title-info sequence (#4646) by @chrox in https://github.com/readest/readest/pull/4649 * feat(applock): biometric unlock (fingerprint / Face ID) at startup on mobile by @chrox in https://github.com/readest/readest/pull/4650 * fix(security): unblock app-dir downloads broken by transfer_file fs-scope guard by @chrox in https://github.com/readest/readest/pull/4651 * fix(library): keep each series together when secondary-sorting by Series (#4652) by @chrox in https://github.com/readest/readest/pull/4653 * fix(library): count only uploaded, non-deleted books in synced toast by @chrox in https://github.com/readest/readest/pull/4654 * fix(settings): tidy Word Lens data pack and level rows on mobile by @chrox in https://github.com/readest/readest/pull/4655 * feat: sync reading status across devices and with KOReader (#4634) by @chrox in https://github.com/readest/readest/pull/4656 * feat(tts): reuse the speaking session across paragraph & RSVP modes by @chrox in https://github.com/readest/readest/pull/4657 * fix: bot-review robustness fixes (TTS sync, updater, nightly, a11y) by @chrox in https://github.com/readest/readest/pull/4659 * fix(txt): stop detecting measure-word prose as chapters in TXT import (#4658) by @chrox in https://github.com/readest/readest/pull/4660 * chore(send-to-readest): v0.2.1, zip packaging script, store submission doc by @chrox in https://github.com/readest/readest/pull/4661 * fix(send-to-readest): rephrase popup copy, remove em dashes from i18n strings by @chrox in https://github.com/readest/readest/pull/4663 * feat(reader): Webtoon Mode seamless continuous scroll for image books (#3647) by @chrox in https://github.com/readest/readest/pull/4662 * chore(send-to-readest): add Chrome Web Store screenshot generator by @chrox in https://github.com/readest/readest/pull/4664 * chore: only show the current position item in TOC and update agent memories by @chrox in https://github.com/readest/readest/pull/4665 * fix(koplugin): repair reading-stats sync push/pull by @chrox in https://github.com/readest/readest/pull/4666 * release: version 0.11.10 by @chrox in https://github.com/readest/readest/pull/4667 ## New Contributors * @WantenMN made their first contribution in https://github.com/readest/readest/pull/4483 * @justin-jiajia made their first contribution in https://github.com/readest/readest/pull/4487 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.4...v0.11.10 - Jun 2, 2026 0.11.4## Release Highlight * Library: You can now send a book file directly from the bookshelf selection popup * Reading: Wide tables now scroll sideways, and oversized images or code blocks scroll in place instead of accidentally turning the page * Reading: Fixed page backgrounds, textures, and full-page cover images that didn't display correctly in paginated and scrolled modes * Reading: Fixed bright table and note backgrounds that didn't match the page in dark mode * Reading: Fixed the reading ruler drifting while scrolling and a stray line at the bottom of the page * Fonts: Fixed custom fonts disappearing after re-importing, and they now apply correctly inside books * PDF: Fixed scanned PDFs not displaying in installed app builds * Annotations: The annotation list now scrolls back to your nearest highlight, and exporting to Readwise works again on desktop * Android: Fixed a freeze when long-pressing images, plus issues with copying text and opening books directly from other apps
More…
* Fixes: Kept the book menu order stable, synced KOReader book covers, and fixed a Windows launch crash ## What's Changed * chore: fix release workflow by @chrox in https://github.com/readest/readest/pull/4372 * chore: bump tauri plugins by @chrox in https://github.com/readest/readest/pull/4373 * fix(release): don't clobber latest.json with a 404 "Not Found" body by @chrox in https://github.com/readest/readest/pull/4376 * fix(reader): show fullscreen cover in scrolled mode (#4379) by @chrox in https://github.com/readest/readest/pull/4381 * fix(pdf): ship jbig2.wasm so scanned PDFs render in packaged builds by @chrox in https://github.com/readest/readest/pull/4382 * fix(reader): inline custom @font-face rules in iframe stylesheet by @loveheaven in https://github.com/readest/readest/pull/4383 * fix(koplugin): upload local book cover so synced books show a cover (#4374) by @chrox in https://github.com/readest/readest/pull/4385 * fix(reader): stop reading ruler creeping down on scroll (#4386) by @chrox in https://github.com/readest/readest/pull/4388 * fix(metainfo): declare desktop and mobile device support by @chrox in https://github.com/readest/readest/pull/4395 * fix(desktop): sanitize invalid .window-state.json before restore by @chrox in https://github.com/readest/readest/pull/4401 * fix(reader): scroll wide EPUB tables horizontally by @Jesusm1229 in https://github.com/readest/readest/pull/4391 * fix(reader): replace light callout backgrounds in dark mode by @Jesusm1229 in https://github.com/readest/readest/pull/4392 * fix(reader): scroll oversized blocks in-place instead of turning the page (#4400) by @chrox in https://github.com/readest/readest/pull/4415 * fix(reader): show background texture in paginated mode (#4399) by @chrox in https://github.com/readest/readest/pull/4417 * fix(sync): mint reincarnation token on re-import of custom fonts/textures (#4410) by @chrox in https://github.com/readest/readest/pull/4416 * fix(readwise): use Tauri HTTP transport in desktop app by @momadacoding in https://github.com/readest/readest/pull/4413 * fix(reader): use Tauri clipboard plugin for copy on Android by @loveheaven in https://github.com/readest/readest/pull/4409 * fix(android): open book directly when launched via 'Open with' by @loveheaven in https://github.com/readest/readest/pull/4407 * fix(reader): stop footer progress info painting a stray focus ring (#4397) by @chrox in https://github.com/readest/readest/pull/4418 * feat(library): send book file from bookshelf selection popup by @loveheaven in https://github.com/readest/readest/pull/4402 * fix(library): use ghost cancel buttons in migrate-data dialog for e-ink (#4396) by @chrox in https://github.com/readest/readest/pull/4422 * fix(library): stop bookshelf context menu shuffling its order (#4389) by @chrox in https://github.com/readest/readest/pull/4421 * fix(txt): more robust author parser in TXT filenames by @chrox in https://github.com/readest/readest/pull/4423 * refactor(share): make saveFile content nullable for path-based shares by @chrox in https://github.com/readest/readest/pull/4424 * fix(reader): suppress Android image callout freezing the image viewer by @chrox in https://github.com/readest/readest/pull/4425 * fix(reader): keep table background matching the page in dark mode (#4419) by @chrox in https://github.com/readest/readest/pull/4426 * fix(reader): restore annotation list auto-scroll to the nearest item by @chrox in https://github.com/readest/readest/pull/4428 * fix(reader): keep paginated page background inside its column (#4394) by @chrox in https://github.com/readest/readest/pull/4429 * chore(i18n): translate new strings; commit pending agent memory notes by @chrox in https://github.com/readest/readest/pull/4430 ## New Contributors * @Jesusm1229 made their first contribution in https://github.com/readest/readest/pull/4391 * @momadacoding made their first contribution in https://github.com/readest/readest/pull/4413 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.2...v0.11.4 - May 30, 2026 0.11.2## Release Highlight * Send to Readest: Clip web pages and articles into your library via the system share sheet, or by emailing them in * Dictionary: Look up words with your device's built-in system dictionary on macOS, iOS, and Android, plus faster MDict and StarDict imports * Library: Import books from a folder with format and size filters, or read them in place from external folders without copying * Reading: The reading ruler now follows individual lines, you can swipe along the edge to adjust brightness on mobile, and customize hardware-button page turning * Annotations: Create global highlights that apply to every matching passage in a book * Text-to-Speech: Added a hotkey to highlight the sentence being read aloud, and made TTS more reliable * Fonts: Fixed custom fonts disappearing after restarting or reloading the app * iOS: Fixed the reader not updating when you switch between light and dark mode * Android: Fixed an issue where highlighting text could trigger unintended page turns
More…
* Fixes: Many improvements across PDFs, EPUBs, Sync, Scrolling, Highlighting ## What's Changed * fix(android): fixed .mdx/.mdd files not shown in file chooser on Android, closes #4124 by @chrox in https://github.com/readest/readest/pull/4125 * fix(koreader-sync): populate chapter field on synced annotations by @jenningsb2 in https://github.com/readest/readest/pull/4134 * feat(android): upgrade in-process WebView on devices stuck on old system WebView by @chrox in https://github.com/readest/readest/pull/4142 * chore(deps): bump Next.js to version 16.2.6 by @chrox in https://github.com/readest/readest/pull/4143 * chore(deps): bump vulnerable Rust dependencies by @chrox in https://github.com/readest/readest/pull/4144 * feat(reader): improve Japanese selection UX by disabling furigana selection by @JustADeer in https://github.com/readest/readest/pull/4137 * fix(tts): restore cross-section auto-page-turn during TTS playback by @royisme in https://github.com/readest/readest/pull/4148 * feat(android): also upgrade webview from beta, dev and canary channels when the stable channel isn't updatable by @chrox in https://github.com/readest/readest/pull/4149 * fix(sync): publish custom css settings after applying css, closes #4146 by @chrox in https://github.com/readest/readest/pull/4151 * fix(footnote): don't treat in-book numeric chapter/verse links as footnotes by @chrox in https://github.com/readest/readest/pull/4152 * Add namespace to koreader plugin modules to avoid collisions with other plugins by @j-v in https://github.com/readest/readest/pull/4153 * fix(dev): rewrite HMR WebSocket URL in Tauri mobile dev by @chrox in https://github.com/readest/readest/pull/4160 * fix(opds): show summary as book description, closes #4156 by @chrox in https://github.com/readest/readest/pull/4162 * fix(eink): fixed sync toggle styles in eink mode, closes #4155 by @chrox in https://github.com/readest/readest/pull/4163 * fix(koplugin): omit empty note field when syncing annotations by @jenningsb2 in https://github.com/readest/readest/pull/4161 * fix(koplugin): stop sync from wiping cloud book fields + Library polish by @chrox in https://github.com/readest/readest/pull/4166 * fix(layout): keep header/footer transparent and fixed in scrolled mode by @chrox in https://github.com/readest/readest/pull/4168 * fix(koplugin): harden cover-download subprocess against Adreno exit crash by @chrox in https://github.com/readest/readest/pull/4169 * fix(tts): retry Edge TTS preload up to 3 times on failure by @chrox in https://github.com/readest/readest/pull/4171 * fix(reader): revert smooth mouse-wheel scrolling in scroll mode by @chrox in https://github.com/readest/readest/pull/4172 * feat(reader): custom hardware-button page turning by @chrox in https://github.com/readest/readest/pull/4177 * feat(reader): add Clear All button to annotation/bookmark sidebar tabs by @loveheaven in https://github.com/readest/readest/pull/4175 * fix(a11y): use position absolute for skip-next-section link to prevent blank page by @leehuazhong in https://github.com/readest/readest/pull/4182 * i18n(ios): add more localized languages in plist by @chrox in https://github.com/readest/readest/pull/4187 * fix: export annotations even without TOC, closes #4186 by @chrox in https://github.com/readest/readest/pull/4188 * refactor(reader): harden saveConfig updatedAt refresh by @chrox in https://github.com/readest/readest/pull/4189 * fix(opds): detect XML feeds with leading whitespace before root element by @chrox in https://github.com/readest/readest/pull/4190 * fix(fonts): hydrate custom fonts on library page by @chrox in https://github.com/readest/readest/pull/4191 * fix(dictionary): normalize lookup query with trim + case fallback by @chrox in https://github.com/readest/readest/pull/4192 * fix(tts): skip hidden footnotes in TTS, closes #4135 by @chrox in https://github.com/readest/readest/pull/4193 * fix(koplugin): honor remote annotation deletions (closes #4119) by @chrox in https://github.com/readest/readest/pull/4194 * fix(reader): filter Magic Mouse wheel events to stop accidental page turns by @chrox in https://github.com/readest/readest/pull/4195 * feat(readwise): allow overriding the Readwise sync base URL by @chrox in https://github.com/readest/readest/pull/4196 * feat(reader): import annotations from Moon+ Reader (.mrexpt) by @loveheaven in https://github.com/readest/readest/pull/4174 * feat(reader): RSVP CJK character mode and whole-word highlight by @chrox in https://github.com/readest/readest/pull/4199 * fix(tests): materialize zip.js blob before wrapping in File for case-mismatch fixture by @loveheaven in https://github.com/readest/readest/pull/4203 * fix(reader): resolve KOReader sync conflict against non-KOReader servers by @chrox in https://github.com/readest/readest/pull/4205 * fix(opds): send Basic auth preemptively for optional-auth servers by @chrox in https://github.com/readest/readest/pull/4206 * fix(txt): merge scene-break sections into the preceding chapter (#4063) by @chrox in https://github.com/readest/readest/pull/4207 * feat(config): version book config schema by @chrox in https://github.com/readest/readest/pull/4208 * fix(sync): push books row alongside in-reader progress auto-sync by @chrox in https://github.com/readest/readest/pull/4209 * fix(ios): refresh appearance on system light/dark change by @chrox in https://github.com/readest/readest/pull/4210 * feat(backup): include global settings in backup zip by @chrox in https://github.com/readest/readest/pull/4211 * test(e2e): add a Playwright web e2e lane (reading & annotation flows) by @chrox in https://github.com/readest/readest/pull/4214 * ci: cache Playwright browsers and apt packages in PR checks by @chrox in https://github.com/readest/readest/pull/4215 * chore(security): add Scorecard workflow for supply-chain security by @chrox in https://github.com/readest/readest/pull/4221 * feat(dictionary): add system dictionary provider for macOS, iOS, and Android by @loveheaven in https://github.com/readest/readest/pull/4219 * chore: switch code formatter from Prettier to Biome by @chrox in https://github.com/readest/readest/pull/4223 * chore(security): address code scanning findings by @chrox in https://github.com/readest/readest/pull/4224 * ci(release): use cargo tauri CLI for Linux bundler by @chrox in https://github.com/readest/readest/pull/4225 * fix(ios): suppress native text-selection menu over annotation tools by @chrox in https://github.com/readest/readest/pull/4231 * feat(send): Send to Readest — multi-channel capture into your library by @chrox in https://github.com/readest/readest/pull/4230 * fix(send): make recent-activity status labels translatable by @chrox in https://github.com/readest/readest/pull/4236 * feat(send): auto-seed the allowlist with the user's account email by @chrox in https://github.com/readest/readest/pull/4237 * fix(library): clear nested-folder groups when deleting from bookshelf by @loveheaven in https://github.com/readest/readest/pull/4226 * refactor(alert): stack title above actions row to fix narrow-width layout by @chrox in https://github.com/readest/readest/pull/4239 * fix(send): library-clobber + perf: lazy-load conversion deps by @chrox in https://github.com/readest/readest/pull/4238 * feat(library): add Import from Folder dialog with format/size filters by @loveheaven in https://github.com/readest/readest/pull/4229 * fix(sel): clamp declared fontSize when it disagrees with rendered height by @loveheaven in https://github.com/readest/readest/pull/4244 * feat(send): clip web URLs into self-contained EPUBs via Tauri webview by @chrox in https://github.com/readest/readest/pull/4241 * chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4249 * chore(worktree): copy gen/apple per-worktree so iOS dev builds the worktree's source by @chrox in https://github.com/readest/readest/pull/4251 * fix(macos): fix traffic lights position on macOS 26 by @loveheaven in https://github.com/readest/readest/pull/4247 * feat(send): mobile URL clipping (iOS WKWebView + Android WebView) by @chrox in https://github.com/readest/readest/pull/4252 * feat(send): handle shared URLs from system share sheets (iOS + Android) by @chrox in https://github.com/readest/readest/pull/4256 * feat(annotator): support global highlights that fan out across all matching positions by @loveheaven in https://github.com/readest/readest/pull/4257 * Add GHCR and Docker Hub image publishing by @pourmand1376 in https://github.com/readest/readest/pull/4250 * feat(send): browser extension that clips pages into Readest as EPUBs by @chrox in https://github.com/readest/readest/pull/4266 * feat(send): iOS share-extension picker + App Group queue + reliable host launch by @chrox in https://github.com/readest/readest/pull/4267 * docs: add architecture and code-layout guides by @loveheaven in https://github.com/readest/readest/pull/4265 * fix(migration): skip migrate20251029 silently on fresh installs by @loveheaven in https://github.com/readest/readest/pull/4268 * fix(send): address extension review findings by @chrox in https://github.com/readest/readest/pull/4271 * ci: optimize build time for Docker and CI workflows by @pourmand1376 in https://github.com/readest/readest/pull/4263 * feat(send): twitter/x site rule + meta-tag fallback for stale site rules by @chrox in https://github.com/readest/readest/pull/4270 * feat(integrations): add WebDAV sync to Reading Sync settings by @loveheaven in https://github.com/readest/readest/pull/4204 * fix(eink): restore [data-eink='true'] button rule grouping by @iFocuspace in https://github.com/readest/readest/pull/4273 * ci: address code scanning scorecard alerts by @chrox in https://github.com/readest/readest/pull/4275 * chore: bump tauri-plugin-webview-upgrade submodule to c7c04ab by @loveheaven in https://github.com/readest/readest/pull/4276 * fix: Docker image tagging, production runtime, dev compose, and Codespace support by @pourmand1376 in https://github.com/readest/readest/pull/4277 * fix(layout): use 100vh fallback for .full-height to unbreak old Chromium WebView by @iFocuspace in https://github.com/readest/readest/pull/4278 * feat(send): gate email-in to Plus, Pro, and Lifetime plans by @chrox in https://github.com/readest/readest/pull/4280 * fix(cbz): ComicInfo metadata + CBZ page count + WebDAV i18n by @chrox in https://github.com/readest/readest/pull/4282 * fix(reader): restore right-column clicks and selection in dual-page mode by @chrox in https://github.com/readest/readest/pull/4283 * fix(library): seed custom texture store at boot so saved texture renders on first paint by @chrox in https://github.com/readest/readest/pull/4284 * fix(reader): keep New Chat button visible above Android nav bar and force theme contrast by @loveheaven in https://github.com/readest/readest/pull/4287 * fix: respect Android Back / Esc inside Settings sub-pages and Import-from-Folder dialog by @loveheaven in https://github.com/readest/readest/pull/4286 * fix(ios): don't crash app init when Storefront region code is unavailable by @loveheaven in https://github.com/readest/readest/pull/4291 * feat(ai): add OpenRouter provider and unify provider HTTP transport by @loveheaven in https://github.com/readest/readest/pull/4289 * fix(db): forward DatabaseOpts to tauri-plugin-turso by @chrox in https://github.com/readest/readest/pull/4292 * feat(reedy): Phase 1A — MVP retrieval primitives by @chrox in https://github.com/readest/readest/pull/4293 * fix(perf): avoid Layerize storm caused by huge `<pre>` blocks on Android by @chrox in https://github.com/readest/readest/pull/4295 * feat(reedy): Phase 1B — wire Reedy into the chat, settings, and Sources UI by @chrox in https://github.com/readest/readest/pull/4296 * feat(reedy): Appendix A · Phase 2.1–2.3 — agent runtime foundation by @chrox in https://github.com/readest/readest/pull/4298 * feat(reedy): Appendix A · Phase 2.4 — built-in tools (non-memory families) by @chrox in https://github.com/readest/readest/pull/4299 * feat(reedy): Appendix A · Phase 2.5 — PromptContextBuilder + layers + tokenBudget by @chrox in https://github.com/readest/readest/pull/4300 * feat(reedy): Appendix A · Phase 2.6 — AgentRuntime + streamLoop by @chrox in https://github.com/readest/readest/pull/4301 * feat(reedy): Appendix A · Phase 3.1 — Memory services + memory tools by @chrox in https://github.com/readest/readest/pull/4302 * feat(reedy): Appendix A · Phase 3.2 — MemoryConsolidator by @chrox in https://github.com/readest/readest/pull/4304 * feat(reedy): Appendix A · Phase 5.1 — SkillRegistry + 3 seed skills by @chrox in https://github.com/readest/readest/pull/4306 * feat(reedy): Appendix A · Phase 4 — custom thread UI on AgentRuntime by @chrox in https://github.com/readest/readest/pull/4308 * feat(reedy): wire skills + memory tools + allowlist into the agent runtime by @chrox in https://github.com/readest/readest/pull/4309 * feat(reedy): close the memory loop — wire MemoryConsolidator + live providers by @chrox in https://github.com/readest/readest/pull/4310 * fix(opds): make Android Back / Reader→Back behave correctly inside the OPDS browser by @loveheaven in https://github.com/readest/readest/pull/4311 * chore: bump turso to version 0.6.1 by @chrox in https://github.com/readest/readest/pull/4312 * agent: support cross-agent workspace, now it should work with claude and codex by @chrox in https://github.com/readest/readest/pull/4318 * fix(opds): show 'Open & Read' for publications already in the library by @loveheaven in https://github.com/readest/readest/pull/4313 * feat(ios): folder import with security-scoped bookmark persistence by @loveheaven in https://github.com/readest/readest/pull/4314 * agent: update implementation scope by @chrox in https://github.com/readest/readest/pull/4319 * fix(document): accept zips whose magic bytes are mangled but have valid EOCD by @loveheaven in https://github.com/readest/readest/pull/4321 * feat(library): in-place import from registered external folders by @loveheaven in https://github.com/readest/readest/pull/4315 * fix(file-picker): unblock .mrexpt and other custom extensions on Android by @loveheaven in https://github.com/readest/readest/pull/4323 * fix(fxl): align TTS highlight overlay with scaled iframe coords by @chrox in https://github.com/readest/readest/pull/4324 * fix(library): suppress loading-dots flicker on reader→library return by @loveheaven in https://github.com/readest/readest/pull/4325 * i18n: translate new strings for OpenAI-compatible LLM, Reedy, and in-place library by @chrox in https://github.com/readest/readest/pull/4326 * fix(sync): skip replica upload when not authenticated by @loveheaven in https://github.com/readest/readest/pull/4327 * fix(reader): fit duokan-page-fullscreen cover image without cropping by @chrox in https://github.com/readest/readest/pull/4328 * fix(library): wrap select-mode action bar on small screens by @chrox in https://github.com/readest/readest/pull/4329 * fix(library): make bookitem-main shrink to match cover in fit mode by @chrox in https://github.com/readest/readest/pull/4331 * fix(tauri): skip runtime-config.js injection in static export by @chrox in https://github.com/readest/readest/pull/4332 * feat(dict): faster MDict/StarDict import + lazy lookup; raw .dict; UX by @chrox in https://github.com/readest/readest/pull/4334 * chore(deps): bump the github-actions group with 6 updates by @dependabot[bot] in https://github.com/readest/readest/pull/4333 * feat(reader): add disableSwipe option to disable swipe-to-paginate by @chrox in https://github.com/readest/readest/pull/4335 * fix(dict): restore MDD eager init; CSP-safe audio handler; gate binary uploads on sync category by @chrox in https://github.com/readest/readest/pull/4337 * feat(telemetry): opt-out by default for new users; consent prompt for 10% by @chrox in https://github.com/readest/readest/pull/4340 * fix(sync): prevent cross-device progress overwrite; retry first pull on flaky networks by @chrox in https://github.com/readest/readest/pull/4341 * fix(reader): keep Android paginated text selection from jumping back to first rendered section by @chrox in https://github.com/readest/readest/pull/4342 * feat: add empty state hints and loading indicators for annotations, bookmarks, notes, font import, and Moon+ Reader import by @loveheaven in https://github.com/readest/readest/pull/4338 * feat(library): import-failure modal + group sort + Android callout fix by @chrox in https://github.com/readest/readest/pull/4345 * fix(notes): export uses save dialog on Windows to avoid share UI freeze by @chrox in https://github.com/readest/readest/pull/4346 * feat(library): add secondary "Then by" sort with smart defaults by @chrox in https://github.com/readest/readest/pull/4347 * fix(reader): scrolled-mode prev-section preloading and nav drift (#4112) by @chrox in https://github.com/readest/readest/pull/4349 * feat(annotations): configurable export link type + dedicated Import Annotations modal by @chrox in https://github.com/readest/readest/pull/4350 * feat(opds): add facet navigation and quick catalog registration in header by @zeedif in https://github.com/readest/readest/pull/4348 * i18n: translate Import Annotations + OPDS catalog strings by @chrox in https://github.com/readest/readest/pull/4351 * fix(reader): keep TOC scrolled to the current chapter on refresh by @chrox in https://github.com/readest/readest/pull/4353 * test(reader): de-flake scrolled-mode backward-preload precondition (#4112) by @chrox in https://github.com/readest/readest/pull/4354 * perf(sidebar): virtualize BooknoteView and memoize derivations by @loveheaven in https://github.com/readest/readest/pull/4352 * test(rsvp): stop RSVPController tests leaking real timers into teardown by @chrox in https://github.com/readest/readest/pull/4355 * feat(reader): swipe-to-adjust brightness gesture on mobile (#3021) by @chrox in https://github.com/readest/readest/pull/4356 * feat(reader): line-aware reading ruler by @chrox in https://github.com/readest/readest/pull/4358 * feat(library): add Manage Cache to advanced settings by @chrox in https://github.com/readest/readest/pull/4359 * fix(ui): refine reader side panels and their empty states by @chrox in https://github.com/readest/readest/pull/4361 * fix(dictionary): correct System Dictionary platform gating on web and iPad by @chrox in https://github.com/readest/readest/pull/4362 * feat(dictionary): import companion MDD files that share the MDX prefix by @chrox in https://github.com/readest/readest/pull/4363 * fix(reader): show full bookmark ribbon in scrolled mode header by @chrox in https://github.com/readest/readest/pull/4365 * fix(kosync): resolve progress CFI via its own spine section by @chrox in https://github.com/readest/readest/pull/4364 * fix(reader): collapse TOC to the current chapter's path by default by @chrox in https://github.com/readest/readest/pull/4366 * fix(kosync): reflowable conflict comparison via local CFI; scrolled-mode + library fixes by @chrox in https://github.com/readest/readest/pull/4367 * feat(tts): hotkey to highlight the currently-spoken TTS sentence (#4085) by @chrox in https://github.com/readest/readest/pull/4368 * fix(sync,reader): discard malformed sync CFIs; fix swipe background flash by @chrox in https://github.com/readest/readest/pull/4370 * release: version 0.11.2 by @chrox in https://github.com/readest/readest/pull/4371 ## New Contributors * @jenningsb2 made their first contribution in https://github.com/readest/readest/pull/4134 * @leehuazhong made their first contribution in https://github.com/readest/readest/pull/4182 * @pourmand1376 made their first contribution in https://github.com/readest/readest/pull/4250 * @iFocuspace made their first contribution in https://github.com/readest/readest/pull/4273 **Full Changelog**: https://github.com/readest/readest/compare/v0.11.1...v0.11.2 - May 11, 2026 0.11.1## Release Highlight * Dictionaries: You can now import your own StarDict and MDict dictionaries * Sync: Your custom dictionaries, custom fonts, background textures and OPDS catalogs now sync across devices * KOReader Sync: Browse your full Readest Library from inside KOReader, with improved sync diagnostics * OPDS: Stream books over OPDS-PSE and optionally auto-download new titles from feeds * Sharing: Create share links for books, jump directly to book via deep links in exported annotations * Library: Added an optional 4-digit PIN lock at app launch to keep your library private * Library: You can now drag entire folders to import books * Reading: Added support for inline CJK ruby annotations (warichu/Gezhu), improved footnote detection * Speed Reading: Reading position now resumes correctly across devices and inside long sections
More…
* Fixes: Many fixes across PDFs, MOBIs, EPUBs, TTS, scrolling, and accessibility ## What's Changed * fix(i18n): fix translations in RU by @chrox in https://github.com/readest/readest/pull/3866 * fix(toc): fix page number of some TOC items from section fragments by @chrox in https://github.com/readest/readest/pull/3867 * feat(windows): use overlay scrollbar by @tongyuantongyu in https://github.com/readest/readest/pull/3868 * refactor(toc): cache navigable structure per book by @chrox in https://github.com/readest/readest/pull/3869 * refactor(nav): refactor book nav service with TOC enrichment by @chrox in https://github.com/readest/readest/pull/3874 * chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/readest/readest/pull/3880 * refactor: fixed typo in module name by @chrox in https://github.com/readest/readest/pull/3881 * fix(library): fixed opening shared books from other apps by @chrox in https://github.com/readest/readest/pull/3884 * fix(a11y): fixed saving reading progress with screen readers, closes #3864 by @chrox in https://github.com/readest/readest/pull/3891 * feat(kosync): defer push after resume by @zb140 in https://github.com/readest/readest/pull/3892 * feat(footnotes): detect more formats of footnote by @chrox in https://github.com/readest/readest/pull/3894 * fix(kosync): CWA sometimes sends 400 for auth failure by @zb140 in https://github.com/readest/readest/pull/3893 * fix(toc): prevent auto-scroll snap-back on sidebar open by @chrox in https://github.com/readest/readest/pull/3900 * fix(kosync): send valid progress to kosync server when closing book, closes #3899 by @chrox in https://github.com/readest/readest/pull/3901 * fix: fixed crash on app start when there is no main window but a reader window running, closes #3897 by @chrox in https://github.com/readest/readest/pull/3902 * compat(css): remove no-op css that might break column layout, closes #3895 by @chrox in https://github.com/readest/readest/pull/3903 * perf(rsvp): fixed performance issue when the context window is large, closes #3877 by @chrox in https://github.com/readest/readest/pull/3904 * fix(tts): fixed race condition on pause/resume, closes #3825 by @chrox in https://github.com/readest/readest/pull/3905 * fix(pdf): fixed annotations not displayed properly in two-page spread for PDFs, closes #3862 by @chrox in https://github.com/readest/readest/pull/3906 * fix(pdf): don't apply theme colors where canvas filter is unsupported, closes #3912 by @chrox in https://github.com/readest/readest/pull/3915 * fix(theme): fixed texture background in scrolled mode, closes #3913 by @chrox in https://github.com/readest/readest/pull/3918 * fix(macos): don't quit app on Cmd+W, only on Cmd+Q by @chrox in https://github.com/readest/readest/pull/3928 * fix(layout): properly display full screen page, closes #3914 by @chrox in https://github.com/readest/readest/pull/3930 * chore(deps): bump mozilla-actions/sccache-action from 0.0.9 to 0.0.10 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/3937 * chore: update Dependabot dependencies by @chrox in https://github.com/readest/readest/pull/3938 * fix(android): avoid rsproperties panic on startup, closes #3922 by @chrox in https://github.com/readest/readest/pull/3942 * fix(layout): don't dismiss notebook on navigate to annotations when notebook is pinned, closes #3923 by @chrox in https://github.com/readest/readest/pull/3948 * fix(seo): fixed the title and description of the user page by @chrox in https://github.com/readest/readest/pull/3952 * Add VCS browser URL to appdata.xml by @archisman-panigrahi in https://github.com/readest/readest/pull/3962 * feat: rearchitect OPDS auto-download with two-phase sync by @chrox in https://github.com/readest/readest/pull/3844 * Fix: ImageViewer zoom implementation by @JustADeer in https://github.com/readest/readest/pull/3957 * fix(rsvp): unicode-aware ORP calculation for non-Latin scripts by @chrox in https://github.com/readest/readest/pull/3964 * chore(deps): update stripe by @FabrisNick in https://github.com/readest/readest/pull/3941 * chore: bump opennext and wrangler to the latest versions by @chrox in https://github.com/readest/readest/pull/3971 * fix: restore main library window when going to library from reader by @chrox in https://github.com/readest/readest/pull/3973 * fix(reader): smooth mouse wheel scrolling in scroll mode by @chrox in https://github.com/readest/readest/pull/3974 * fix(toc): fix auto scroll on book open with pinned sidebar, closes #3945 by @chrox in https://github.com/readest/readest/pull/3975 * fix(layout): fixed dropdown menu layout for the delete button in details, closes #3940 by @chrox in https://github.com/readest/readest/pull/3976 * feat(kosync): add metadata hash info dialog to diagnose sync failures by @chrox in https://github.com/readest/readest/pull/3978 * fix(annotator): defer Android quick action until touchend, closes #3935 by @chrox in https://github.com/readest/readest/pull/3979 * fix(reader): close stuck reader window on book load failure by @chrox in https://github.com/readest/readest/pull/3980 * fix(rsvp): resume at stop word, prevent section replay, restore full context by @lexm2 in https://github.com/readest/readest/pull/3960 * feat(opds): add OPDS-PSE streaming support and custom OPDS 2.0 parser by @zeedif in https://github.com/readest/readest/pull/3951 * fix(layout): fixed layout for catalog title by @chrox in https://github.com/readest/readest/pull/3982 * fix(txt): more robust txt parsing, closes #3970 by @chrox in https://github.com/readest/readest/pull/3983 * perf(rsvp): windowed context, extraction caching and lazy CFI for sections with thousands of words, closes #3953 by @chrox in https://github.com/readest/readest/pull/3984 * feat(rsvp): use jieba tokenizer to segment words for Chinese books by @chrox in https://github.com/readest/readest/pull/3985 * fix(annotation): preserve line breaks in selected text, closes #3981 by @chrox in https://github.com/readest/readest/pull/3986 * fix(tts): preserve state on AbortError to keep rate changes effective on iOS by @chrox in https://github.com/readest/readest/pull/3988 * fix(pdf): prevent continuous scroll kickback by @chrox in https://github.com/readest/readest/pull/3990 * fix(epub): fall back to case-insensitive zip lookups by @chrox in https://github.com/readest/readest/pull/3991 * fix(sync): defers updateLibrary until libraryLoaded to avoid occasional losing books by @chrox in https://github.com/readest/readest/pull/3995 * fix(reader): preserve position when toggling scrolled mode by @chrox in https://github.com/readest/readest/pull/3996 * fix(footnote): ignore background image in footnotes by @chrox in https://github.com/readest/readest/pull/3998 * fix(layout): symmetric margins and gap in 2-column layout, closes #3909 by @chrox in https://github.com/readest/readest/pull/4002 * chore(deps): bump amondnet/vercel-action from 25 to 42 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/4008 * feat(reader): custom dictionaries (StarDict + MDict) by @chrox in https://github.com/readest/readest/pull/4012 * feat(annotations): deep links for highlight exports by @chrox in https://github.com/readest/readest/pull/4018 * feat(annotations): preview mode for deep-link landings by @chrox in https://github.com/readest/readest/pull/4019 * fix(rsvp): cross-device resume seeding + mobile slider drag by @lexm2 in https://github.com/readest/readest/pull/4004 * fix(reader): pure black/white footer in eink mode by @chrox in https://github.com/readest/readest/pull/4024 * fix(txt): recognize 番外/外传 chapter prefixes, closes #4016 by @chrox in https://github.com/readest/readest/pull/4025 * fix(rsvp): split em-dash and en-dash compound words by @chrox in https://github.com/readest/readest/pull/4026 * refactor(settings): move Keep Screen Awake to Behavior > Device by @chrox in https://github.com/readest/readest/pull/4027 * feat(share): time-limited share links with cfi-aware imports by @chrox in https://github.com/readest/readest/pull/4037 * fix(share): make /s landing build under Next 16 layout-prop validation by @chrox in https://github.com/readest/readest/pull/4040 * fix(share): hide download link on share landing page by @chrox in https://github.com/readest/readest/pull/4041 * fix(share): import flow + share-landing & user-header polish by @chrox in https://github.com/readest/readest/pull/4043 * feat(koplugin): support deletePluginSettings hook by @chrox in https://github.com/readest/readest/pull/4045 * fix(docker): correct Kong gateway port for client build arg by @chrox in https://github.com/readest/readest/pull/4046 * fix(reader): dismiss annotation popup on section info / progress bar tap by @chrox in https://github.com/readest/readest/pull/4047 * feat(dictionaries): add DICT/Slob formats and Web Search providers by @chrox in https://github.com/readest/readest/pull/4048 * feat(koplugin): add i18n catalog and sync info dialog by @chrox in https://github.com/readest/readest/pull/4050 * compat(css): fixed table layout and style in dark mode by @chrox in https://github.com/readest/readest/pull/4055 * feat(koplugin): Readest Library view in KOReader by @chrox in https://github.com/readest/readest/pull/4056 * chore(koplugin): refresh i18n catalogs by @chrox in https://github.com/readest/readest/pull/4058 * feat(i18n): add Uzbek and Brazilian Portuguese translations by @chrox in https://github.com/readest/readest/pull/4061 * feat(reader): manage rules shortcut in proofread popup by @chrox in https://github.com/readest/readest/pull/4062 * fix(koplugin): render group cover previews in Library by @chrox in https://github.com/readest/readest/pull/4064 * fix(reader): revert footer visibility when tap-to-toggle disabled by @chrox in https://github.com/readest/readest/pull/4065 * feat(metadata): parse Calibre series info from PDF and CBZ by @chrox in https://github.com/readest/readest/pull/4066 * feat(reader): support deeplink and web link in annotation export by @chrox in https://github.com/readest/readest/pull/4067 * fix(library): support dropping directories to import books by @chrox in https://github.com/readest/readest/pull/4068 * fix(layout): resolve layout issues with mixed writing modes in adjacent sections by @chrox in https://github.com/readest/readest/pull/4069 * feat(reader): replace dictionary tabs with stacked result cards by @chrox in https://github.com/readest/readest/pull/4071 * feat(dict): improve MDict rendering and dictionary management by @chrox in https://github.com/readest/readest/pull/4072 * chore(agent): bump gstack by @chrox in https://github.com/readest/readest/pull/4073 * feat(sync): CRDT replica sync foundation by @chrox in https://github.com/readest/readest/pull/4075 * feat(sync): wire dictionary store through replica sync (follow-up to #4075) by @chrox in https://github.com/readest/readest/pull/4076 * feat(sync): cross-device custom font sync by @chrox in https://github.com/readest/readest/pull/4077 * chore(agent): update project memory by @chrox in https://github.com/readest/readest/pull/4078 * feat(sync): cross-device background texture sync by @chrox in https://github.com/readest/readest/pull/4079 * chore(i18n): translate replica-sync File-toast strings by @chrox in https://github.com/readest/readest/pull/4080 * feat(account): show daily reset countdown under translation quota bar by @chrox in https://github.com/readest/readest/pull/4082 * refactor(sync): extract shared replica primitives across kinds by @chrox in https://github.com/readest/readest/pull/4081 * refactor(hardcover): move note mappings to SQLite on web and native by @chrox in https://github.com/readest/readest/pull/4083 * feat(sync): wire crypto session for encrypted-field sync by @chrox in https://github.com/readest/readest/pull/4084 * chore: bump turso to the latest version by @chrox in https://github.com/readest/readest/pull/4086 * feat(sync): add opds_catalog replica kind (plaintext fields) by @chrox in https://github.com/readest/readest/pull/4087 * feat(sync): encrypted OPDS credentials + Tauri keychain (PR 4c + 4d) by @chrox in https://github.com/readest/readest/pull/4090 * fix(layout): center fixed modals above the on-screen keyboard on Android by @chrox in https://github.com/readest/readest/pull/4091 * feat(applock): 4-digit PIN gate at app launch by @chrox in https://github.com/readest/readest/pull/4093 * feat(sync): bundled `settings` replica kind for cross-device prefs and credentials by @chrox in https://github.com/readest/readest/pull/4094 * feat(sync): bundle dictionary settings into the `settings` replica kind by @chrox in https://github.com/readest/readest/pull/4096 * fix(layout): silence viewport meta warning on non-Android browsers by @chrox in https://github.com/readest/readest/pull/4097 * feat(sync): per-category sync gates + Manage Sync UI by @chrox in https://github.com/readest/readest/pull/4099 * fix(txt): parse author from filename and use edited metadata on fallback cover by @chrox in https://github.com/readest/readest/pull/4102 * fix(epub): accept EPUBs with malformed first ZIP local file header by @chrox in https://github.com/readest/readest/pull/4103 * fix(i18n): localize quota reset countdown time units by @chrox in https://github.com/readest/readest/pull/4104 * fix(sync): keep dictionarySettings consistent across devices by @chrox in https://github.com/readest/readest/pull/4105 * feat(share): route annotation exports through the system share sheet by @chrox in https://github.com/readest/readest/pull/4107 * feat(sync): batch replica sync into one /api/sync/replicas request by @chrox in https://github.com/readest/readest/pull/4109 * feat(applock): blinking PIN cursor + misc UI polish by @chrox in https://github.com/readest/readest/pull/4110 * feat(sync): opt-in Credentials toggle + keyring v4 migration by @chrox in https://github.com/readest/readest/pull/4111 * ui/ux: codify design system and migrate settings to shared primitives by @chrox in https://github.com/readest/readest/pull/4116 * i18n: update translations by @chrox in https://github.com/readest/readest/pull/4118 * fix(mobile): iOS PIN keyboard UX + Safari font line-height by @chrox in https://github.com/readest/readest/pull/4120 * fix: hide popup triangle when inside popup + image-only paragraph rendering by @chrox in https://github.com/readest/readest/pull/4121 * feat(library): redesign empty-library onboarding by @chrox in https://github.com/readest/readest/pull/4122 * release: version 0.11.1 by @chrox in https://github.com/readest/readest/pull/4123 ## New Contributors * @tongyuantongyu made their first contribution in https://github.com/readest/readest/pull/3868 * @archisman-panigrahi made their first contribution in https://github.com/readest/readest/pull/3962 * @FabrisNick made their first contribution in https://github.com/readest/readest/pull/3941 **Full Changelog**: https://github.com/readest/readest/compare/v0.10.6...v0.11.1 - Apr 13, 2026 0.10.6## Release Highlight * Library: Much faster browsing for large collections * Reading: Added an option to keep the book's original paragraph layout * Reading: Fixed page navigation for Arabic books * PDF: Fixed TTS reading interruptions at line breaks in PDFs * PDF: You can now apply your chosen theme colors to PDFs * Sync: Added HTTP Basic auth support for CWA * Sync: Improved progress sync with Hardcover.app * OPDS: You can now edit your registered catalogs, with better handling of download filenames * Speed Reading: Your reading position now syncs across devices
More…
* Platform: Fixed window buttons on macOS, reduced crashes on iOS ## What's Changed * fix(ui): restore highlight options layout and clean up color name editing by @chrox in https://github.com/readest/readest/pull/3776 * feat(library): align grid hover highlight corner radius by @WhiteHades in https://github.com/readest/readest/pull/3774 * Updating Hardcover progress sync logic (Issue #3775) by @AnandakrishnanV in https://github.com/readest/readest/pull/3777 * fix(dictionary): add Chinese dictionary lookup with pinyin support by @pythontyphon in https://github.com/readest/readest/pull/3784 * fix(style): clamp oversized hardcoded pixel widths and fix browser test flakiness by @chrox in https://github.com/readest/readest/pull/3785 * docs: add threat model and incident response plan to SECURITY.md by @chrox in https://github.com/readest/readest/pull/3788 * Use key attrs to prevent form field issues by @zb140 in https://github.com/readest/readest/pull/3791 * Support HTTP Basic auth for kosync connections by @zb140 in https://github.com/readest/readest/pull/3792 * fix(security): prevent SSRF in kosync proxy by @chrox in https://github.com/readest/readest/pull/3793 * chore(security): update CodeQL workflow to remove languages by @chrox in https://github.com/readest/readest/pull/3794 * fix(pdf): add an option to apply theme colors to PDF, closes #3778 by @chrox in https://github.com/readest/readest/pull/3799 * refactor(sidebar): replace react-window and OverlayScrollbars with react-virtuoso and CSS scrollbars by @lexm2 in https://github.com/readest/readest/pull/3798 * Potential fix for code scanning alert no. 19: DOM text reinterpreted as HTML by @chrox in https://github.com/readest/readest/pull/3802 * Potential fix for code scanning alert no. 12: Use of externally-controlled format string by @chrox in https://github.com/readest/readest/pull/3803 * chore(deps): bump actions/checkout from 4 to 6 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/3805 * Potential fix for code scanning alert no. 11: Incomplete multi-character sanitization by @chrox in https://github.com/readest/readest/pull/3804 * fix: complete multi-character sanitization for HTML comments in txt.ts by @chrox in https://github.com/readest/readest/pull/3806 * fix: add explicit permissions to GitHub Actions workflows by @chrox in https://github.com/readest/readest/pull/3807 * fix(annotator): fixed instant annotation in scrolled mode, closes #3769 by @chrox in https://github.com/readest/readest/pull/3808 * refactor(reader): priority-based touch interceptor for gesture handling by @chrox in https://github.com/readest/readest/pull/3809 * feat(rsvp): sync reading position to cloud via book_configs by @lexm2 in https://github.com/readest/readest/pull/3801 * fix(opds): handle spaces and quotes in Content-Disposition filename p… by @zeedif in https://github.com/readest/readest/pull/3812 * chore(scripts): add worktree management for isolated PR review and feature work by @chrox in https://github.com/readest/readest/pull/3810 * fix(layout): fix off-by-one page count on fractional DPR devices by @chrox in https://github.com/readest/readest/pull/3813 * fix(tts): skip br elements in PDF text layer to prevent TTS interruptions, closes #3771 by @chrox in https://github.com/readest/readest/pull/3811 * fix(opds): improve robustness of Content-Disposition filename parsing by @zeedif in https://github.com/readest/readest/pull/3816 * feat(opds): allow editing of registered catalogs by @zeedif in https://github.com/readest/readest/pull/3814 * fix(rtl): fix page navigation for Arabic books by @lexm2 in https://github.com/readest/readest/pull/3817 * fix: apply disable click to paginate also for non-iframe clicks by @chrox in https://github.com/readest/readest/pull/3818 * feat(tts): support edge tts on cloudflare worker by @chrox in https://github.com/readest/readest/pull/3819 * fix(eink): remove scroll animation in eink mode and optimize eink detection by @chrox in https://github.com/readest/readest/pull/3822 * fix(layout): fixed bleed layout of images by @chrox in https://github.com/readest/readest/pull/3823 * fix(library): restore breadcrumb 'All' navigation broken by next-view-transitions by @chrox in https://github.com/readest/readest/pull/3829 * perf: optimize library operations for large collections by @lexm2 in https://github.com/readest/readest/pull/3827 * fix(library): fixed the All button in groups breadcrumbs navigation bar, closes #3782 by @chrox in https://github.com/readest/readest/pull/3832 * feat(library): navigate to previous group with the Back button on Android, closes #2675 by @chrox in https://github.com/readest/readest/pull/3833 * perf(library): virtualize grid and list of book items when rendering library page by @chrox in https://github.com/readest/readest/pull/3835 * fix(deps): resolve 13 Dependabot security alerts by @chrox in https://github.com/readest/readest/pull/3840 * fix(deps): add pnpm override for qs >=6.14.2 by @chrox in https://github.com/readest/readest/pull/3841 * fix(ios): reduce GPU memory to prevent WebKit crash on library navigation by @chrox in https://github.com/readest/readest/pull/3842 * fix(macOS): don't show window button when traffic lights are on the header, closes #3831 by @chrox in https://github.com/readest/readest/pull/3843 * Update package installation for Linux-x64 by @Drsheppard01 in https://github.com/readest/readest/pull/3845 * chore(agent): use claude in chrome for web based qa by @chrox in https://github.com/readest/readest/pull/3847 * fix(ux): optimize scrolling UX for the bookshelf and sidebar content by @chrox in https://github.com/readest/readest/pull/3849 * feat(annotator): support instant copy operation for selected text, closes #3828 by @chrox in https://github.com/readest/readest/pull/3854 * refactor(settings): persist the apply-globally toggle per book by @chrox in https://github.com/readest/readest/pull/3856 * fix(settings): fixed color picker for custom highlight colors, closes #3796 by @chrox in https://github.com/readest/readest/pull/3857 * feat(settings): add an option to avoid overriding paragraph layout, closes #3824 by @chrox in https://github.com/readest/readest/pull/3858 * fix(android): use stable safe area insets to avoid unnecessary layout shift, closes #3670 by @chrox in https://github.com/readest/readest/pull/3859 * release: version 0.10.6 by @chrox in https://github.com/readest/readest/pull/3861 ## New Contributors * @pythontyphon made their first contribution in https://github.com/readest/readest/pull/3784 * @zb140 made their first contribution in https://github.com/readest/readest/pull/3791 * @Drsheppard01 made their first contribution in https://github.com/readest/readest/pull/3845 **Full Changelog**: https://github.com/readest/readest/compare/v0.10.4...v0.10.6 - Apr 5, 2026 0.10.4## Release Highlight * Annotations: You can now name your highlight colors, and your custom names sync across devices * Annotations: Fixed highlights that stayed on the page after being deleted from the sidebar * Speed Reading: Added an option to split long words, a faster countdown * Text-to-Speech: Fixed double playback when tapping the play button in quick succession * Accessibility: Dropdown menus now open reliably when activated with the keyboard * Reading: Background textures now display correctly when you override the theme background color * Translation: Temporarily disabled the Yandex provider while its service is unavailable ## What's Changed
More…
* fix(hardcover): use Tauri HTTP plugin to bypass CORS and coerce search IDs by @chrox in https://github.com/readest/readest/pull/3752 * feat(i18n): add Hungarian translation by @chrox in https://github.com/readest/readest/pull/3753 * feat: add named highlight colors with sync and picker ux fixes by @WhiteHades in https://github.com/readest/readest/pull/3741 * feat(rsvp): split words option, faster countdown, and skip pages RSVP cant open by @lexm2 in https://github.com/readest/readest/pull/3755 * chore(deps): bump Next.js to version 16.2.2 by @chrox in https://github.com/readest/readest/pull/3757 * fix: clear highlight overlay when deleting annotation from sidebar, closes #3756 by @chrox in https://github.com/readest/readest/pull/3758 * fix(layout): use mobile footer bar in portrait mode without regressing phone panel animation by @chrox in https://github.com/readest/readest/pull/3759 * fix(sync): show last push time as the last sync time by @chrox in https://github.com/readest/readest/pull/3760 * fix(style): let background texture take precedence over overridden background color by @chrox in https://github.com/readest/readest/pull/3761 * fix(a11y): fixed keyboard activation of dropdown menu by @chrox in https://github.com/readest/readest/pull/3762 * fix(tts): prevent double playback on rapid TTS icon clicks by @chrox in https://github.com/readest/readest/pull/3764 * fix(translate): disable yandex provider while upstream relay is down by @chrox in https://github.com/readest/readest/pull/3765 * release: version 0.10.4 by @chrox in https://github.com/readest/readest/pull/3767 **Full Changelog**: https://github.com/readest/readest/compare/v0.10.2...v0.10.4 - Apr 4, 2026 0.10.2## Release Highlight * Reading: Added single section scroll option, keyboard shortcuts help dialog, and reading ruler improvements * Reading: Fixed Adobe font deobfuscation and applied theme colors to PDFs * Reading: Fixed paginator freeze, image sizing on resize, and vertical writing mode compatibility * Annotations: Fixed annotations grouped under wrong chapter and added highlight opacity setting * Text-to-Speech: Added dedicated TTS settings tab with highlight opacity and keyboard shortcuts for navigation * Sync: Added Hardcover.app sync integration and improved KOSync progress accuracy * KOReader Plugin: Added full annotation sync option and fixed sync-related crashes * OPDS: Added custom catalog headers with web proxy consent and fixed feed display issues * Speed Reading: Added per-chapter progress bar and speed selector dropdown
More…
* Android: Added D-pad navigation for Android TV remote controller * Theme: Added atmosphere Easter egg with video overlay and ambient audio ## What's Changed * fix(release): skip architecture check for 32-bit ARM by @chrox in https://github.com/readest/readest/pull/3589 * chore(release): disable linux-arm build for now as turso can't work on it for now by @chrox in https://github.com/readest/readest/pull/3590 * chore(release): generate changelog from release notes for google play by @chrox in https://github.com/readest/readest/pull/3591 * fix(koplugin): fixed koreader crash on logout, closes #3598 by @chrox in https://github.com/readest/readest/pull/3603 * fix(pdf): apply theme colors for PDFs, closes #3593 by @chrox in https://github.com/readest/readest/pull/3626 * fix(library): mixed sorting for group and ungroupped books, closes #3596 by @chrox in https://github.com/readest/readest/pull/3627 * compat(android): disable native long-click on the WebView to prevent the system image context menu, closes #3629 by @chrox in https://github.com/readest/readest/pull/3630 * chore(deps): bump android-actions/setup-android from 3 to 4 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/3631 * fix(koplugin): prevent resurrecting deleted highlights and duplicate overlays on notes pull by @leekaize in https://github.com/readest/readest/pull/3639 * chore: bump next.js, opennextjs and wrangler to the latest versions by @chrox in https://github.com/readest/readest/pull/3642 * fix: show proper background images in continuous scrolled mode, closes #3638 by @chrox in https://github.com/readest/readest/pull/3645 * fix(android): never try to fight with the navigation bar on Android ever, closes #3618 by @chrox in https://github.com/readest/readest/pull/3646 * chore: bump turso to the latest version by @chrox in https://github.com/readest/readest/pull/3650 * feat(tts): add shortcuts to navigate and play/pause in TTS mode, closes #3620 by @chrox in https://github.com/readest/readest/pull/3651 * feat: add keyboard shortcuts help dialog by @chrox in https://github.com/readest/readest/pull/3653 * fix(eink): disable range editor loupe for annotations on Eink devices, closes #3655 by @chrox in https://github.com/readest/readest/pull/3656 * fix(opds): fixed image download from ODPS server on the web, closes #3649 by @chrox in https://github.com/readest/readest/pull/3658 * feat(android): add foss flavor build without gms services by @chrox in https://github.com/readest/readest/pull/3666 * feat(scroll): add single section scroll option, closes #3663 by @chrox in https://github.com/readest/readest/pull/3668 * chore(release): exclude turso wasm in app builds by @chrox in https://github.com/readest/readest/pull/3674 * chore(fdroid): get rid of wasm binaries in fdroid build by @chrox in https://github.com/readest/readest/pull/3677 * chore(fdroid): build qcms wasm for fdroid by @chrox in https://github.com/readest/readest/pull/3680 * css: add css selector for status badge, closes #3678 by @chrox in https://github.com/readest/readest/pull/3684 * layout: don't truncate remaining progress info without status info, closes #3678 by @chrox in https://github.com/readest/readest/pull/3685 * fix(layout): fixed infinite expand calls and freeze in the paginator, closes #3683 by @chrox in https://github.com/readest/readest/pull/3690 * fix(layout): fixed infinite expand calls and freeze in the paginator, closes #3683 by @chrox in https://github.com/readest/readest/pull/3692 * fix(shortcuts): change bookmark shortcut from Ctrl+D to Ctrl+B by @chrox in https://github.com/readest/readest/pull/3691 * chore(deps): bump vulnerable dependencies to address Dependabot alerts by @chrox in https://github.com/readest/readest/pull/3693 * chore: migrate from ESLint to Biome for linting by @chrox in https://github.com/readest/readest/pull/3694 * fix(fonts): fix Adobe font deobfuscation and CSS var fallbacks by @chrox in https://github.com/readest/readest/pull/3696 * i18n: update translations for aria label by @chrox in https://github.com/readest/readest/pull/3697 * fix(layout): fix primary view detection on fractional DPR devices, closes #3681 by @chrox in https://github.com/readest/readest/pull/3701 * fix(iOS): use correct system theme mode in auto mode on iOS, closes #3698 by @chrox in https://github.com/readest/readest/pull/3704 * fix(opds): fix Copyparty books showing as "Untitled" in mixed feeds, closes #3667 by @chrox in https://github.com/readest/readest/pull/3705 * fix(annotations): fix all annotations grouped under last chapter for fragment-href TOCs by @chrox in https://github.com/readest/readest/pull/3706 * feat(settings): add TTS settings tab and highlight opacity, closes #3661 by @chrox in https://github.com/readest/readest/pull/3712 * chore(test): add unit tests and enforce dash-case naming for test files by @chrox in https://github.com/readest/readest/pull/3715 * feat(i18n): add Romanian (ro) translation by @teodorcosma in https://github.com/readest/readest/pull/3708 * chore(bump): bump Tauri to the latest version by @chrox in https://github.com/readest/readest/pull/3716 * fix(library): always sort series books by index ascending, closes #3709 by @chrox in https://github.com/readest/readest/pull/3717 * feat(sync): add full sync option for annotations in koplugin by @chrox in https://github.com/readest/readest/pull/3718 * fix(storage): paginate stats query and align file size formatting by @chrox in https://github.com/readest/readest/pull/3720 * chore(agent): update agent skills and memories by @chrox in https://github.com/readest/readest/pull/3721 * feat: make reading ruler selection and step navigation coherent by @WhiteHades in https://github.com/readest/readest/pull/3722 * feat(rsvp): progress bar per chapter, speed selector dropdown, and UX improvements by @lexm2 in https://github.com/readest/readest/pull/3723 * feat(theme): add atmosphere easter egg with video overlay and ambient audio by @chrox in https://github.com/readest/readest/pull/3727 * fix(android): auto-shutdown native TTS engine after idle to save battery by @chrox in https://github.com/readest/readest/pull/3728 * fix(layout): fixed static image size and layout shift on window resize, closes #3634 by @chrox in https://github.com/readest/readest/pull/3729 * fix: preserve paragraph mode reading layouts and other UI/UX fixes by @WhiteHades in https://github.com/readest/readest/pull/3730 * feat: Hardcover.app Sync by @AnandakrishnanV in https://github.com/readest/readest/pull/3724 * fix(kosync): don't normalize xpointer for more accurate progress sync, closes #3672 and closes #3616 by @chrox in https://github.com/readest/readest/pull/3733 * fix(paginator): fixed paginator section preloading, closes #3600 and closes #3601 by @chrox in https://github.com/readest/readest/pull/3734 * fix: fixed status info layout in vertical mode, fixed Android build by @chrox in https://github.com/readest/readest/pull/3735 * feat(opds): support custom catalog headers with web proxy consent by @ShunnyBunny in https://github.com/readest/readest/pull/3740 * compat(vertical): check writing mode also for child element of body, closes #3583 by @chrox in https://github.com/readest/readest/pull/3743 * fix(android): get rid of the outline on the header and footer bar when using remote control to turn page by @chrox in https://github.com/readest/readest/pull/3744 * feat(android): add D-pad navigation for Android TV remote controller by @chrox in https://github.com/readest/readest/pull/3745 * fix(android): use mobile footer bar in portrait mode, closes #3742 by @chrox in https://github.com/readest/readest/pull/3746 * fix(tts): avoid race condition in preloadNextSSML causing wrong highlights by @chrox in https://github.com/readest/readest/pull/3748 * fix(layout): fixed layout of progress bar in vertical mode by @chrox in https://github.com/readest/readest/pull/3749 * release: version 0.10.2 by @chrox in https://github.com/readest/readest/pull/3750 ## New Contributors * @leekaize made their first contribution in https://github.com/readest/readest/pull/3639 * @teodorcosma made their first contribution in https://github.com/readest/readest/pull/3708 * @lexm2 made their first contribution in https://github.com/readest/readest/pull/3723 * @AnandakrishnanV made their first contribution in https://github.com/readest/readest/pull/3724 * @ShunnyBunny made their first contribution in https://github.com/readest/readest/pull/3740 **Full Changelog**: https://github.com/readest/readest/compare/v0.10.1...v0.10.2 - Mar 22, 2026 0.10.1## Release Highlight * Reading: Added continuous scroll and spread layout support for EPUBs * Reading: Added current time and battery display in footer * Reading: Added TTS, annotation support, pinch-to-zoom, and scroll mode for PDFs * Library: Added backup/restore to a zip file and batch metadata refresh * KOReader: Added bookmark and annotation sync between KOReader and Readest devices * Footnotes: Added back navigation with link history and more responsive popup sizing * Annotations: Added loupe display when selecting text in instant annotation mode * Text-to-Speech: Fixed TTS reading position tracking in scrolled mode
More…
## What's Changed * chore(agents): add AGENTS.md for readest-app by @chrox in https://github.com/readest/readest/pull/3415 * fix(linux): avoid transitions API on WebKitGTK on Linux by @chrox in https://github.com/readest/readest/pull/3417 * fix(layout): responsive layout for OPDS catalogs and download button by @chrox in https://github.com/readest/readest/pull/3418 * chore: bump dependencies to resolve Dependabot alerts by @chrox in https://github.com/readest/readest/pull/3421 * fix(translation): resolve DeepL translation failure with auto-detection by @bfcs in https://github.com/readest/readest/pull/3412 * fix(translation): reduce initial layout shift in the translation view, closes #3078 by @chrox in https://github.com/readest/readest/pull/3428 * fix(layout): respect grid insets for the zoom controller, closes #3426 by @chrox in https://github.com/readest/readest/pull/3430 * feat(footnote): add back navigation for footnote popup with link history, closes #3420 by @chrox in https://github.com/readest/readest/pull/3434 * fix(translation): handle missing Cloudflare context on non-Cloudflare deployments (e.g., Vercel) by @bfcs in https://github.com/readest/readest/pull/3433 * fix(gallery): support displaying svg image in image gallery mode, closes #3427 by @chrox in https://github.com/readest/readest/pull/3435 * Update translation.json by @StepanSad in https://github.com/readest/readest/pull/3423 * Fix: Non-ASCII characters break OPDS Catalog auth by @IGCFck in https://github.com/readest/readest/pull/3436 * feat(font): support loading custom font if embedded fonts in EPUBs are missing by @chrox in https://github.com/readest/readest/pull/3439 * compat(css): support duokan-page-fullscreen in spine to display cover image in fullscreen, closes #3424 by @chrox in https://github.com/readest/readest/pull/3443 * fix(css): properly constrain the max width and height of images, closes #3432 by @chrox in https://github.com/readest/readest/pull/3444 * fix(toc): correct TOC grouping to prevent unnecessary nested layers by @chrox in https://github.com/readest/readest/pull/3445 * fix(txt): more robust chapter extractor for TXT by @chrox in https://github.com/readest/readest/pull/3446 * fix(css): unset padding and margin in body, closes #3441 by @chrox in https://github.com/readest/readest/pull/3452 * feat(footnote): make popup window size more responsive for longer footnotes, closes #3425 by @chrox in https://github.com/readest/readest/pull/3454 * i18n: add translations for Slovenian(sl), closes #3453 by @chrox in https://github.com/readest/readest/pull/3455 * fix(tts): handle documents without lang attribute or XHTML namespace, closes #3291 by @chrox in https://github.com/readest/readest/pull/3456 * fix(css): unset hardcoded calibre color and background color, closes #3448 by @chrox in https://github.com/readest/readest/pull/3457 * feat(reader): adding current Time and Battery to Footer (#3306) by @scinac in https://github.com/readest/readest/pull/3402 * Added <0> and <1> tags to the Slovenian translation by @Blyrium in https://github.com/readest/readest/pull/3460 * chore: bump turso to 0.5.0 by @chrox in https://github.com/readest/readest/pull/3475 * chore(database): unit testing and feature detect for fts and vector search by @chrox in https://github.com/readest/readest/pull/3476 * fix(metadata): parse series info from epub only when book series info not available by @chrox in https://github.com/readest/readest/pull/3478 * fix(footnote): add overflow-wrap to footnote popup to prevent long words from overflowing by @chrox in https://github.com/readest/readest/pull/3479 * chore(testing): add Tauri integration tests and E2E test infrastructure by @chrox in https://github.com/readest/readest/pull/3483 * feat(database): support turso fts in tauri apps by @chrox in https://github.com/readest/readest/pull/3484 * feat(database): add platform-agnostic schema migration system by @chrox in https://github.com/readest/readest/pull/3485 * chore: experimental vinext build by @chrox in https://github.com/readest/readest/pull/3486 * feat(setting) impl settings option: hide Scrollbar of scroll mode (#3480) by @srsng in https://github.com/readest/readest/pull/3481 * fix(sidebar): use position fixed and transform for mobile sidebar by @chrox in https://github.com/readest/readest/pull/3490 * feat(pdf): support TTS and annotation on PDFs, closes #2149 & #3462 by @chrox in https://github.com/readest/readest/pull/3493 * fix(layout): update safe insets in reader page, closes #3469 by @chrox in https://github.com/readest/readest/pull/3497 * fix(css): apply Line Spacing to list elements, closes #3494 by @chrox in https://github.com/readest/readest/pull/3498 * fix(macOS): fix traffic light visibility in sidebar, closes #3488 by @chrox in https://github.com/readest/readest/pull/3499 * chore(ci): fix rust cache by @chrox in https://github.com/readest/readest/pull/3500 * compat(android): show button navigation bar on Android, closes #3466 by @chrox in https://github.com/readest/readest/pull/3501 * fix(txt): add stream() to RemoteFile to fix large TXT import on desktop by @chrox in https://github.com/readest/readest/pull/3502 * fix(layout): add top/bottom margin to container in scrolled mode, closes #3463 by @chrox in https://github.com/readest/readest/pull/3504 * fix(reader): apply alwaysOnTop to all windows and on reader init, closes #3482 by @chrox in https://github.com/readest/readest/pull/3505 * fix(a11y): improve TOC screen reader accessibility for NVDA, closes #3477 by @chrox in https://github.com/readest/readest/pull/3509 * feat(reader): tap notch area to scroll to top in scrolled mode, closes #3474 by @chrox in https://github.com/readest/readest/pull/3510 * feat(a11y): show prev/next section buttons for screen reader, closes #3290 by @chrox in https://github.com/readest/readest/pull/3511 * fix(layout): make horizontal scroll bar visible in fixed-layout EPUB, closes #3506 by @chrox in https://github.com/readest/readest/pull/3512 * fix(pdf): show search results when navigating to new page, closes #3148 by @chrox in https://github.com/readest/readest/pull/3513 * feat(pdf): support pitch to zoom and scroll mode for PDFs, closes #3461 by @chrox in https://github.com/readest/readest/pull/3520 * fix(i18n): handle POSIX locale values in getLocale(), closes #3518 by @chrox in https://github.com/readest/readest/pull/3522 * compat(footnote): support more footnote selectors, closes #3515 by @chrox in https://github.com/readest/readest/pull/3523 * fix(library): improve sorting and grouping interaction, closes #3517 by @chrox in https://github.com/readest/readest/pull/3524 * fix(link): prevent opening duplicate browser tabs on Tauri, closes #3514 by @chrox in https://github.com/readest/readest/pull/3525 * Update docker db schema to match FileRecords by @azeemba in https://github.com/readest/readest/pull/3527 * feat(rsvp): add persistent context, display settings, and layout improvements, closes #3333 by @chrox in https://github.com/readest/readest/pull/3528 * fix(opds): more accurate error message when downloading books, closes #2656 by @chrox in https://github.com/readest/readest/pull/3529 * feat(node): refactor appService into focused service modules and add app service for Node runtime by @chrox in https://github.com/readest/readest/pull/3530 * doc(agent): add rules files that are automatically loaded into context alongside CLAUDE.md by @chrox in https://github.com/readest/readest/pull/3532 * chore: bump dependencies for Dependabot alerts by @chrox in https://github.com/readest/readest/pull/3533 * feat(booshelf): dedupe books with the same meta hash by @chrox in https://github.com/readest/readest/pull/3535 * fix(export): apply block quote syntax to every line in annotation export, closes #3534 by @chrox in https://github.com/readest/readest/pull/3536 * feat(epub): support continuous scroll and spread layout for EPUBs, closes #3419 and closes #1745 by @chrox in https://github.com/readest/readest/pull/3546 * refactor(reader): extract shared panel drag hooks and add vertical drag to Notebook by @chrox in https://github.com/readest/readest/pull/3548 * fix(layout): fix parallel read layout on smaller screens by @chrox in https://github.com/readest/readest/pull/3549 * fix(progress): show remaining pages for current section instead of all loaded sections by @chrox in https://github.com/readest/readest/pull/3550 * fix(android): fix page navigation layer z-index, closes #3511 by @chrox in https://github.com/readest/readest/pull/3552 * fix(ios): decode percent-encoded file URIs in copy_uri_to_path by @chrox in https://github.com/readest/readest/pull/3553 * feat: scroll to the nearest search results or annotation lists by @chrox in https://github.com/readest/readest/pull/3555 * compat(css): fix table layout regression issue, closes #3551 by @chrox in https://github.com/readest/readest/pull/3556 * chore(agent): add gstack skills by @chrox in https://github.com/readest/readest/pull/3557 * fix(layout): more responsive layout for the transfer queue by @chrox in https://github.com/readest/readest/pull/3558 * fix(ios): resolve stale closure crash preventing highlight popup on iOS by @chrox in https://github.com/readest/readest/pull/3559 * fix(layout): fixed header background color on mobile devices by @chrox in https://github.com/readest/readest/pull/3561 * fix(perf): revert back next/image with lazying loading for much better perf by @chrox in https://github.com/readest/readest/pull/3562 * fix(footnote): don't preload other sections in footnotes by @chrox in https://github.com/readest/readest/pull/3563 * chore(deps): bump pnpm/action-setup from 4 to 5 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/3564 * feat(annotator): show the loupe when selecting text in instant annotation, closes #3539 by @chrox in https://github.com/readest/readest/pull/3565 * chore(agent): add project memory by @chrox in https://github.com/readest/readest/pull/3567 * feat(annotator): responsive layout for the loupe by @chrox in https://github.com/readest/readest/pull/3568 * chore: bump next.js from 16.1.6 to 16.1.7 by @chrox in https://github.com/readest/readest/pull/3569 * feat(library): backup to and restore from a zip file by @chrox in https://github.com/readest/readest/pull/3571 * fix(txt): fix chapter detection for bare numbered headings, closes #3570 by @chrox in https://github.com/readest/readest/pull/3572 * feat(library): add batch refresh metadata option, closes #3294 by @chrox in https://github.com/readest/readest/pull/3573 * feat(reader): import Foliate annotations on book open (Linux only), closes #2180 by @chrox in https://github.com/readest/readest/pull/3574 * feat(koplugin): add self-update check and install from menu by @chrox in https://github.com/readest/readest/pull/3575 * feat(koplugin): add support for annotation sync by @chrox in https://github.com/readest/readest/pull/3579 * feat(koplugin): support sync bookmarks between Koreader and Readest devices by @chrox in https://github.com/readest/readest/pull/3580 * fix(tts): properly follow tts reading position in scrolled mode by @chrox in https://github.com/readest/readest/pull/3581 * fix: handle number input value clip in settings on mobile devices by @chrox in https://github.com/readest/readest/pull/3582 * fix: resolve various tracked exceptions in ph by @chrox in https://github.com/readest/readest/pull/3584 * fix(layout): fixed total scrollable width in vertical scrolled mode by @chrox in https://github.com/readest/readest/pull/3586 * compat(footnote): support footnote text in alt attribute of the image, closes #3576 by @chrox in https://github.com/readest/readest/pull/3587 * release: version 0.10.1 by @chrox in https://github.com/readest/readest/pull/3588 ## New Contributors * @IGCFck made their first contribution in https://github.com/readest/readest/pull/3436 * @scinac made their first contribution in https://github.com/readest/readest/pull/3402 * @srsng made their first contribution in https://github.com/readest/readest/pull/3481 * @azeemba made their first contribution in https://github.com/readest/readest/pull/3527 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.101...v0.10.1 - Feb 28, 2026 0.9.101## Release Highlight * Text-to-Speech: Fixed an issue where TTS could not continue to the next chapter * Reading: Fixed an issue importing very large TXT files on iOS * Reading: Fixed the layout of the reading ruler in scrolled mode * Reading: Smoother page-turn animations for a more fluid experience * Reading: Added a gallery mode to zoom and browse images within books * Annotations: Page numbers are now displayed and exported with highlights and notes * Annotations: Added support for exporting highlights to Readwise * OPDS: Fixed missing book descriptions in OPDS feeds * Android: Improved compatibility with older WebView versions on Android
More…
## What's Changed * fix: reader ruler disabled in scroll mode by @WhiteHades in https://github.com/readest/readest/pull/3288 * fix(annotator): update highlight style, color and range handlers when showing different annotations, closes #3286 by @chrox in https://github.com/readest/readest/pull/3289 * fix: highlight in dark mode eink by @WhiteHades in https://github.com/readest/readest/pull/3299 * fix(tts): fixed an issue where starting TTS from the annotation tool did not work, closes #3292 by @chrox in https://github.com/readest/readest/pull/3303 * feat: remaining time in TTS mode by @WhiteHades in https://github.com/readest/readest/pull/3300 * fix(layout): container layout for dimmed area of reading ruler, closes #3304 by @chrox in https://github.com/readest/readest/pull/3313 * fix(reader): clamp reading ruler within viewport by @WhiteHades in https://github.com/readest/readest/pull/3314 * feat(docker/podman): self-hosting with docker/podman compose by @aniketkotal in https://github.com/readest/readest/pull/3312 * feat(ui): image viewing mode support by @JustADeer in https://github.com/readest/readest/pull/3328 * feat: Readwise highlights sync by @8bitgentleman in https://github.com/readest/readest/pull/3311 * fix: case-insensitive handling in iframeEventHandlers by @JustADeer in https://github.com/readest/readest/pull/3349 * fix(epub): replace background also for scrolled mode, closes #3344 by @chrox in https://github.com/readest/readest/pull/3350 * fix: add classes for progress info labels, closes #3343 by @chrox in https://github.com/readest/readest/pull/3353 * fix(layout): consistent padding and radius for the dialog header, closes #3352 by @chrox in https://github.com/readest/readest/pull/3356 * compat(layout): fix insane block display for tables, closes #3351 by @chrox in https://github.com/readest/readest/pull/3358 * fix(layout): also scale table with parent width, closes #3284 by @chrox in https://github.com/readest/readest/pull/3359 * fix: empty paragraphs not skipped in paragraph mode by @WhiteHades in https://github.com/readest/readest/pull/3361 * feat: add directional view transitions with scroll preservation in library view, closes #3357 by @chrox in https://github.com/readest/readest/pull/3362 * compat(css): unset font-family for body when set to serif or sans-serif, closes #3334 by @chrox in https://github.com/readest/readest/pull/3363 * feat(translator): add Khmer in translator target languages, closes #3323 by @chrox in https://github.com/readest/readest/pull/3364 * fix(css): override inline image background color only when overriding book color, closes #3316 by @chrox in https://github.com/readest/readest/pull/3365 * compat(webview): compat with older webview for iterating gamepads by @chrox in https://github.com/readest/readest/pull/3366 * Allow CSS targeting of the "NUMBER pages left in chapter" label via `<Trans>` component by @Blyrium in https://github.com/readest/readest/pull/3368 * chore: add husky pre-commit and pre-push hooks by @chrox in https://github.com/readest/readest/pull/3372 * compat(css): unset none user-select in some EPUBs, closes #3370 by @chrox in https://github.com/readest/readest/pull/3374 * fix: delay context menu to prevent broken input loop on macOS, closes #3324 by @chrox in https://github.com/readest/readest/pull/3378 * compat(css): only override img background when overriding book color, closes #3377 by @chrox in https://github.com/readest/readest/pull/3379 * compat: add target class to hide import icon in the bookshelf, closes #3376 by @chrox in https://github.com/readest/readest/pull/3380 * fix: more sensitive paging without snapping animation, closes #3310 by @chrox in https://github.com/readest/readest/pull/3381 * fix(notebook): close searchbar when adding or editing an annotation by @AlanSilvaaa in https://github.com/readest/readest/pull/3384 * perf: use GPU-accelerated scroll for smoother paging animation by @chrox in https://github.com/readest/readest/pull/3385 * fix(txt): stabilize iOS large TXT import and decode picker paths by @royisme in https://github.com/readest/readest/pull/3320 * fix(layout): float the annotation navigation bar, closes #3386 by @chrox in https://github.com/readest/readest/pull/3387 * fix(layout): enlarge hit area for slider input on iOS, closes #3382 by @chrox in https://github.com/readest/readest/pull/3389 * fix(ui): show progress 100% at the last page, closes #3383 by @chrox in https://github.com/readest/readest/pull/3390 * fix: fixed all progress at the last page of the book, closes #3383 by @chrox in https://github.com/readest/readest/pull/3391 * fix(tts): set document lang attribute when missing or invalid for TTS, closes #3291 by @chrox in https://github.com/readest/readest/pull/3393 * Fix generic font family keywords bypassing user font settings by @Blyrium in https://github.com/readest/readest/pull/3394 * fix(iOS): correct sidebar insets on iPad and resolve occasional stale safe area inset on iOS by @chrox in https://github.com/readest/readest/pull/3395 * fix(tts): also show highlight when navigating in paused mode and improve abbreviations processing by @chrox in https://github.com/readest/readest/pull/3396 * fix(toc): fix phantom subchapter TOC item by @chrox in https://github.com/readest/readest/pull/3397 * fix: make touchpad scrolling respect the system’s natural scrolling settings, closes #3127 by @chrox in https://github.com/readest/readest/pull/3398 * feat(annotator): add page number for annotations, closes #3082 by @chrox in https://github.com/readest/readest/pull/3405 * fix: respect fixed translation quota in UI stats and DeepL provider by @bfcs in https://github.com/readest/readest/pull/3404 * fix(tts): dispose of the TTS view when shutting down the TTS controller, closes #3400 by @chrox in https://github.com/readest/readest/pull/3406 * fix(opds): add missing book description in OPDS feed by @chrox in https://github.com/readest/readest/pull/3408 * fix(annotator): add page number in highlight export to Readwise by @chrox in https://github.com/readest/readest/pull/3409 * release: version 0.9.101 by @chrox in https://github.com/readest/readest/pull/3410 ## New Contributors * @aniketkotal made their first contribution in https://github.com/readest/readest/pull/3312 * @JustADeer made their first contribution in https://github.com/readest/readest/pull/3328 * @8bitgentleman made their first contribution in https://github.com/readest/readest/pull/3311 * @Blyrium made their first contribution in https://github.com/readest/readest/pull/3368 * @AlanSilvaaa made their first contribution in https://github.com/readest/readest/pull/3384 * @royisme made their first contribution in https://github.com/readest/readest/pull/3320 * @bfcs made their first contribution in https://github.com/readest/readest/pull/3404 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.100...v0.9.101 - Feb 12, 2026 0.9.100## Release Highlight * Text-to-Speech: Automatically moves to the next chapter when the current chapter finishes * Reading: Fixed the reading ruler on Android * Reading: Improved RSVP layout and stability * Reading: Fixed an issue where some EPUB books could not adjust font size * Annotations: Added a magnifier (loupe) when adjusting text selection * Annotations: Text selection now snaps to word boundaries for better accuracy * Annotations: Custom highlight colors now apply correctly in the sidebar * Dictionary: Added a back button for easier navigation * Dictionary: Fixed an issue where Dictionary and Wikipedia could not open on Android
More…
* Metadata: Added collapsible sections in Book Details * Metadata: Added support for parsing series information from Calibre-exported EPUB files * Eink: Improved component layout and colors in E-ink mode * Layout: Sidebar toggle button position is now persistent ## What's Changed * fix(layout): show navigation buttons with higher z-index, closes #3201 by @chrox in https://github.com/readest/readest/pull/3204 * fix: reader ruler unresponsive in android by @WhiteHades in https://github.com/readest/readest/pull/3210 * fix: para mode nav buttons issue in eink by @WhiteHades in https://github.com/readest/readest/pull/3212 * i18n: add support for Hebrew, closes #3216 by @chrox in https://github.com/readest/readest/pull/3218 * feat: back button dictionary by @WhiteHades in https://github.com/readest/readest/pull/3220 * fix: status button eink compatible by @WhiteHades in https://github.com/readest/readest/pull/3223 * fix(android): fixed some annotation tools not responsive to tap on Android, closes #3225 by @chrox in https://github.com/readest/readest/pull/3229 * feat(l10n): format sync date time with current locale, closes #3219 by @chrox in https://github.com/readest/readest/pull/3230 * fix(progress): show physical left pages instead of estimated ones, closes #3213 and closes #3200 by @chrox in https://github.com/readest/readest/pull/3231 * doc: update toubleshooting and features list, closes #3224 by @chrox in https://github.com/readest/readest/pull/3232 * fix: fixed docker build by including some dist files in docker image, closes #3233 by @chrox in https://github.com/readest/readest/pull/3241 * feat(metadata): collapsible sections in book details, closes #3217 by @chrox in https://github.com/readest/readest/pull/3243 * compat: compatibility with older webview on Android, closes #3245 by @chrox in https://github.com/readest/readest/pull/3249 * fix: don't cache section content when updating subitems, closes #3242 and closes #3206 by @chrox in https://github.com/readest/readest/pull/3250 * fix(layout): workaround for hardcoded table layout, closes #3205 by @chrox in https://github.com/readest/readest/pull/3251 * feat(annotator): rounded highlight style for horizontal and vertical layout, closes #3208 by @chrox in https://github.com/readest/readest/pull/3252 * fix(layout): fixed some layout issues for RSVP, closes #3199 by @chrox in https://github.com/readest/readest/pull/3254 * fix(tts): fix paused tts will still read to the end of the current paragraph, closes #3244 by @chrox in https://github.com/readest/readest/pull/3256 * feat(annotator): add a loupe when adjusting text selection range, closes #3001 by @chrox in https://github.com/readest/readest/pull/3261 * fix(eink): more legibility for the dictionary and wikipedia popups on Eink devices, closes #3258 by @chrox in https://github.com/readest/readest/pull/3262 * feat(annotator): snap text selection to word boundary, closes #3234 by @chrox in https://github.com/readest/readest/pull/3265 * fix: expose srcdoc also for html sections, closes #3264 by @chrox in https://github.com/readest/readest/pull/3266 * feat(metadata): support parsing series info from calibre exported EPUBs, closes #3259 by @chrox in https://github.com/readest/readest/pull/3267 * fix(layout): persistent location for the sidebar toggle, closes #3193 by @chrox in https://github.com/readest/readest/pull/3269 * doc: update sponsor link in README by @chrox in https://github.com/readest/readest/pull/3275 * fix(tts): navigate to follow the current TTS location for the next section, closes #3198 by @chrox in https://github.com/readest/readest/pull/3276 * fix(layout): respect image dimension attribute, closes #3274 by @chrox in https://github.com/readest/readest/pull/3277 * fix(annotator): apply custom highlight colors in sidebar, closes #3273 by @chrox in https://github.com/readest/readest/pull/3278 * release: version 0.9.100 by @chrox in https://github.com/readest/readest/pull/3279 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.99...v0.9.100 - ## Release Highlight * Reading: Added a reading ruler (line highlight) to help guide your eyes while reading * Reading: Added paragraph-by-paragraph reading mode for more focused navigation * Reading: Added a speed reading mode to support faster reading workflows * Reading: Added support for gamepad input to turn pages * Accessibility: Improved TalkBack support in dropdown menus for smoother navigation * Accessibility: Page navigation buttons are now always visible to screen readers * Accessibility: Reading progress is now updated correctly when navigating with screen readers * Annotations: Expanded highlight customization with more color options * Annotations: Added an option to export annotations as plain text
More…
* Library: Added grouping by author and series for better library organization * Library: Added support of marking books as finished * Search: Added fuzzy search to quickly find settings even with partial keywords * Table of Contents: Added page numbers for nested TOC entries * Text-to-Speech: Added navigation controls to return to the current reading position * Linux: Added an in-app updater for AppImage builds * E-ink: Improved color support for color E-ink devices to display richer highlights ## What's Changed * fix(account): redirect to auth page if unauthed user is in user page by @chrox in https://github.com/readest/readest/pull/3008 * Prevent caching from blocking code updates in dev environment by @j-v in https://github.com/readest/readest/pull/3010 * feat(ui): switch typography to Inter by @Whitestar14 in https://github.com/readest/readest/pull/3009 * chore: enforce prettier, ignore submodules and vendor files by @Whitestar14 in https://github.com/readest/readest/pull/3018 * chore(opds): disable popular online opds catalogs in certain regions on App Store by @chrox in https://github.com/readest/readest/pull/3031 * fix(layout): correctly constrain the maximum width of fixed-layout tables, closes #3028 and closes #3017 by @chrox in https://github.com/readest/readest/pull/3032 * fix(shortcuts): prevent system search bar from showing with ctrl+f, closes #3013 by @chrox in https://github.com/readest/readest/pull/3033 * fix(layout): more responsive layout on smaller screens, closes #3029 by @chrox in https://github.com/readest/readest/pull/3034 * fix(sync): hotfix for the initial race condition for books sync by @chrox in https://github.com/readest/readest/pull/3038 * fix(sync): correctly update last sync timestamp when the bookshelf has no books yet by @chrox in https://github.com/readest/readest/pull/3039 * fix(tts): set playback rate after play only on Linux by @chrox in https://github.com/readest/readest/pull/3040 * fix(annotator): fix instant action on Android by @chrox in https://github.com/readest/readest/pull/3042 * fix(sanitizer): add XHTML11 doc type to recognize nbsp entity, closes #3024 by @chrox in https://github.com/readest/readest/pull/3043 * feat(ai): AI reading assistant phase 2 by @WhiteHades in https://github.com/readest/readest/pull/3023 * chore: fix patched dependencies by @chrox in https://github.com/readest/readest/pull/3053 * chore: refresh pnpm lockfile by @chrox in https://github.com/readest/readest/pull/3054 * chore: pin pnpm version for vercel and cloudflare deployment by @chrox in https://github.com/readest/readest/pull/3055 * chore: less build concurrency on cloudflare to get rid of build container OOM by @chrox in https://github.com/readest/readest/pull/3056 * chore: update wrangler and next config by @chrox in https://github.com/readest/readest/pull/3058 * feat(annotation): export annotations with style and color fields in annotation template, closes #1734 by @chrox in https://github.com/readest/readest/pull/3060 * feat(ai): AI reading assistant phase 2.1 (minor UI/UX updates) by @WhiteHades in https://github.com/readest/readest/pull/3059 * chore: fix nunjucks bundling by @chrox in https://github.com/readest/readest/pull/3061 * refactor: rename components/ui to components/primitives by @chrox in https://github.com/readest/readest/pull/3064 * feat: line highlight to guide reading (reading ruler) by @WhiteHades in https://github.com/readest/readest/pull/3063 * feat: more highlight colours by @WhiteHades in https://github.com/readest/readest/pull/3062 * chore: fix dockerfile by @chrox in https://github.com/readest/readest/pull/3067 * layout: don't show upload icon if auto upload is disabled for cleaner UI by @chrox in https://github.com/readest/readest/pull/3068 * doc: update donation link via Stripe by @chrox in https://github.com/readest/readest/pull/3071 * feat(updater): in-app updater for AppImage by @chrox in https://github.com/readest/readest/pull/3072 * feat(gamepad): support gamepad input to paginate, closes #2432 by @chrox in https://github.com/readest/readest/pull/3073 * feat(eink): support color E-ink mode to display more colors, closes #3037 by @chrox in https://github.com/readest/readest/pull/3074 * feat(ruler): support vertical ruler and transparent ruler by @chrox in https://github.com/readest/readest/pull/3076 * feat: auto position reader ruler to top of page and some fixes by @WhiteHades in https://github.com/readest/readest/pull/3075 * fix(bookshelf): fixed conflicts of group names with common prefix by @chrox in https://github.com/readest/readest/pull/3084 * feat: add fuzzy search for searching across all settings by @WhiteHades in https://github.com/readest/readest/pull/3085 * Add embedding model option to AIPanel by @lilozz2 in https://github.com/readest/readest/pull/3090 * chore: bump opennextjs and wrangler to the latest versions by @chrox in https://github.com/readest/readest/pull/3092 * fix(css): no default mix blend mode for hr, closes #3086 by @chrox in https://github.com/readest/readest/pull/3093 * feat: toggle finished manually by @WhiteHades in https://github.com/readest/readest/pull/3091 * fix(iOS): disable online catalogs on iOS from appstore channel by @chrox in https://github.com/readest/readest/pull/3102 * chore: bump next.js to the latest version by @chrox in https://github.com/readest/readest/pull/3106 * fix(bookshelf): don't show badge or progress for unread book, closes #3103 by @chrox in https://github.com/readest/readest/pull/3107 * fix(sync): more robust books sync for stale library, closes #3099 by @chrox in https://github.com/readest/readest/pull/3108 * fix(sync): escape unsafe character in filename by @chrox in https://github.com/readest/readest/pull/3109 * refactor: responsive SetStatusAlert on smaller screens by @chrox in https://github.com/readest/readest/pull/3110 * fix(css): mix blend only inline images, closes #3112 by @chrox in https://github.com/readest/readest/pull/3116 * feat: paragraph by paragraph reading mode by @WhiteHades in https://github.com/readest/readest/pull/3096 * fix(layout): fixed layout of book reading progress and reader footer bar by @chrox in https://github.com/readest/readest/pull/3117 * fix(layout): fixed layout of book reading progress and reader footer bar by @chrox in https://github.com/readest/readest/pull/3125 * fix(a11y): fix accessibility in dropdown menus for TalkBack, closes #3035 by @chrox in https://github.com/readest/readest/pull/3126 * fix(macOS): fix traffic lights position and visibility on macOS, closes #3129 by @chrox in https://github.com/readest/readest/pull/3130 * feat(sync): more intuitive pull down to sync gesture and toast info, closes #3128 by @chrox in https://github.com/readest/readest/pull/3131 * feat(gesture): support two finger swipe left/right to paginate on trackpad, closes #3127 by @chrox in https://github.com/readest/readest/pull/3132 * fix(layout): fix centered dropdown menu by @chrox in https://github.com/readest/readest/pull/3133 * fix(opds): more robust parsing for authors in metadata, closes #3120 by @chrox in https://github.com/readest/readest/pull/3134 * fix(layout): fix z index for dropdown by @chrox in https://github.com/readest/readest/pull/3135 * Feature/rsvp speed reading by @boludo00 in https://github.com/readest/readest/pull/3121 * Change setup command for vendors in CONTRIBUTING.md to reflect additional vendor files by @charrondev in https://github.com/readest/readest/pull/3139 * fix(toc): prevent unintentional scrolling in the TOC, closes #3124 by @chrox in https://github.com/readest/readest/pull/3144 * fix(progress): show correct progress info for subsections in FB2, closes #3136 by @chrox in https://github.com/readest/readest/pull/3145 * fix(a11y): add missing aria labels and fix iOS safe insets by @chrox in https://github.com/readest/readest/pull/3149 * Add enhanced grouping and sorting functionality to the library view by @charrondev in https://github.com/readest/readest/pull/3146 * fix(layout): fix aligment of options in settings menu, closes #3151 by @chrox in https://github.com/readest/readest/pull/3163 * fix(layout): responsive select mode actions on smaller screens by @chrox in https://github.com/readest/readest/pull/3164 * feat(export): add an option to export annotations as plain text, closes #3147 by @chrox in https://github.com/readest/readest/pull/3165 * fix(kosync): don't show conflict prompt when progress diff is less than 0.01% by @chrox in https://github.com/readest/readest/pull/3166 * feat(a11y): always show page navigation buttons in reader page for screen readers, closes #3036 by @chrox in https://github.com/readest/readest/pull/3167 * fix(bookshelf): merge groups and ungrouped books then sort them together by @chrox in https://github.com/readest/readest/pull/3169 * compat(iOS): disable native CompressionStream/DecompressionStream API in zip.js for iOS 15.x by @chrox in https://github.com/readest/readest/pull/3170 * feat(toc): add page number for nested TOC items, closes #2953 by @chrox in https://github.com/readest/readest/pull/3174 * feat(sync): add manual books sync in the main menu by @chrox in https://github.com/readest/readest/pull/3175 * fix(layout): move sync options inside of account section in settings menu by @chrox in https://github.com/readest/readest/pull/3176 * fix(layout): fixed regression of vertical alignment, closes #3012 by @chrox in https://github.com/readest/readest/pull/3178 * fix(a11y): double tap to focus on current paragraph and update page info with TalkBack, closes #2276 by @chrox in https://github.com/readest/readest/pull/3179 * fix(rsvp): fix position restoration and keyboard handling by @boludo00 in https://github.com/readest/readest/pull/3150 * fix(a11y): updating progress info when navigating with screen readers by @chrox in https://github.com/readest/readest/pull/3182 * fix(layout): fixed page navigation buttons have higher z-index than TTS control button by @chrox in https://github.com/readest/readest/pull/3184 * feat(tts): navigation in TTS mode with back to current button, closes #3100 by @chrox in https://github.com/readest/readest/pull/3189 * release: version 0.9.99 by @chrox in https://github.com/readest/readest/pull/3190 ## New Contributors * @j-v made their first contribution in https://github.com/readest/readest/pull/3010 * @WhiteHades made their first contribution in https://github.com/readest/readest/pull/3023 * @lilozz2 made their first contribution in https://github.com/readest/readest/pull/3090 * @boludo00 made their first contribution in https://github.com/readest/readest/pull/3121 * @charrondev made their first contribution in https://github.com/readest/readest/pull/3139 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.98...v0.9.99 - ## Release Highlight * Reading: Added a reading ruler (line highlight) to help guide your eyes while reading * Reading: Added paragraph-by-paragraph reading mode for more focused navigation * Reading: Added a speed reading mode to support faster reading workflows * Reading: Added support for gamepad input to turn pages * Accessibility: Improved TalkBack support in dropdown menus for smoother navigation * Accessibility: Page navigation buttons are now always visible to screen readers * Accessibility: Reading progress is now updated correctly when navigating with screen readers * Annotations: Expanded highlight customization with more color options * Annotations: Added an option to export annotations as plain text
More…
* Library: Added grouping by author and series for better library organization * Library: Added support of marking books as finished * Search: Added fuzzy search to quickly find settings even with partial keywords * Table of Contents: Added page numbers for nested TOC entries * Text-to-Speech: Added navigation controls to return to the current reading position * Linux: Added an in-app updater for AppImage builds * E-ink: Improved color support for color E-ink devices to display richer highlights ## What's Changed * fix(account): redirect to auth page if unauthed user is in user page by @chrox in https://github.com/readest/readest/pull/3008 * Prevent caching from blocking code updates in dev environment by @j-v in https://github.com/readest/readest/pull/3010 * feat(ui): switch typography to Inter by @Whitestar14 in https://github.com/readest/readest/pull/3009 * chore: enforce prettier, ignore submodules and vendor files by @Whitestar14 in https://github.com/readest/readest/pull/3018 * chore(opds): disable popular online opds catalogs in certain regions on App Store by @chrox in https://github.com/readest/readest/pull/3031 * fix(layout): correctly constrain the maximum width of fixed-layout tables, closes #3028 and closes #3017 by @chrox in https://github.com/readest/readest/pull/3032 * fix(shortcuts): prevent system search bar from showing with ctrl+f, closes #3013 by @chrox in https://github.com/readest/readest/pull/3033 * fix(layout): more responsive layout on smaller screens, closes #3029 by @chrox in https://github.com/readest/readest/pull/3034 * fix(sync): hotfix for the initial race condition for books sync by @chrox in https://github.com/readest/readest/pull/3038 * fix(sync): correctly update last sync timestamp when the bookshelf has no books yet by @chrox in https://github.com/readest/readest/pull/3039 * fix(tts): set playback rate after play only on Linux by @chrox in https://github.com/readest/readest/pull/3040 * fix(annotator): fix instant action on Android by @chrox in https://github.com/readest/readest/pull/3042 * fix(sanitizer): add XHTML11 doc type to recognize nbsp entity, closes #3024 by @chrox in https://github.com/readest/readest/pull/3043 * feat(ai): AI reading assistant phase 2 by @WhiteHades in https://github.com/readest/readest/pull/3023 * chore: fix patched dependencies by @chrox in https://github.com/readest/readest/pull/3053 * chore: refresh pnpm lockfile by @chrox in https://github.com/readest/readest/pull/3054 * chore: pin pnpm version for vercel and cloudflare deployment by @chrox in https://github.com/readest/readest/pull/3055 * chore: less build concurrency on cloudflare to get rid of build container OOM by @chrox in https://github.com/readest/readest/pull/3056 * chore: update wrangler and next config by @chrox in https://github.com/readest/readest/pull/3058 * feat(annotation): export annotations with style and color fields in annotation template, closes #1734 by @chrox in https://github.com/readest/readest/pull/3060 * feat(ai): AI reading assistant phase 2.1 (minor UI/UX updates) by @WhiteHades in https://github.com/readest/readest/pull/3059 * chore: fix nunjucks bundling by @chrox in https://github.com/readest/readest/pull/3061 * refactor: rename components/ui to components/primitives by @chrox in https://github.com/readest/readest/pull/3064 * feat: line highlight to guide reading (reading ruler) by @WhiteHades in https://github.com/readest/readest/pull/3063 * feat: more highlight colours by @WhiteHades in https://github.com/readest/readest/pull/3062 * chore: fix dockerfile by @chrox in https://github.com/readest/readest/pull/3067 * layout: don't show upload icon if auto upload is disabled for cleaner UI by @chrox in https://github.com/readest/readest/pull/3068 * doc: update donation link via Stripe by @chrox in https://github.com/readest/readest/pull/3071 * feat(updater): in-app updater for AppImage by @chrox in https://github.com/readest/readest/pull/3072 * feat(gamepad): support gamepad input to paginate, closes #2432 by @chrox in https://github.com/readest/readest/pull/3073 * feat(eink): support color E-ink mode to display more colors, closes #3037 by @chrox in https://github.com/readest/readest/pull/3074 * feat(ruler): support vertical ruler and transparent ruler by @chrox in https://github.com/readest/readest/pull/3076 * feat: auto position reader ruler to top of page and some fixes by @WhiteHades in https://github.com/readest/readest/pull/3075 * fix(bookshelf): fixed conflicts of group names with common prefix by @chrox in https://github.com/readest/readest/pull/3084 * feat: add fuzzy search for searching across all settings by @WhiteHades in https://github.com/readest/readest/pull/3085 * Add embedding model option to AIPanel by @lilozz2 in https://github.com/readest/readest/pull/3090 * chore: bump opennextjs and wrangler to the latest versions by @chrox in https://github.com/readest/readest/pull/3092 * fix(css): no default mix blend mode for hr, closes #3086 by @chrox in https://github.com/readest/readest/pull/3093 * feat: toggle finished manually by @WhiteHades in https://github.com/readest/readest/pull/3091 * fix(iOS): disable online catalogs on iOS from appstore channel by @chrox in https://github.com/readest/readest/pull/3102 * chore: bump next.js to the latest version by @chrox in https://github.com/readest/readest/pull/3106 * fix(bookshelf): don't show badge or progress for unread book, closes #3103 by @chrox in https://github.com/readest/readest/pull/3107 * fix(sync): more robust books sync for stale library, closes #3099 by @chrox in https://github.com/readest/readest/pull/3108 * fix(sync): escape unsafe character in filename by @chrox in https://github.com/readest/readest/pull/3109 * refactor: responsive SetStatusAlert on smaller screens by @chrox in https://github.com/readest/readest/pull/3110 * fix(css): mix blend only inline images, closes #3112 by @chrox in https://github.com/readest/readest/pull/3116 * feat: paragraph by paragraph reading mode by @WhiteHades in https://github.com/readest/readest/pull/3096 * fix(layout): fixed layout of book reading progress and reader footer bar by @chrox in https://github.com/readest/readest/pull/3117 * fix(layout): fixed layout of book reading progress and reader footer bar by @chrox in https://github.com/readest/readest/pull/3125 * fix(a11y): fix accessibility in dropdown menus for TalkBack, closes #3035 by @chrox in https://github.com/readest/readest/pull/3126 * fix(macOS): fix traffic lights position and visibility on macOS, closes #3129 by @chrox in https://github.com/readest/readest/pull/3130 * feat(sync): more intuitive pull down to sync gesture and toast info, closes #3128 by @chrox in https://github.com/readest/readest/pull/3131 * feat(gesture): support two finger swipe left/right to paginate on trackpad, closes #3127 by @chrox in https://github.com/readest/readest/pull/3132 * fix(layout): fix centered dropdown menu by @chrox in https://github.com/readest/readest/pull/3133 * fix(opds): more robust parsing for authors in metadata, closes #3120 by @chrox in https://github.com/readest/readest/pull/3134 * fix(layout): fix z index for dropdown by @chrox in https://github.com/readest/readest/pull/3135 * Feature/rsvp speed reading by @boludo00 in https://github.com/readest/readest/pull/3121 * Change setup command for vendors in CONTRIBUTING.md to reflect additional vendor files by @charrondev in https://github.com/readest/readest/pull/3139 * fix(toc): prevent unintentional scrolling in the TOC, closes #3124 by @chrox in https://github.com/readest/readest/pull/3144 * fix(progress): show correct progress info for subsections in FB2, closes #3136 by @chrox in https://github.com/readest/readest/pull/3145 * fix(a11y): add missing aria labels and fix iOS safe insets by @chrox in https://github.com/readest/readest/pull/3149 * Add enhanced grouping and sorting functionality to the library view by @charrondev in https://github.com/readest/readest/pull/3146 * fix(layout): fix aligment of options in settings menu, closes #3151 by @chrox in https://github.com/readest/readest/pull/3163 * fix(layout): responsive select mode actions on smaller screens by @chrox in https://github.com/readest/readest/pull/3164 * feat(export): add an option to export annotations as plain text, closes #3147 by @chrox in https://github.com/readest/readest/pull/3165 * fix(kosync): don't show conflict prompt when progress diff is less than 0.01% by @chrox in https://github.com/readest/readest/pull/3166 * feat(a11y): always show page navigation buttons in reader page for screen readers, closes #3036 by @chrox in https://github.com/readest/readest/pull/3167 * fix(bookshelf): merge groups and ungrouped books then sort them together by @chrox in https://github.com/readest/readest/pull/3169 * compat(iOS): disable native CompressionStream/DecompressionStream API in zip.js for iOS 15.x by @chrox in https://github.com/readest/readest/pull/3170 * feat(toc): add page number for nested TOC items, closes #2953 by @chrox in https://github.com/readest/readest/pull/3174 * feat(sync): add manual books sync in the main menu by @chrox in https://github.com/readest/readest/pull/3175 * fix(layout): move sync options inside of account section in settings menu by @chrox in https://github.com/readest/readest/pull/3176 * fix(layout): fixed regression of vertical alignment, closes #3012 by @chrox in https://github.com/readest/readest/pull/3178 * fix(a11y): double tap to focus on current paragraph and update page info with TalkBack, closes #2276 by @chrox in https://github.com/readest/readest/pull/3179 * fix(rsvp): fix position restoration and keyboard handling by @boludo00 in https://github.com/readest/readest/pull/3150 * fix(a11y): updating progress info when navigating with screen readers by @chrox in https://github.com/readest/readest/pull/3182 * fix(layout): fixed page navigation buttons have higher z-index than TTS control button by @chrox in https://github.com/readest/readest/pull/3184 * feat(tts): navigation in TTS mode with back to current button, closes #3100 by @chrox in https://github.com/readest/readest/pull/3189 * release: version 0.9.99 by @chrox in https://github.com/readest/readest/pull/3190 ## New Contributors * @j-v made their first contribution in https://github.com/readest/readest/pull/3010 * @WhiteHades made their first contribution in https://github.com/readest/readest/pull/3023 * @lilozz2 made their first contribution in https://github.com/readest/readest/pull/3090 * @boludo00 made their first contribution in https://github.com/readest/readest/pull/3121 * @charrondev made their first contribution in https://github.com/readest/readest/pull/3139 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.98...v0.9.99 - ## Release Highlight * Bookshelf: Added the ability to export original book files directly from the book details dialog * Bookshelf: Added a new sorting option to organize books by publish date * Bookshelf: Improved performance for large library with faster and more stable imports * OPDS: Improved download reliability by correctly detecting filenames for PDF and CBZ files * Proofreading: Added support for whole-word replacement to make text corrections more precise * Notes: Added the ability to export notes using a customizable template * PDF: Added support for panning within PDF documents for easier navigation * PDF: Improved performance by pre-rendering the next page for smoother page transitions * Text-to-Speech: Added support for word replacement to improve pronunciation during playback
More…
* Text-to-Speech: Fixed an issue where playback speed settings were not applied correctly on Linux * E-ink: Improved reading stability by preventing unwanted scrolling when animations are disabled or on e-ink devices * Discord: Added Discord Rich Presence to display your current reading status on Desktop platforms * Android: Fixed an issue that could cause occasional crashes during app startup * Fonts: Improved web font loading for faster and more stable text rendering ## What's Changed * fix(settings): avoid stale viewSettings after saving, closes #2912 by @chrox in https://github.com/readest/readest/pull/2916 * feat: add support for exporting book files in book details dialog, closes #2919 by @chrox in https://github.com/readest/readest/pull/2930 * fix(android): avoid occasional crash on start on Android by @chrox in https://github.com/readest/readest/pull/2931 * fix(opds): probe filename when downloading PDFs and CBZ files, closes #2921 by @chrox in https://github.com/readest/readest/pull/2932 * feat(proofread): add an option for whole word replacement, closes #2934 by @chrox in https://github.com/readest/readest/pull/2938 * fix(android): only dismiss unpinned sidebar and notebook with back key, closes #2920 by @chrox in https://github.com/readest/readest/pull/2939 * chore(unittest): test makeSafeFilename by @chrox in https://github.com/readest/readest/pull/2943 * fix(fonts): fix CORS access error 403 of deno.dev with Origin: tauri://localhost by @chrox in https://github.com/readest/readest/pull/2944 * perf(fonts): cache first for font cache by @chrox in https://github.com/readest/readest/pull/2945 * fix(android): fix annotator on Android, closes #2927 by @chrox in https://github.com/readest/readest/pull/2946 * fix(ios): fix wakelock on iOS, closes #2453 by @chrox in https://github.com/readest/readest/pull/2948 * feat(bookshelf): add an option to sort books by publish date, closes #2925 by @chrox in https://github.com/readest/readest/pull/2949 * feat(tts): replace words for TTS, closes #2057 by @chrox in https://github.com/readest/readest/pull/2952 * feat(sync): cloud deletion in transfer queue by @chrox in https://github.com/readest/readest/pull/2964 * fix(proofread): support replace text with space by @chrox in https://github.com/readest/readest/pull/2965 * fix(tts): fix setting playback rate on Linux, closes #2950 by @chrox in https://github.com/readest/readest/pull/2966 * fix(eink): avoid scrolling if animation is turned off or in eink mode, closes #2957 by @chrox in https://github.com/readest/readest/pull/2967 * fix(flathub): use custom dbus id for single instance on Linux by @chrox in https://github.com/readest/readest/pull/2971 * fix(import): read permissions of nested directories when importing books, closes #2954 by @chrox in https://github.com/readest/readest/pull/2972 * fix: remove non-breaking space in book title by @chrox in https://github.com/readest/readest/pull/2974 * chore: bump tauri to latest dev by @chrox in https://github.com/readest/readest/pull/2975 * compat(opds): parse attachment filename from download requests, closes #2969 by @chrox in https://github.com/readest/readest/pull/2976 * feat(pdf): support panning on PDFs by @chrox in https://github.com/readest/readest/pull/2981 * chore: bump pdf.js to the latest version by @chrox in https://github.com/readest/readest/pull/2982 * perf(pdf): pre-render next page for PDFs by @chrox in https://github.com/readest/readest/pull/2984 * fix(linux): use new AppImage format on Linux, closes #190 by @chrox in https://github.com/readest/readest/pull/2985 * fix(portable): in-app update the portable version app, closes #2983 by @chrox in https://github.com/readest/readest/pull/2988 * feat(notes): export notes with custom template, closes #1734 by @chrox in https://github.com/readest/readest/pull/2989 * feat(bookshelf): show one line of book description in list view of the bookshelf, closes #2955 by @chrox in https://github.com/readest/readest/pull/2990 * fix(eink): resolved an issue where the dropdown menu would occasionally fail to expand on some Eink devices by @chrox in https://github.com/readest/readest/pull/2991 * fix(a11y): add missing aria labels for some buttons on TTS panel by @chrox in https://github.com/readest/readest/pull/2994 * feat(account): support social login with Discord account by @chrox in https://github.com/readest/readest/pull/2995 * feat(discord): support show reading status with Discord Rich Presence, closes #1538 by @chrox in https://github.com/readest/readest/pull/2998 * fix(perf): replace JS recursion with native Rust walkdir for imports by @Whitestar14 in https://github.com/readest/readest/pull/2993 * chore(doc): update sponsors info by @chrox in https://github.com/readest/readest/pull/3002 * chore(doc): use png resources for sponsors logo by @chrox in https://github.com/readest/readest/pull/3003 * fix(fonts): host fonts in Readest CDN for more stable web fonts distribution by @chrox in https://github.com/readest/readest/pull/3005 * release: version 0.9.98 by @chrox in https://github.com/readest/readest/pull/3006 ## New Contributors * @Whitestar14 made their first contribution in https://github.com/readest/readest/pull/2993 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.97...v0.9.98 - ## Release Highlight * Annotations: Added annotation bubble icons directly on text with instant note popups * Annotations: Enabled quick highlighting when selecting text * Annotations: Added the ability to edit the text range of existing highlights * Annotations: Added an annotation navigation bar for easier browsing * OPDS: Fixed an issue where CBZ files could not be downloaded from OPDS catalogs * OPDS: Improved compatibility with Komga OPDS servers * OPDS: Added support for OPDS servers using self-signed SSL certificates * PDF: Fixed an issue where some PDF files failed to open * E-ink: Optimized colors and layout for improved e-ink device readability
More…
* Search: Added search term history for quicker repeated searches * Text-to-Speech: Reduced excessive pauses between sentences for smoother playback * File Transfer: Introduced a background transfer queue for uploading and downloading books * Proofreading: Added a proofread tool that can replace text directly within books ## What's Changed * chore: update app metainfo by @chrox in https://github.com/readest/readest/pull/2744 * fix(tts): prompt users to log in to use Edge TTS on the web version by @chrox in https://github.com/readest/readest/pull/2749 * compat(layout): grid layout with fit covers on older browsers, closes #2745 by @chrox in https://github.com/readest/readest/pull/2756 * fix(pdf): avoid frequent eviction of chunk cache from worker thread, closes #2757 by @chrox in https://github.com/readest/readest/pull/2759 * refactor(file): avoid eviction race of chunks cache by @chrox in https://github.com/readest/readest/pull/2761 * chore(pwa): migrate from next-pwa to serwist by @chrox in https://github.com/readest/readest/pull/2762 * feat(font): support OpenType feature of vrt2 and vert for vertical replacement of some punctuations by @chrox in https://github.com/readest/readest/pull/2764 * fix(layout): tweak insets for vertical layout by @chrox in https://github.com/readest/readest/pull/2767 * fix(layout): workaround for hardcoded image container by @chrox in https://github.com/readest/readest/pull/2769 * fix(opds): correctly parse file extension for CBZ files from OPDS servers, closes #2765 by @chrox in https://github.com/readest/readest/pull/2771 * refactor(proofread): refactor UI and i18n for proofread tool by @chrox in https://github.com/readest/readest/pull/2783 * fix(sw): use NetworkFirst for navigation to prevent blank page on updates by @chrox in https://github.com/readest/readest/pull/2784 * fix(layout): fixed line clamp for config items on small screens by @chrox in https://github.com/readest/readest/pull/2792 * fix(annotator): adjust underline position to the center of two lines, closes #2772 by @chrox in https://github.com/readest/readest/pull/2793 * feat(annotator): show notes popup when annotation bubble icon is clicked, closes #1845 by @chrox in https://github.com/readest/readest/pull/2798 * fix(layout): dismiss annotation popup on mobile when navigating by @chrox in https://github.com/readest/readest/pull/2799 * feat(annotator): support rendering vertical annotation bubbles by @chrox in https://github.com/readest/readest/pull/2801 * fix(settings): override book text align of left by @chrox in https://github.com/readest/readest/pull/2802 * compat(epub): detect missing writing direction for some EPUBs by @chrox in https://github.com/readest/readest/pull/2803 * chore(ios): drop support for iOS below 15.0 by @chrox in https://github.com/readest/readest/pull/2804 * chore: bump tauri to latest dev by @chrox in https://github.com/readest/readest/pull/2805 * chore: bump opennext, wrangler and serwist to the latest versions by @chrox in https://github.com/readest/readest/pull/2807 * fix(css): only override background color of hr when it has background image by @chrox in https://github.com/readest/readest/pull/2808 * feat(annotator): support quick actions for text selection, closes #2505 by @chrox in https://github.com/readest/readest/pull/2813 * fix(annotator): delay highlight action to prevent immediate onShowAnnotation trigger by @chrox in https://github.com/readest/readest/pull/2820 * feat(transfer): add a background transfer queue system for book uploads/downloads by @chrox in https://github.com/readest/readest/pull/2821 * fix(settings): ensure global settings sync across all open panes by @aangelinsf in https://github.com/readest/readest/pull/2818 * fix(library): upload files also for open with import and opds import, closes #2826 by @chrox in https://github.com/readest/readest/pull/2827 * fix(metadata): fixed sometimes svg book cover is rendered blank by @chrox in https://github.com/readest/readest/pull/2829 * feat(css): support overriding link color by @chrox in https://github.com/readest/readest/pull/2830 * fix(ios): fixed error when importing file with urlencoded names by @chrox in https://github.com/readest/readest/pull/2831 * fix(layout): set image width for vertical inline images by @chrox in https://github.com/readest/readest/pull/2832 * fix(android): don't navigate back with the back button for more predictable navigation by @chrox in https://github.com/readest/readest/pull/2835 * feat(search): add search results navigation bar, closes #1183 by @chrox in https://github.com/readest/readest/pull/2842 * fix(tts): reduce the pause duration between sentences in Edge TTS, closes #2837 by @chrox in https://github.com/readest/readest/pull/2844 * feat(search): add annotations navigation bar, closes #2060 by @chrox in https://github.com/readest/readest/pull/2849 * compat(opds): support Komga OPDS v1.2 and v2, closes #2839 by @chrox in https://github.com/readest/readest/pull/2851 * compat(footnote): support alt footnote inside placeholder anchor by @chrox in https://github.com/readest/readest/pull/2858 * feat(search): support search terms history, closes #2836 by @chrox in https://github.com/readest/readest/pull/2859 * perf(search): use cache for search results by @chrox in https://github.com/readest/readest/pull/2861 * fix(search): should be able to terminate search when sidebar is invisible by @chrox in https://github.com/readest/readest/pull/2863 * refactor(annotatot): more cleaner text selector on Android by @chrox in https://github.com/readest/readest/pull/2867 * feat(annotator): support editing text range of highlights by @chrox in https://github.com/readest/readest/pull/2870 * fix(login): Fix login message field by @lcd1232 in https://github.com/readest/readest/pull/2879 * feat(annotator): instant highlighting with mouse, touch or pen by @chrox in https://github.com/readest/readest/pull/2881 * feat(annotator): support vertical layout for annotation editor by @chrox in https://github.com/readest/readest/pull/2882 * fix: avoid hydration mismatch for tauri app by @chrox in https://github.com/readest/readest/pull/2884 * feat(eink): optimize color and layout for e-ink mode by @chrox in https://github.com/readest/readest/pull/2887 * TTS: footnotes anchors and superscript filtering by @Hermotimus in https://github.com/readest/readest/pull/2890 * feat(config): add an option to toggle footbar by tapping on the footbar by @chrox in https://github.com/readest/readest/pull/2891 * perf(sync): persist partial library sync to prevent full retry on failure by @chrox in https://github.com/readest/readest/pull/2892 * fix(sanitizer): normalize non-breaking spaces for WebView compatibility by @chrox in https://github.com/readest/readest/pull/2893 * fix(proofread): support text replacement for text with no word boundaries, closes #2889 by @chrox in https://github.com/readest/readest/pull/2894 * fix(css): table and header layout, closes #2874 by @chrox in https://github.com/readest/readest/pull/2896 * fix(metadata): no need to download book to display book details, closes #2857 by @chrox in https://github.com/readest/readest/pull/2897 * fix(opds): temporary workaround for self-signed cert for OPDS server, closes #2871 by @chrox in https://github.com/readest/readest/pull/2900 * fix(windows): update shortcut to point to current installation, closes #2878 by @chrox in https://github.com/readest/readest/pull/2901 * fix(windows): update shortcut to point to current installation, closes #2878 by @chrox in https://github.com/readest/readest/pull/2902 * fix(css): respect css for page break and minimum font size, closes #2895 by @chrox in https://github.com/readest/readest/pull/2903 * fix(css): primary btn style for e-ink mode by @chrox in https://github.com/readest/readest/pull/2905 * fix(fonts): update font CDN links to use deno.dev for improved reliability by @KonghaYao in https://github.com/readest/readest/pull/2906 * fix(settings): correctly setting configs for selected book in parallel read, closes #2825 by @chrox in https://github.com/readest/readest/pull/2908 * release: version 0.9.97 by @chrox in https://github.com/readest/readest/pull/2909 ## New Contributors * @aangelinsf made their first contribution in https://github.com/readest/readest/pull/2818 * @lcd1232 made their first contribution in https://github.com/readest/readest/pull/2879 * @Hermotimus made their first contribution in https://github.com/readest/readest/pull/2890 * @KonghaYao made their first contribution in https://github.com/readest/readest/pull/2906 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.96...v0.9.97 - ## Release Highlight * TTS: Resolved an issue where Edge TTS was blocked in certain regions * OPDS: Improved compatibility with older versions of Calibre Web * OPDS: Added an instant search bar for faster browsing in OPDS catalogs * OPDS: Added a curated book catalog from Standard Ebooks * Bookshelf: Added a “Group Books” action to the context menu * Comics: Fixed layout issues to improve comic book reading * Layout: Footnote popups now adapt correctly to different screen sizes * Layout: Fixed an issue where the maximum inline width was not applied to EPUBs * Sync: Improved file downloading by correctly handling special characters in filenames
More…
* UI: Added an option to temporarily dismiss the reading progress bar * Settings: Screen brightness adjustments now apply only to the reader view * iOS: You can now open files directly in Readest from the Files app * macOS: Added a global menu option to open files with Readest ## What's Changed * feat: refresh account info after managing cloud storage by @chrox in https://github.com/readest/readest/pull/2648 * fix(macOS): delay writing to clipboard to ensure it won't be overridden by system clipboard actions, closes #2647 by @chrox in https://github.com/readest/readest/pull/2649 * add rust and node deps to the nix devshell by @jpetrucciani in https://github.com/readest/readest/pull/2655 * fix(footnote): add custom attributes for footnote in sanitizer, closes #2651 by @chrox in https://github.com/readest/readest/pull/2657 * refactor(layout): refactor page margins for pixel precision, closes #2652 by @chrox in https://github.com/readest/readest/pull/2663 * compat(opds): fallback to Basic auth if no WWW-Authenticate challenge in the response headers, closes #2656 by @chrox in https://github.com/readest/readest/pull/2673 * chore: repackaging readest koplugin for updater, closes #2669 by @chrox in https://github.com/readest/readest/pull/2676 * fix(iap): don't initialize billing on Android without google play service, closes #2630 by @chrox in https://github.com/readest/readest/pull/2677 * fix(tts): avoid false default en language code for TTS by @chrox in https://github.com/readest/readest/pull/2678 * chore(koplugin): add version info in the meta file by @chrox in https://github.com/readest/readest/pull/2679 * fix(comic): fixed layout for comic books, closes #2672 by @chrox in https://github.com/readest/readest/pull/2680 * feat(opds): added books catalog from standardebooks.org by @chrox in https://github.com/readest/readest/pull/2681 * fix(opds): select proper opds search link by @chrox in https://github.com/readest/readest/pull/2683 * chore(pwa): more aggressive offline cache for the web version by @chrox in https://github.com/readest/readest/pull/2686 * fix(pwa): don't cache api requests and cache client-side navigation routes by @chrox in https://github.com/readest/readest/pull/2687 * fix(layout): fix responsive layout for footnote popup by @chrox in https://github.com/readest/readest/pull/2688 * chore: bump tauri to the latest dev branch by @chrox in https://github.com/readest/readest/pull/2690 * fix(sync): handle special characters in filenames when downloading by @chrox in https://github.com/readest/readest/pull/2694 * feat(ui): progress info with cycleable display modes by @mikepmiller in https://github.com/readest/readest/pull/2682 * fix(layout): fixed the layout of the selector of the translator providers by @chrox in https://github.com/readest/readest/pull/2701 * chore: bump next.js to version 16.0.10 by @chrox in https://github.com/readest/readest/pull/2702 * fix(web): fixed router glitches for library page after returned from reader by @chrox in https://github.com/readest/readest/pull/2703 * feat(iOS): support open file with Readest in Files App, closes #2334 by @chrox in https://github.com/readest/readest/pull/2705 * feat(macOS): add open file global menu for macOS, closes #2692 by @chrox in https://github.com/readest/readest/pull/2708 * fix(layout): fixed max inline width not applied for EPUBs, closes #2706 by @chrox in https://github.com/readest/readest/pull/2711 * fix(layout): make sure annotation popups can be accessible in some edge cases, closes #2704 by @chrox in https://github.com/readest/readest/pull/2713 * feat(opds): instant search bar for opds catalog, closes #2707 by @chrox in https://github.com/readest/readest/pull/2714 * fix(opds): expose X-Content-Length header for CORS requests by @chrox in https://github.com/readest/readest/pull/2715 * feat(bookshelf): add group books button in context menu, closes #2698 by @chrox in https://github.com/readest/readest/pull/2718 * chore(deps): bump actions/cache from 4 to 5 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/2719 * fix(settings): screen brightness setting only applies to the reader page, closes #2717 by @chrox in https://github.com/readest/readest/pull/2720 * fix: add stats API and fix fd leak, closes #2323 by @chrox in https://github.com/readest/readest/pull/2723 * fix(layout): fix bleed layout for images by @chrox in https://github.com/readest/readest/pull/2729 * fix: make sidebar and notebook pin states persist after refresh by @chrox in https://github.com/readest/readest/pull/2730 * fix(layout): line clamp opds url, closes #2726 by @chrox in https://github.com/readest/readest/pull/2731 * feat(replacement): text replacement feature for EPUB books by @qianxuege in https://github.com/readest/readest/pull/2725 * fix(tts): resolve Edge TTS being blocked in certain regions by @chrox in https://github.com/readest/readest/pull/2741 * refactor: temporarily disable the proofreading feature for a hotfix release ahead of a major refactor by @chrox in https://github.com/readest/readest/pull/2742 * release: version 0.9.96 by @chrox in https://github.com/readest/readest/pull/2743 ## New Contributors * @jpetrucciani made their first contribution in https://github.com/readest/readest/pull/2655 * @mikepmiller made their first contribution in https://github.com/readest/readest/pull/2682 * @qianxuege made their first contribution in https://github.com/readest/readest/pull/2725 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.95...v0.9.96 - ## Release Highlight * OPDS: You can now search, browse, and download ebooks directly from OPDS catalogs * OPDS: Improved compatibility with Calibre Web for reliable downloads * OPDS: Fixed an issue where book covers from self-hosted Calibre OPDS servers did not display correctly * Cloud Storage: You can view and delete files stored in your cloud storage directly from the app * Bookshelf: Added support for importing books from a folder recursively * Bookshelf: You can now rename your bookshelf groups * EPUB: Added support for SVG covers from Standard Ebooks * Annotations: Keyboard shortcuts no longer copy selected text into the notebook * Footnotes: Footnote popups now scale properly on small screens
More…
* Touch/Styli: Removed the context menu for smoother interaction on touch and stylus devices * Layout: Devices with unfoldable screens now automatically switch to a two-column layout * PDF: Improved zoomed-in navigation and hand-tool behavior for smoother page navigation * Android: Fixed highlighting of the current sentence when using native Android text-to-speech * Android: Back button handling now works correctly on Android 15 and above * Android: You can now open files shared from other apps ## What's Changed * chore: update flathub metainfo by @chrox in https://github.com/readest/readest/pull/2586 * compat(opds): add User-Agent header to fix downloads from Calibre Web OPDS by @chrox in https://github.com/readest/readest/pull/2592 * fix: disable saving last book cover with playstore variant, closes #2600 by @chrox in https://github.com/readest/readest/pull/2602 * fix(layout): fixed scrollable layout in the about readest window, closes #2593 by @chrox in https://github.com/readest/readest/pull/2604 * fix(annotator): don't copy selection to notebook with keyboard shortcut by default, closes #2603 by @chrox in https://github.com/readest/readest/pull/2605 * refactor(opds): use catalog id instead of credentials in url params, closes #2599 by @chrox in https://github.com/readest/readest/pull/2606 * chore: bump next.js to version 16.0.7 by @chrox in https://github.com/readest/readest/pull/2612 * fix(layout): hide overflow of children elements in duokan bleed, closes #2597 by @chrox in https://github.com/readest/readest/pull/2613 * fix: get rid of the context menu for touch screen or stylus device when selecting text, closes #2579 by @chrox in https://github.com/readest/readest/pull/2614 * fix(layout): auto two-column layout for unfolded screen, closes #2588 by @chrox in https://github.com/readest/readest/pull/2615 * fix(pdf): Fixed zoomed layout and hand tool event handling, closes #2596 by @chrox in https://github.com/readest/readest/pull/2617 * fix(tts): fixed highlighting of current sentence for native tts on Android, closes #2620 by @chrox in https://github.com/readest/readest/pull/2621 * fix(cache): invalidate config and doc cache, closes #2595 and closes #2572 by @chrox in https://github.com/readest/readest/pull/2623 * chore: bump various dependencies by @chrox in https://github.com/readest/readest/pull/2624 * fix(android): intercept back button press for Android 15+, closes #2454 by @chrox in https://github.com/readest/readest/pull/2626 * feat(android): support opening shared files from other apps, closes #2484 by @chrox in https://github.com/readest/readest/pull/2628 * fix(opds): relax img-src CSP to support images served from arbitrary HTTP/HTTPS hosts and ports, closes #2631 by @chrox in https://github.com/readest/readest/pull/2633 * feat(opds): add support to search in OPDS, closes #2598 by @chrox in https://github.com/readest/readest/pull/2634 * feat: support cloud storage management by @chrox in https://github.com/readest/readest/pull/2636 * fix: enable shared-intent event listener only on Android for now by @chrox in https://github.com/readest/readest/pull/2638 * feat: add support for renaming bookshelf groups by @chrox in https://github.com/readest/readest/pull/2639 * feat: add support for importing from a directory recursively, closes #179 by @chrox in https://github.com/readest/readest/pull/2642 * fix(footnote): responsive popup size so that on small screen it won't overflow by @chrox in https://github.com/readest/readest/pull/2644 * fix(epub): support SVG cover for ebooks from standardebooks.org by @chrox in https://github.com/readest/readest/pull/2645 * release: version 0.9.95 by @chrox in https://github.com/readest/readest/pull/2646 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.94...v0.9.95 - ## Release Highlight * OPDS: You can now browse and download ebooks directly from OPDS catalogs * PDF: Added a hand-tool mode that makes navigating PDF pages easier * Covers: You can now choose a folder to save the latest book cover image * CJK: Added one-tap conversion between Simplified and Traditional Chinese * Shortcuts: Use Ctrl + mouse wheel to quickly zoom in or out * Library: Added a new option to adjust cover sizes in grid view * Windows: Added Ebook thumbnails with book covers in Windows Explorer * TTS: Fixed an issue where the page would scroll when showing the annotator * Annotations: Resolved layout shifts when selecting text in paginated mode on Android 1
More…
* Files: Improved backup handling to prevent file corruption 1 * Layout: Fixed text clipping caused by negative indents 1 * E-ink: Improved sidebar and notebook background colors for e-ink devices 1 * Android: The Back button now works properly in menus, dialogs, and alerts 1 * iOS: Fixed occasional failures when opening books on older iOS versions (16.4 and below) ## What's Changed * fix(annotator): don't scroll page when annotator is shown in TTS mode, closes #2479 by @chrox in https://github.com/readest/readest/pull/2487 * chore: bump tauri to version 2.9.3 by @chrox in https://github.com/readest/readest/pull/2488 * chore: sync app metadata release notes by @chrox in https://github.com/readest/readest/pull/2492 * fix(flathub): fix releases notes by @chrox in https://github.com/readest/readest/pull/2494 * fix(layout): fixed some rendering problems on Next 16 by @chrox in https://github.com/readest/readest/pull/2495 * chore: bump Next.js to 16.0.3 by @chrox in https://github.com/readest/readest/pull/2496 * chore: fix cf deploy scripts by @chrox in https://github.com/readest/readest/pull/2501 * fix: resolve endless loading indicator by @chrox in https://github.com/readest/readest/pull/2502 * fix: proper code indentation by @chrox in https://github.com/readest/readest/pull/2503 * chore(flathub): update oars content attribute by @chrox in https://github.com/readest/readest/pull/2504 * chore(flathub): verify the readest app on flathub by @chrox in https://github.com/readest/readest/pull/2507 * docs: update README and app metadata by @chrox in https://github.com/readest/readest/pull/2509 * feat(cjk): add an option to replace quotation marks in vertical layout for CJK languages by @chrox in https://github.com/readest/readest/pull/2511 * feat: support text conversion between simplifed and traditional Chinese, closes #2508 by @chrox in https://github.com/readest/readest/pull/2520 * feat: select directory to save last book cover image by @chrox in https://github.com/readest/readest/pull/2521 * chore: add more test cases for simplecc by @chrox in https://github.com/readest/readest/pull/2522 * fix(annotator): fixed layout shift when selecting text in paginated mode on Android by @chrox in https://github.com/readest/readest/pull/2524 * chore(deps): bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/2525 * fix(layout): avoid clipping text because of negative indent, closes #2498 by @chrox in https://github.com/readest/readest/pull/2526 * fix(translator): resolve occasional translation failures when navigating to new chapters by @chrox in https://github.com/readest/readest/pull/2527 * fix: prevent file corruption using a robust backup strategy, closes #2512 by @chrox in https://github.com/readest/readest/pull/2528 * fix(eink): adjust sidebar and notebook background color for eink, closes #2497 by @chrox in https://github.com/readest/readest/pull/2529 * feat(pdf): add support for hand tool panning for PDFs, closes #2518 by @chrox in https://github.com/readest/readest/pull/2532 * feat(shortcut): add ctrl + mouse wheel to zoom in/out, closes #2011 by @chrox in https://github.com/readest/readest/pull/2533 * Update Ukrainian translations for consistency by @StepanSad in https://github.com/readest/readest/pull/2535 * compat(css): override blockquote bg color in dark mode, closes #2281 by @chrox in https://github.com/readest/readest/pull/2538 * fix(android): support back key in menu, dialog and alert widgets, closes #2454 by @chrox in https://github.com/readest/readest/pull/2539 * feat: add option to apply page margins in scrolled mode, closes #2014 by @chrox in https://github.com/readest/readest/pull/2540 * feat: add option to clear custom fonts in Font Panel by @chrox in https://github.com/readest/readest/pull/2541 * fix(android): support back action for grouping modal by @chrox in https://github.com/readest/readest/pull/2542 * i18n: add translations for Bahasa Melayu(ms) by @chrox in https://github.com/readest/readest/pull/2543 * feat(shortcut): add shortcuts for annotation tools, closes #2270 by @chrox in https://github.com/readest/readest/pull/2548 * compat(css): sanitize insane absolute position, closes #2547 by @chrox in https://github.com/readest/readest/pull/2549 * fix(layout): skip applying safe area insets when the iframe content is reloaded by @chrox in https://github.com/readest/readest/pull/2550 * feat: add view option to set cover image size in grid mode, closes #2545 by @chrox in https://github.com/readest/readest/pull/2551 * fix(layout): layout of the grid columns setting by @chrox in https://github.com/readest/readest/pull/2552 * compat(ios): avoid lookbehind assertions for iOS older than 16.4 by @chrox in https://github.com/readest/readest/pull/2553 * fix(layout): fix layout for import book item in grid fit mode by @chrox in https://github.com/readest/readest/pull/2554 * fix(layout): avoid cascading refresh when cleaning up query parameters by @chrox in https://github.com/readest/readest/pull/2555 * feat: apply progress style to footerbar progress by @chrox in https://github.com/readest/readest/pull/2556 * fix(layout): fixed navigation parameters not synced with settings by @chrox in https://github.com/readest/readest/pull/2559 * feat(windows): Add explorer thumbnail registration and installer hook… by @411A in https://github.com/readest/readest/pull/2557 * refactor(extensions): move windows-thumbnail to extensions by @chrox in https://github.com/readest/readest/pull/2562 * fix(extensions): add missing tauri conf for windows build by @chrox in https://github.com/readest/readest/pull/2563 * feat(opds): support downloading ebooks from OPDS catalogs by @chrox in https://github.com/readest/readest/pull/2571 * fix(opds): workaround parsing of encoded params in proxied url in cloudflare by @chrox in https://github.com/readest/readest/pull/2575 * feat: also convert quotation marks between Chinese variants by @chrox in https://github.com/readest/readest/pull/2578 * fix(layout): refactor full height for edge to edge env and in browser env by @chrox in https://github.com/readest/readest/pull/2582 * fix(toc): scroll to current toc item and anchor in TTS mode, closes #2574 by @chrox in https://github.com/readest/readest/pull/2583 * fix(opds): use custom header for content length when streaming content by @chrox in https://github.com/readest/readest/pull/2584 * release: version 0.9.94 by @chrox in https://github.com/readest/readest/pull/2585 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.93...v0.9.94 - ## Release Highlight * Sync: Improved reliability for new accounts so your books sync correctly from the start * Library: Fixed an occasional issue where returning to the library could get stuck * Layout: Improved image display in paginated mode so images won't exceed the available height * TXT: Improved performance and stability when opening and parsing TXT files * Fonts: Fixed an issue where monospace fonts were not applied correctly in code blocks ## What's Changed * fix(sync): propagate book delete status to other devices by @chrox in https://github.com/readest/readest/pull/2473 * fix(font): avoid overriding monospace fonts for code blocks, closes #1805 by @chrox in https://github.com/readest/readest/pull/2474
More…
* fix(txt): more tolerant encoding detection for utf-8 by @chrox in https://github.com/readest/readest/pull/2475 * chore(pwa): get rid of public headers requests by @chrox in https://github.com/readest/readest/pull/2477 * fix(txt): register style.css to content.opf by @54wedge in https://github.com/readest/readest/pull/2476 * chore(pwa): config workbox to skip precaching next.js internal files by @chrox in https://github.com/readest/readest/pull/2478 * fix(layout): constrain image height within table cells in paginated mode by @chrox in https://github.com/readest/readest/pull/2480 * fix(sync): fixed sync issues affecting new accounts, closes #2481 by @chrox in https://github.com/readest/readest/pull/2483 * fix(library): fixed occasional freeze when navigating back to the library by @chrox in https://github.com/readest/readest/pull/2485 * release: version 0.9.93 by @chrox in https://github.com/readest/readest/pull/2486 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.92...v0.9.93 - ## Release Highlight * Bookshelf: Added support for nested groups to organize your books more flexibly * Sync: Improved reliability by automatically retrying failed book syncs * Sync: Improved token refresh so login sessions stay active longer on KOReader * E-Ink: Enhanced readability on the library page for E-Ink devices * UI: Storage capacity is now displayed with precise values in the user profile * Reader: You can now import files directly into the currently selected book group * Account: You can now update the email address linked to your Readest account * Footnotes: Added compatibility for more footnote formats
More…
## What's Changed * fix(ui): display exact storage capacity in the user profile by @chrox in https://github.com/readest/readest/pull/2366 * fix(layout): various fixes on the book and reader styles and layouts, closes #2368 by @chrox in https://github.com/readest/readest/pull/2369 * fix(import): resolve import failures for certain EPUB files, closes #2309 by @chrox in https://github.com/readest/readest/pull/2370 * compat: polyfill AbortController/AbortSignal on older browsers by @chrox in https://github.com/readest/readest/pull/2371 * feat(layout): support for duokan bleed layout, closes #2374 by @chrox in https://github.com/readest/readest/pull/2378 * fix(css): avoid overriding table background color by default, closes #2377 by @chrox in https://github.com/readest/readest/pull/2379 * fix(koplugin): properly refresh access token by @chrox in https://github.com/readest/readest/pull/2384 * fix(layout): fine tuning of column width in scrolled mode and vertical mode, closes #2383 by @chrox in https://github.com/readest/readest/pull/2387 * fix(settings): don't show system fonts on Android, closes #2381 by @chrox in https://github.com/readest/readest/pull/2388 * feat(import): import files directly into the current book group by @chrox in https://github.com/readest/readest/pull/2393 * fix(eink): more readablility for E-Ink mode on the library page, closes #2364 by @chrox in https://github.com/readest/readest/pull/2395 * fix(upload): sanitize filenames before uploading to cloud bucket by @chrox in https://github.com/readest/readest/pull/2396 * fix(layout): restrict image container within column boundaries, closes #2390 by @chrox in https://github.com/readest/readest/pull/2398 * fix(css): support style transformer for inline css by @chrox in https://github.com/readest/readest/pull/2403 * fix: default to not override book color for PDF, closes #2397 by @chrox in https://github.com/readest/readest/pull/2404 * fix(android): get brightness of the current window on Android, closes #2389 by @chrox in https://github.com/readest/readest/pull/2409 * fix(metadata): fixed changing cover image in Readest apps, closes #2402 by @chrox in https://github.com/readest/readest/pull/2410 * fix(android): fixed back gesture to close config panel, closes #2406 by @chrox in https://github.com/readest/readest/pull/2411 * fix(layout): fixed header bar z index by @chrox in https://github.com/readest/readest/pull/2413 * fix(eink): no shade in eink mode by @chrox in https://github.com/readest/readest/pull/2421 * compat(sync): compatibility for kosync server implementations that do not return timestamp by @chrox in https://github.com/readest/readest/pull/2422 * fix(layout): don't hide horizontal scrollbar, closes #2418 by @chrox in https://github.com/readest/readest/pull/2424 * compat(footnote): support more footnote formats by @chrox in https://github.com/readest/readest/pull/2425 * fix(tts): fixed incorrectly selected voices, closes #2386 by @chrox in https://github.com/readest/readest/pull/2426 * fix(eink): avoid gray color in E-Ink mode by @chrox in https://github.com/readest/readest/pull/2427 * fix(annotator): enhance PDF context menu for translation and improve touch handling by @ByteFlowing1337 in https://github.com/readest/readest/pull/2430 * fix(pdf): disabled pagination with swipe gesture below minimum velocity for PDFs, closes #2428 by @chrox in https://github.com/readest/readest/pull/2434 * fix: fixed multiple windows are opened when opening with readest, closes #2429 by @chrox in https://github.com/readest/readest/pull/2435 * fix(css): overriding book color for more semantic tags, closes #2433 by @chrox in https://github.com/readest/readest/pull/2436 * feat: supported updating email address for Readest account by @chrox in https://github.com/readest/readest/pull/2437 * feat(bookshelf): support nested groups in the bookshelf, closes #568 by @chrox in https://github.com/readest/readest/pull/2449 * fix(layout): scale table to fit within column constraints, closes #2445 by @chrox in https://github.com/readest/readest/pull/2455 * fix(mobi): properly handle empty fragments for MOBI by @chrox in https://github.com/readest/readest/pull/2456 * fix(layout): enlarge clickable area for the close button in the reader page by @chrox in https://github.com/readest/readest/pull/2459 * fix: save reading progress when closing app directly in reader page, closes #2346 by @chrox in https://github.com/readest/readest/pull/2461 * fix(sync): retry sync books for previous failed sync, closes #2441 by @chrox in https://github.com/readest/readest/pull/2462 * fix: ger rid of the AbortSignal polyfill by @chrox in https://github.com/readest/readest/pull/2463 * fix(iap): open external app for payment by @chrox in https://github.com/readest/readest/pull/2465 * fix(kosync): proxy kosync request only for the web app, closes #2440 by @chrox in https://github.com/readest/readest/pull/2466 * fix(txt): handle chapter title patterns by @chrox in https://github.com/readest/readest/pull/2467 * fix(bookshelf): ensure 'select all' only targets books in the active group by @chrox in https://github.com/readest/readest/pull/2468 * release: version 0.9.92 by @chrox in https://github.com/readest/readest/pull/2469 ## New Contributors * @ByteFlowing1337 made their first contribution in https://github.com/readest/readest/pull/2430 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.91...v0.9.92 - ## Release Highlight * TTS: Fixed an issue where system voices were not working on Android * TTS: Added options to customize the highlight style during read-aloud * E-Ink: Disabled all shadows to improve display clarity * E-Ink: Added an option to save the last book cover on Android * Android: Fixed a crash that occurred when toggling 'Allow Script' * Android: Adjusted launcher icon size for better compatibility across devices ## What's Changed * fix(tts): fixed listener of tts events by @chrox in https://github.com/readest/readest/pull/2349
More…
* fix: fixed crash when switching allow script by @chrox in https://github.com/readest/readest/pull/2351 * fix(compat): use xml serializer for sanitized doc for better compatibility by @chrox in https://github.com/readest/readest/pull/2352 * fix(android): fixed Android launcher icon size on some Android systems by @chrox in https://github.com/readest/readest/pull/2353 * eink: disable all shadows in E-Ink mode by @chrox in https://github.com/readest/readest/pull/2354 * feat: add options to customize the style of highlighted text of current sentence of TTS by @chrox in https://github.com/readest/readest/pull/2358 * feat(plan): show life-time plan name in user profile by @chrox in https://github.com/readest/readest/pull/2360 * feat(eink): add an option to save last book cover on Android, closes #1414 by @chrox in https://github.com/readest/readest/pull/2361 * release: version 0.9.91 by @chrox in https://github.com/readest/readest/pull/2362 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.90...v0.9.91 - ## Release Highlight * Sync: Faster library syncing and support for in-app one-time purchases of extra cloud storage * TTS: You can now choose the target language for read-aloud on translated books * Reader: New keyboard shortcuts make it easier to move between sections * Reader: Smoother scrolling for a more comfortable reading experience * Reader: Footnotes in definition lists are now fully supported * Reader: Improved search accuracy and display of search results * Reader: Clearer error messages when importing books * Reader: Improved safety when loading book content * Settings: You can now choose your own highlight colors
More…
* Settings: Added option to adjust screen brightness automatically * E-Ink: Better readability and clearer progress display with underlined links * Android: You can now store app data on an external SD card * iOS: Restores your last reading page if the app was closed in the background * Localization: Added Persian (Farsi) language support ## What's Changed * fix: add more elements to color overrides by @danielleontiev in https://github.com/readest/readest/pull/2265 * fix(layout): fix inline image, closes #2263 by @chrox in https://github.com/readest/readest/pull/2266 * tts: avoid using AnaNeural as default English voice by @chrox in https://github.com/readest/readest/pull/2272 * feat(settings): add custom highlight color picker by @411A in https://github.com/readest/readest/pull/2273 * chore: add contribution settings by @ittuann in https://github.com/readest/readest/pull/2274 * fix(css): support at rules of CSS and fix CSS formatter by @CreeperIsASpy in https://github.com/readest/readest/pull/2269 * chore: i18n for highlight color settings by @chrox in https://github.com/readest/readest/pull/2275 * chore(deps): bump actions/setup-node from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/readest/readest/pull/2277 * feat: supported footnotes for definition list, closes #2278 by @chrox in https://github.com/readest/readest/pull/2279 * feat: support Android IAP by @chrox in https://github.com/readest/readest/pull/2286 * css: properly handle theme color in dark mode for code blocks, closes #2281 by @chrox in https://github.com/readest/readest/pull/2290 * feat: add keyboard shortcuts to go prev/next sections, closes #2287 by @chrox in https://github.com/readest/readest/pull/2291 * feat(android): support custom data location on external sdcard by @chrox in https://github.com/readest/readest/pull/2292 * chore: bump eslint-config-next to version 16 by @chrox in https://github.com/readest/readest/pull/2294 * chore: bump nextjs, opennextjs and supabasejs by @chrox in https://github.com/readest/readest/pull/2295 * chore: bump tauri to version 2.9.0 by @chrox in https://github.com/readest/readest/pull/2296 * feat(settings): add an option to set auto screen brightness by @chrox in https://github.com/readest/readest/pull/2297 * feat(eink): set underline text decoration for links in E-Ink mode, closes #2293 by @chrox in https://github.com/readest/readest/pull/2299 * fix(iOS): detect and recover from WebContent process termination by @chrox in https://github.com/readest/readest/pull/2302 * fix(layout): responsive layout for the custom highlight colors options by @chrox in https://github.com/readest/readest/pull/2303 * fix(search): correctly display results when searching from selected text by @chrox in https://github.com/readest/readest/pull/2304 * feat(settings): add an option to click both sides of the screen to paginate forward, closes #1951 by @chrox in https://github.com/readest/readest/pull/2305 * perf: improve smoothness of Arrow Up/Down scrolling, closes #2080 by @chrox in https://github.com/readest/readest/pull/2306 * compat: support .fb.zip files as FBZ format by @chrox in https://github.com/readest/readest/pull/2307 * fonts: add PT font families by @chrox in https://github.com/readest/readest/pull/2308 * feat(tts): add an option to select target language for TTS on translated books by @chrox in https://github.com/readest/readest/pull/2310 * fix(iOS): restore last page if app is terminated in the background by @chrox in https://github.com/readest/readest/pull/2312 * fix(eink): more readability for progress info and section info in E-Ink mode, closes #2311 by @chrox in https://github.com/readest/readest/pull/2313 * fix: more explanatory error message when importing books, closes #2309 by @chrox in https://github.com/readest/readest/pull/2314 * docs: add sponsor links in README by @chrox in https://github.com/readest/readest/pull/2318 * feat: expand cloud storage with one-time payment by @chrox in https://github.com/readest/readest/pull/2325 * i18n: add translations for Persian/Farsi(fa), closes #2321 by @411A in https://github.com/readest/readest/pull/2326 * fix(layout): Fix popup menu for RTL languages by @411A in https://github.com/readest/readest/pull/2327 * i18n(fa): refactor Farsi translation by @411A in https://github.com/readest/readest/pull/2330 * feat(iap): support expanding cloud storage with IAP on iOS and Android by @chrox in https://github.com/readest/readest/pull/2331 * perf: much faster sync of the whole library by @chrox in https://github.com/readest/readest/pull/2336 * perf(sync): batched updating notes and books when syncing by @chrox in https://github.com/readest/readest/pull/2337 * feat(ui): add non-linear scale to brightness slider for better low-value control by @chrox in https://github.com/readest/readest/pull/2338 * feat(security): sanitize XHTML safely to prevent XSS when scripts are disabled, closes #2316 by @chrox in https://github.com/readest/readest/pull/2342 * fix(ui): hover to display footer bar in non-maximized windows on desktop by @chrox in https://github.com/readest/readest/pull/2343 * release: version 0.9.90 by @chrox in https://github.com/readest/readest/pull/2344 ## New Contributors * @411A made their first contribution in https://github.com/readest/readest/pull/2273 * @ittuann made their first contribution in https://github.com/readest/readest/pull/2274 * @CreeperIsASpy made their first contribution in https://github.com/readest/readest/pull/2269 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.88...v0.9.90 - ## Release Highlight * TTS: Fixed issue where the read-aloud indicator disappeared too quickly * Layout: Overriding book layout no longer affects explicitly set text alignment * Reader: Added localized number display for reading progress in vertical layout * Reader: Enhanced swipe responsiveness for smoother page transitions * Settings: Added an option to disable animations when using E-Ink mode ## What's Changed * fix(layout): prevent TTS indicator from disappearing too quickly to open configuration panel, closes #2247 by @chrox in https://github.com/readest/readest/pull/2248 * fix(layout): overriding book layout no longer overrides explicit text alignment, closes #2249 by @chrox in https://github.com/readest/readest/pull/2254
More…
* feat: localize number in progress info in vertical layout by @chrox in https://github.com/readest/readest/pull/2255 * fix: more sensitive snap to paginate, closes #2252 by @chrox in https://github.com/readest/readest/pull/2256 * feat(settings): added an option to disable animation in E-Ink mode, closes #2253 by @chrox in https://github.com/readest/readest/pull/2257 * release: version 0.9.88 by @chrox in https://github.com/readest/readest/pull/2258 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.87...v0.9.88 - ## Release Highlight * Reader: Added support for per-book background image customization * Reader: Added option to override book language metadata for improved hyphenation accuracy * Sync: Readest sync in KOReader can now be triggered using gesture controls * Sync: Fixed a crash in KOReader that occurred when syncing progress without an open book * Sync: Improved upload performance with concurrent upload support ## What's Changed * fix: handle empty custom textures by @chrox in https://github.com/readest/readest/pull/2221 * feat: add support for per-book background image settings in addition to global settings, also closes #2223 by @chrox in https://github.com/readest/readest/pull/2225
More…
* feat(koplugin): register sync actions in gesture manager closes #2224 by @chrox in https://github.com/readest/readest/pull/2226 * feat: support overriding html language code with language code in metadata, closes #2222 by @chrox in https://github.com/readest/readest/pull/2227 * perf: support concurrent book uploading, closes #2208 by @chrox in https://github.com/readest/readest/pull/2229 * release: version 0.9.86 by @chrox in https://github.com/readest/readest/pull/2230 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.85...v0.9.86 - ## Release Highlight * TTS: Improved media session control compatibility across more Android systems * TTS: Made the TTS icon less distracting during read-aloud mode * Settings: Added an option to adjust screen brightness while reading * Settings: Added support for custom background images * PDF: Fixed an issue where scrolling and panning didn’t work correctly when zoomed in * Android: Added adaptive launcher icon for better system integration * Reader: Added keyboard shortcuts for toggling bookmarks * Reader: Annotations are now rendered instantly when opening files
More…
## What's Changed * translator: translate to and from Norwegian Bokmål(nb) by @chrox in https://github.com/readest/readest/pull/2158 * i18n: add translations for Swedish(sv) by @chrox in https://github.com/readest/readest/pull/2159 * Adds adaptive icon for Android launcher ( issue #2122) by @Nycthera in https://github.com/readest/readest/pull/2162 * feat: add keyboard shortcuts for toggling bookmarks/sidebar, importing books and closing window by @chrox in https://github.com/readest/readest/pull/2170 * compat: disable customize root dir for macOS App Store builds by @chrox in https://github.com/readest/readest/pull/2171 * fix: draw annotations of the current section on load, closes #2163 by @chrox in https://github.com/readest/readest/pull/2174 * shortcut: use shift+space to go backward in the reader page by @chrox in https://github.com/readest/readest/pull/2176 * layout: fix dragbar flickering when opening a book by @chrox in https://github.com/readest/readest/pull/2177 * refactor: split FooterBar into modular components for desktop and mobile by @chrox in https://github.com/readest/readest/pull/2181 * tts: improve media session control compatibility across more Android systems by @chrox in https://github.com/readest/readest/pull/2185 * fix(layout): fix inconsistent background color for unpinned drag bars by @chrox in https://github.com/readest/readest/pull/2186 * fix(css): auto height of inline images with object-fit style by @chrox in https://github.com/readest/readest/pull/2189 * fix(cbz): fix issue where CBZ files fail to reopen after being closed, closes #2183 by @chrox in https://github.com/readest/readest/pull/2190 * txt: properly detect chapters in TXT files with dot-number format, closes #2188 by @chrox in https://github.com/readest/readest/pull/2191 * chore: don't init posthog if users opt-out the usage data telemetry, closes #2187 by @chrox in https://github.com/readest/readest/pull/2192 * fix: handle scrolling/panning in zoomed in PDFs, closes #2184 by @chrox in https://github.com/readest/readest/pull/2194 * feat(settings): add settings to adjust screen brightness when reading, closes #1532 by @chrox in https://github.com/readest/readest/pull/2197 * layout: make TTS icon less distracting during read-aloud mode by @chrox in https://github.com/readest/readest/pull/2198 * fix: actually allow script in the transform target, closes #2200 by @chrox in https://github.com/readest/readest/pull/2203 * fix: show only the filtered books in groups by @chrox in https://github.com/readest/readest/pull/2209 * translator: add translator target language of Persian, closes #2206 by @chrox in https://github.com/readest/readest/pull/2212 * feat: support customizing background images, closes #2018 by @chrox in https://github.com/readest/readest/pull/2214 * fix(toc): fixed issues of scroll to active items in unpinned sidebar, closes #2213 by @chrox in https://github.com/readest/readest/pull/2216 * chore: add readest.koplugin in the release workflow by @chrox in https://github.com/readest/readest/pull/2217 * chore: enable turbopack by default in development env by @chrox in https://github.com/readest/readest/pull/2218 * fix: load custom texture before applying it by @chrox in https://github.com/readest/readest/pull/2219 * release: version 0.9.85 by @chrox in https://github.com/readest/readest/pull/2220 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.82...v0.9.85 - ## Release Highlight * Sync: More reliable syncing between KOReader and Readest * MOBI: Fixed an issue where some footnotes in MOBI/AZW files were not parsed correctly * Storage: Added support for changing data location on Windows, macOS, Linux, and Android * Windows: Portable EXE version now stores all reading data in the directory of the executable * Android: Added background TTS support with media session controls * WebView: Extended compatibility down to version 92 * Settings: Added global settings menu to the library page * iOS: Fixed an issue where custom theme colors were not handled correctly on older Safari versions * TTS: Added more languages for Edge TTS
More…
## What's Changed * fix(a11y): better contrast for disabled buttons, closes #2083 by @chrox in https://github.com/readest/readest/pull/2084 * tts: add more languages for edge tts by @chrox in https://github.com/readest/readest/pull/2089 * refactor: support custom root dir for readest file system by @chrox in https://github.com/readest/readest/pull/2092 * fix(fonts): higher priority for CJK fonts so that it can override system CJK glyphs by @chrox in https://github.com/readest/readest/pull/2093 * fix(layout): scrollable book view and about window, closes #2090 by @chrox in https://github.com/readest/readest/pull/2098 * fix(layout): adjust font size instead of zooming HTML, closes #2088 by @chrox in https://github.com/readest/readest/pull/2101 * fix(tts): handle und language code, closes #2100 by @chrox in https://github.com/readest/readest/pull/2102 * fix(mobi): fixed footnotes parsing for some MOBI/AZW files by @chrox in https://github.com/readest/readest/pull/2106 * fix(layout): avoid changing the safe area insets when virtual keyboard pops up on Android, closes #2105 by @chrox in https://github.com/readest/readest/pull/2108 * fix(tts): abortable prefetch of tts data, closes #2037 by @chrox in https://github.com/readest/readest/pull/2110 * fix(sync): force a full sync after a certain period, closes #2111 by @chrox in https://github.com/readest/readest/pull/2112 * fix(css): overriding hard-coded font weight by @chrox in https://github.com/readest/readest/pull/2113 * fix: handle pointer events for window dragging on touch screen Windows, closes #2010 by @chrox in https://github.com/readest/readest/pull/2116 * chore: bump tauri to the latest version by @chrox in https://github.com/readest/readest/pull/2117 * feat: supported changing data location on desktop platforms, closes #2047 and closes #478 by @chrox in https://github.com/readest/readest/pull/2125 * feat: build portable Windows binaries with app data kept within the executable directory by @chrox in https://github.com/readest/readest/pull/2126 * feat: supported changing data location on Android by @chrox in https://github.com/readest/readest/pull/2131 * fix(tts): parse default language in ssml without translated text by @chrox in https://github.com/readest/readest/pull/2135 * feat: supported background TTS with media session controls, closes #2099 and closes #964 by @chrox in https://github.com/readest/readest/pull/2138 * feat: request manage external storage permission when changing data directory to sdcard root on Android by @chrox in https://github.com/readest/readest/pull/2142 * i18n: localization for notification title and text by @chrox in https://github.com/readest/readest/pull/2143 * fix(i18n): apply system language on app start, closes #2141 by @chrox in https://github.com/readest/readest/pull/2144 * compat: add support for WebView down to version 92, closes #2139 by @chrox in https://github.com/readest/readest/pull/2145 * compat: normalize OKLCH color syntax for older iOS Safari, closes #990 by @chrox in https://github.com/readest/readest/pull/2150 * feat: support global settings from library menu, closes #2140 by @chrox in https://github.com/readest/readest/pull/2151 * fix(koplugin): only prompt network connection during interactive push progress, closes #2137 by @chrox in https://github.com/readest/readest/pull/2152 * Add support for mono theme (#2122) by @Nycthera in https://github.com/readest/readest/pull/2153 * compat(koplugin): make meta_hash extraction more robust for calibre conversions and metadata edits, fixes #1838 by @chrox in https://github.com/readest/readest/pull/2154 * release: version 0.9.82 by @chrox in https://github.com/readest/readest/pull/2155 ## New Contributors * @Nycthera made their first contribution in https://github.com/readest/readest/pull/2153 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.81...v0.9.82 - ## Release Highlight * TTS: Added desktop common media control support when TTS is playing * PDF: Disabled swipe-up gesture for toggling the action bar when zoomed in * Fonts: Fixed an issue where embedded fonts in ebooks were occasionally not applied * Reader: Fixed an issue where newly created highlights sometimes would not appear * Reader: Enabled scrolling in the menu when the menu is too long ## What's Changed * fix: disable swipe up to toggle action bar for PDF zoomed in by @chrox in https://github.com/readest/readest/pull/2068 * tts: support media session in desktop apps by @chrox in https://github.com/readest/readest/pull/2071
More…
* fix: handle invalid bookkey for viewState, closes #2073 by @chrox in https://github.com/readest/readest/pull/2074 * fix(layout): scroll in the dropdown menu in landscape mode, closes #2072 by @chrox in https://github.com/readest/readest/pull/2076 * Update translation.json by @StepanSad in https://github.com/readest/readest/pull/2078 * css: default to lower font-family specificity than the styles defined inside the ebook, closes #2070 by @chrox in https://github.com/readest/readest/pull/2081 * release(hotfix): version 0.9.81 by @chrox in https://github.com/readest/readest/pull/2082 **Full Changelog**: https://github.com/readest/readest/compare/v0.9.80...v0.9.81