Skip to content

Readest 0.12.12

Latest

Choose a tag to compare

@chrox chrox released this 04 Oct 21:14
· 1 commit to main since this release
fd9f0c0

Release Highlights

  • Text-to-Speech: You can now listen sentence by sentence and loop a passage with A-B repeat, control playback from your desktop's Now Playing controls
  • Reading: Added dialogue highlighting for quoted speech, a Column Gap setting for two-page spreads
  • Sync: Added a Readest plugin for CrossPoint e-readers for reading progress sync
  • Sync: You can now sync reading progress to Pagebound, sign in to Hardcover more easily, and note edits are no longer overwritten by older synced copies
  • PDF: PDFs now blend smoothly with your reading theme with smart image inversion, show page thumbnails in the table of contents
  • PDF: Highlighting and text selection on scanned PDFs is smoother and more accurate, and very large scanned pages no longer crash the reader on iOS
  • Translation: You can now add your own translation providers with a reusable prompt library, look up words with an AI context dictionary
  • Annotations: A global note now appears on every occurrence of its text, exports can include the sentence around each highlight
  • Android: Added home screen widgets for your current book and bookshelf, automatic e-ink full refresh every few page turns
  • More: Images now have a long-press and right-click menu to copy or save them, Windows shows PDF thumbnails in Explorer

