Releases
v3.4.0
Compare
Sorry, something went wrong.
No results found
3.4.0 (2026-10-27)
Features
landing: list KOReader progress sync and say it works offline (dca4f97 )
landing: say oboku's reader syncs with KOReader too (edc9fa9 )
web: open a book where another KOReader device left it (7689f7a )
web: push KOReader positions moved offline after a restart (4140f70 )
web: take a newer KOReader position as the book's bookmark (0c207e6 )
web: take KOReader progress sync out of debug mode (1047c09 )
Bug Fixes
api: open a book's archive by its signature, not its content type (6219905 )
api: open RAR files that Node reads into its Buffer pool (065d5c0 )
landing: say how oboku's reader joins KOReader sync (cdb7873 )
web: abort a fromAbortable run only while it is pending (7979df6 )
web: check the KOReader position only for accounts that sync (3da493f )
web: explain and test why a sign-in sets the id before the reset (4799c2b )
web: forget plugin sessions when the account changes (2f58ba3 )
web: forget the Google Drive token in its plugin's sign-out (471fc7f )
web: forget the sessions before a sign-in sets the next account (2231775 )
web: guard plugin sign-outs and test what an account change forgets (2aa7d9f )
web: keep a bookmark that moves while the check writes (f3e177e )
web: keep a KOReader move until handled, under the profile that made it (43f1533 )
web: keep authenticated queries to the account they rendered for (6b50349 )
web: keep one waiting KOReader move per document (e02ec4b )
web: keep the retry policy out of the service worker's imports (3aaf2ce )
web: open at the check's bookmark, and stop waiting on a hung lookup (3972a5a )
web: point the KOReader sync server screen to progress sync (0d9c780 )
web: reset the other tabs' session queries when the account changes (b8c67cf )
web: send no KOReader push once its pull has failed (40674e0 )
web: tell other tabs about the active profile once it is stored (53edc94 )
Code Refactoring
api: log missing archive covers, always remove the tmp file (3fc6cfa )
api: name the cover in the missing-file warning (57f8f78 )
api: save archive covers through the prose-reader archive (3a983e1 )
metadata: read book metadata in prose-reader's shapes (d975c4b )
web: build the app's reader in a module of its own (6575569 )
web: define the KOReader position query with its key (ae607cb )
web: drop the restated half of the KOReader write's comment (15974dd )
web: forget account sessions where the account changes (12cf946 )
web: get forgetAccountSessions from a hook (24b691c )
web: give the reader screen one state for opening a book (8b4f3a8 )
web: hand useCreateReader the book to open (dde6ece )
web: handle other tabs' profile changes in an Effect Event (3265ffd )
web: keep the newer-position rule with the position query (ce34c24 )
web: keep the position check's pull helper (47e3c6d )
web: move retryOnFailure next to the network helpers (97f991a )
web: move retryOnFailure next to the other RxJS operators (298b056 )
web: move the KOReader position query to its own file (20c4ba8 )
web: open at the server's answer instead of keeping it on the book (8eb566f )
web: read the book to open once the KOReader check is done (3c1b82f )
web: resolve the app's light or dark mode in one hook (eec8cd1 )
web: retry KOReader pushes with retryOnFailure (372786f )
web: run a request that stops on unsubscribe with fromAbortable (8a28733 )
web: run uploads through fromAbortable (d189a82 )
web: share the slow-wait timer of the loading screens (dada95a )
web: take a newer KOReader position through a book patch (65f9963 )
Chores
deps: upgrade metadata-fetcher to 30.3 (067f701 )
Build System
couchdb: build the CouchDB image on 3.5.3 (ee157d7 )
Continuous Integration
check that the built service worker registers (1ec5fbf )
run the service worker check before a release (7d8065a )
Documentation
shared: say where a bookmark only in KOReader's form comes from (ef03b42 )
Tests
web: cover an account switch for a query not keyed by account (9c05fbb )
web: mock the app's reader as one module in useCreateReader's test (be06fac )
web: pin what the account guard skips and when it fetches again (beeacf3 )
You can’t perform that action at this time.