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
- 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()onxml:langattributes 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