What's Changed

  • fix(koplugin): fix sync on Android, library pull ANR, and Rescan library by @chrox in #6364
  • chore(agent): add koreader-e2e skill for on-device plugin testing by @chrox in #6366
  • fix(reader): fall back to saving a file when the gallery save fails by @chrox in #6367
  • fix(windows): drop the broken native shadow on Windows 10 by @k6G52m4Dz75W in #6362
  • perf(android): cut the arm64 apk from 90MB to 57MB by @chrox in #6368
  • fix(build): repair the Docker and Nix builds after #6368 by @chrox in #6379
  • fix(settings): reset update preferences with behavior settings by @hulkbig in #6369
  • fix(android): open Readest from TTS media controls by @kelvinalfaro in #6370
  • fix(reader): handle footnote links in paragraph mode by @hulkbig in #6365
  • feat(reader): add dialogue highlighting for quoted speech by @WantenMN in #6376
  • chore(deps): bump the github-actions group with 7 updates by @dependabot[bot] in #6387
  • fix(annotator): clear the pre-drag range when a highlight is resized by @hulkbig in #6357
  • fix(reader): keep the sidebar toggler in place when the sidebar opens by @chrox in #6435
  • fix(payment): revoke one-time Stripe purchases on refund by @chrox in #6436
  • fix(android): detect e-ink readers whose manufacturer prop reports the SoC vendor by @k6G52m4Dz75W in #6392
  • refactor(settings): organize the font panel around the role each font plays by @k6G52m4Dz75W in #6325
  • fix(settings): restore scroll position on reopen by @WantenMN in #6389
  • fix(web): decode binary files read as text by @WestXu in #6402
  • fix(library): skip copying a book file onto itself on import by @WestXu in #6403
  • fix(backup): restore orphan books whose library row was deleted by @WestXu in #6405
  • fix(sync): push existing notes on the first open of a book by @WestXu in #6404
  • fix(reader): keep the footer clear of rounded screen corners on Android by @davidfvaquero in #6429
  • perf(reader): parallelize the EPUB open path by @shiningsprk-arch in #6406
  • fix(telemetry): stop PostHog traffic when the setting is off by @itsmunzir in #6434
  • feat(widget): configurable Android bookshelf widget by @RedHatter in #6430
  • fix(windows): draw the missing window frame on Windows 10 by @k6G52m4Dz75W in #6399
  • fix(koplugin): prompt to log in again when the session has expired by @chrox in #6445
  • fix(koplugin): avoid crash when synced position can't be resolved by @stantonb in #6441
  • fix(sync): refuse Readest Cloud book uploads while Books sync is off by @chrox in #6446
  • feat(widget): improve bookshelf widget configuration by @RedHatter in #6440
  • feat(settings): reverse mouse wheel paging and hide e-ink bookshelf buttons by @chrox in #6448
  • fix(reader): update chapter pages left on every page turn by @chrox in #6447
  • fix(tts): let the play/pause media key resume TTS on desktop by @chrox in #6452
  • fix(sync): stop creating OneDrive folders that Graph now rejects by @chrox in #6451
  • fix(library): skip hidden subdirectories when scanning folders to import by @chrox in #6453
  • docs(sync): make the write-parent precondition provider-neutral by @chrox in #6455
  • fix(library): page the e-ink library with volume keys by @chrox in #6456
  • feat(tts): native desktop Now Playing for macOS, Windows and Linux by @chrox in #6457
  • fix(nix): add the desktop Now Playing crates to Cargo.cef.lock by @chrox in #6459
  • fix(reader): turn the page when tapping a page-filling image by @chrox in #6458
  • fix(library): skip per-book toasts for bulk downloads by @chrox in #6463
  • feat(annotator): make keeping the selection after an instant lookup optional by @chrox in #6460
  • fix(koplugin): remove sync response files left behind by exit-time syncs by @chrox in #6461
  • fix(ios): resume audiobook natively after a CarPlay interruption ends by @chrox in #6462
  • feat(reader): import MHTML web archives, closes #6413 by @chrox in #6464
  • fix(annotator): close selection popup after choosing a highlight color by @kelvinalfaro in #6465
  • fix(reader): close lookup popups when their selection is cleared by @chrox in #6467
  • fix(sidebar): keep the annotations list still when the clicked note is visible by @chrox in #6468
  • feat(tts): pause longer after questions, exclamations and ellipses, closes #6412 by @chrox in #6469
  • fix(library): keep Date Read order when grouping, tagging or editing metadata by @chrox in #6470
  • test(player): fix flaky podcast session-end tests by @chrox in #6472
  • fix(reader): keep the footer clear of rounded screen corners on iPhone by @chrox in #6474
  • fix(reader): hold the horizontal pan lock through momentum swipes on iOS by @chrox in #6475
  • fix(reader): keep note editor and highlight toolbar open in footnote popups, closes #6395 by @chrox in #6477
  • fix(transfer): allow uploads and downloads under a custom data location, closes #6383 by @chrox in #6478
  • chore(agent): update agent memories by @chrox in #6479
  • fix(library): center the empty library state again by @chrox in #6482
  • ci(android): give the Android build step 90 minutes by @chrox in #6483
  • fix: empty library state over a lingering search, and a dropped dictionary card tap by @chrox in #6485
  • fix(backup): save iOS backups through the share sheet instead of hanging at 0%, closes #6375 by @chrox in #6486
  • chore(linux): catch up the CEF runtime with upstream feat/cef, closes #6397 by @chrox in #6487
  • fix(library): download selected Audiobookshelf items for offline from select mode by @chrox in #6489
  • feat(backup): include reading statistics in library backups, closes #6488 by @chrox in #6490
  • fix(reader): remove the line between zoomed images in Webtoon Mode, closes #6484 by @chrox in #6491
  • test(paginator): rest before release so the drag test commits on distance alone by @chrox in #6493
  • fix(desktop): open books in a new window after closing another reader, closes #6363 by @chrox in #6496
  • fix(desktop): reopen the library when Readest is relaunched with only reader windows open, closes #6394 by @chrox in #6495
  • fix(search): ignore soft hyphens when searching book text, closes #6384 by @chrox in #6494
  • fix(ui): stop iOS 16 reloading to the library when a toggle or slider renders, closes #6355 by @chrox in #6497
  • feat(annotations): optionally export the sentence around each highlight, closes #6352 by @chrox in #6498
  • feat(tts): skip Hanja glosses after Hangul in Korean text by @chrox in #6500
  • feat(annotator): show a global note on every occurrence of its text, closes #6186 by @chrox in #6501
  • feat(settings): give Nearby BookDrop its own section in Integrations, closes #6360 by @chrox in #6499
  • fix(ios): keep swipe brightness in sync with the system brightness, closes #6374 by @chrox in #6502
  • feat(android): probe Hanvon eink service for full refresh by @k6G52m4Dz75W in #6505
  • fix(reader): animate page turns for PDF and comics on Windows and Linux, closes #6380 by @chrox in #6506
  • fix(reader): stop the sidebar-width flash on Windows and Linux page turns by @chrox in #6509
  • feat(annotator): edit highlight ranges and notes inside footnote popups, closes #6504 by @chrox in #6510
  • fix(reader): keep the selected word readable in dark mode, closes #6503 by @chrox in #6512
  • fix(annotator): open imported highlights on tap, closes #6160 by @chrox in #6515
  • fix(annotator): keep the highlight toolbar off the footnote popup, closes #6390 by @chrox in #6514
  • feat(reader): show Duokan slim covers on tall mobile screens, closes #6513 by @chrox in #6516
  • feat(reader): optionally mark italic text in dialogue highlighting, closes #6517 by @chrox in #6522
  • fix(ios): keep chrome and page content clear of iPhone Duo's side status strip by @kad-air in #6312
  • chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #6523
  • feat(layout): Column Gap setting for two-column spreads by @kad-air in #6507
  • fix(ios): hide the status bar through the view controller for Xcode 27 builds by @kad-air in #6508
  • fix(android): focus the WebView on cold start so the first page-turn key isn't lost by @RedHatter in #6519
  • feat(widget): currently reading Android widget and widget options by @RedHatter in #6518
  • fix(pdf): stop huge scanned pages crashing or blanking the reader on iOS, closes #6521 by @chrox in #6526
  • feat(android): automatic e-ink full refresh every N page turns by @k6G52m4Dz75W in #6525
  • feat(sync): sync reading progress to Pagebound, closes #6511 by @chrox in #6528
  • fix(reader): show Hardcover status on the sync row and push on tap by @RedHatter in #6527
  • feat(windows): PDF thumbnails and Explorer preview pane, closes #6524 by @chrox in #6533
  • feat(dictionary): look up Wiktionary in the book language's own edition, closes #6529 by @chrox in #6534
  • fix(settings): align the BookOrbit sync rows with the rest of the card by @chrox in #6535
  • fix(library): erase cloud progress and notes when purging reading data, closes #6532 by @chrox in #6536
  • fix(epub): show whole pages of comics with unsized SVG page images by @chrox in #6537
  • fix(bookorbit): list unmatched books for linking when only progress or stats sync is on by @chrox in #6539
  • fix(calibre): push custom columns in the shape bookshelf filters read by @chrox in #6538
  • fix(reader): remove note bubbles when deleting highlights by @kelvinalfaro in #6545
  • fix(windows): stop the main window from growing on every launch by @k6G52m4Dz75W in #6546
  • feat(pdf): smooth theme colors and smart invert for PDFs by @chrox in #6550
  • fix(notes): keep note edits from losing to the synced copy they change, closes #6544 by @chrox in #6551
  • feat(crosspoint): Readest plugin for CrossPoint e-readers by @chrox in #6547
  • chore(agent): update agent memories by @chrox in #6554
  • feat(reader): turn PDF pages with the mouse wheel in Fit Width mode by @chrox in #6555
  • feat(reader): show PDF page thumbnails in the TOC, closes #6177 by @chrox in #6553
  • fix(reader): keep PDF selections from jumping across text gaps, closes #5599, closes #4945 by @chrox in #6559
  • feat(crosspoint): web-only sign-in, in-app linking, and recently read books first by @chrox in #6561
  • fix(reader): drop the horizontal scrollbar from fit-width PDFs by @chrox in #6560
  • fix(reader): stop the page container's fade on e-ink panels by @k6G52m4Dz75W in #6565
  • fix(audiobookshelf): fetch a synced audiobook's cover before shelving it by @chrox in #6564
  • feat(reader): copy and save book images from one right-click menu by @chrox in #6567
  • fix(reader): keep a selection from jumping next to a footnote marker, closes #6566 by @chrox in #6569
  • fix(crosspoint): paint /link in the user's theme by @chrox in #6570
  • fix(reader): stop annotation cards expanding while scrolling on iOS, closes #6568 by @chrox in #6571
  • fix(utils): treat Korean as CJK in getLanguageInfo by @sx4im in #6572
  • fix(deps): resolve open Dependabot alerts by @chrox in #6573
  • fix(reader): set plain-text footnotes in the reader font by @kelvinalfaro in #6575
  • fix(reader): keep a linked footnote's font in its popup, closes #3602 by @chrox in #6580
  • docs(readme): serve the Ask DeepWiki badge from shields.io by @chrox in #6585
  • fix(reader): smooth highlights on scanned PDFs and keep ones dragged past a page's end, closes #6578 by @chrox in #6581
  • fix(reader): keep the e-ink battery percentage readable at any charge by @chrox in #6588
  • feat(reader): edit a book's metadata from Book Details in the reader, closes #6584 by @chrox in #6587
  • fix(reader): select and deselect in the clicked chapter at scroll-mode boundaries, closes #6583 by @chrox in #6591
  • fix(reader): keep the dragged range when a PDF instant highlight runs past the page by @chrox in #6597
  • fix(windows): stop the PDF preview pane from freezing Explorer, closes #6590 by @chrox in #6594
  • feat(crosspoint): plugin updates, version display, and sync for optimized EPUBs by @chrox in #6592
  • feat(translation): custom translation providers with a prompt library by @chrox in #6582
  • fix(reader): remember where a locked, zoomed PDF page is panned across reopening by @chrox in #6595
  • feat(shortcuts): bind several keys to one action, closes #6600 by @chrox in #6603
  • feat(reader): open the image menu with a long press on iOS and Android, closes #6574 by @chrox in #6601
  • fix(koplugin): stop BookDrop start errors popping up on every launch by @chrox in #6604
  • feat(reader): show a PDF's header and footer only at the page's own edges, closes #6596 by @chrox in #6605
  • fix(reader): keep pull-to-bookmark off the top screen edge, enable it on e-ink, and size the ribbon consistently, closes #6599 by @chrox in #6606
  • fix(reader): return to the open book when leaving the account page, closes #6607 by @chrox in #6609
  • fix(reader): reject backslash redirects and retry failed books on return by @chrox in #6610
  • feat(dictionary): context dictionary, closes #5544 by @nphng15 in #5881
  • fix(crosspoint): link an optimized copy to the book being read when duplicates tie by @chrox in #6614
  • fix(sync): don't let a deleted copy's position pull a new copy forward by @chrox in #6615
  • fix(reader): apply scroll overlap to fixed-layout books only; tidy the fixed-layout view menu by @chrox in #6621
  • fix(windows): show the main window only after the themed page is painted by @k6G52m4Dz75W in #6611
  • fix(library): carousel cover spine, Rename Group, Import Books placement, reader return transition by @chrox in #6624
  • fix(library): keep nested groups when renaming a group by @chrox in #6625
  • feat(library): badge the series index on covers inside a series group by @kelvinalfaro in #6579
  • fix(reader): keep scrolled PDFs smooth on iOS: virtualize the strip, hide PDF chrome by layout by @chrox in #6626
  • feat(tts): sentence-by-sentence mode and A-B repeat by @chrox in #6627
  • feat(hardcover): sign in with OAuth using the device authorization flow by @RedHatter in #6612
  • fix(hardcover): follow API rate limits and batch journal writes by @RedHatter in #6617
  • fix(dictionary): lift dark text colors in dark mode by @itsmunzir in #6622
  • fix(widget): keep E-ink reading widget text legible in dark mode by @chrox in #6628
  • feat(library): hide the bookshelf page buttons by default on e-ink by @chrox in #6631
  • fix(reader): save library progress before the app quits (#6623) by @chrox in #6633
  • chore(agent): update agent memories by @chrox in #6634
  • fix(import): pick the declared cover when holds an href by @chrox in #6635
  • feat(hardcover): use the account's default visibility for new journal entries by @RedHatter in #6638
  • fix(opds): load plain-http covers natively on iOS/macOS (#6637) by @chrox in #6639
  • fix(library): keep the bookshelf column count while dragging a file in by @chrox in #6640
  • fix(library): search book contents only within the opened group by @chrox in #6641
  • fix(library): keep the shelf scroll position after opening a book by @chrox in #6642
  • release: version 0.12.12 by @chrox in #6644

New Contributors

Full Changelog: v0.12.10...v0.12.12