Highlights
- Sync between your devices, no server needed: one device hosts, the others scan its QR code and pair with it. Everything travels encrypted over your local network or Tailscale, and only paired devices are let in (Settings > Sync > Sync between your devices) (#1158).
- A standalone sync server: run it on a home server, NAS, Raspberry Pi or any always-on machine to sync at any time, from anywhere. Devices pair with it the same way, with no accounts or passwords. Downloads for Linux, macOS and Windows: latest sync server.
- Each library reopens on the category you left it on, separately for manga, anime and novels (#1122).
- The download queue runs top to bottom, can be paused, and lets you move a download or a whole series to the top or bottom (#1156).
Sync
- Syncs now only send what changed since the last one. Before, every sync was a full sync (#1146).
- Device sync keeps its secrets in the macOS login keychain, and a failed pairing no longer leaves the app stuck on "Pairing…".
- "Get Sync Server here" now leads to the new sync server.
Library
- Long press the In library heart on a title to edit its categories (#1160).
- New option to hide the active filter chips above the library (Display > Show active filters) (#1162).
- The continue-reading button only shows on series with something left to read. When the last chapter is finished, it opens the next unread one (#1155).
- Searching a genre from a title opens the results in the library's own tab, with a single back button that clears the search.
- "Select between" works again (#1131).
- The last row is no longer hidden under the floating navigation bar.
- The switch for the Continue row is now named after it.
Reader and downloads
- With "Delete download after reading" on, the chapter is deleted once you close the reader, no longer while its last pages are still on screen (#1157).
- A swiped chapter shows as read at once, in Updates and in chapter lists (#1159).
Browse, extensions and migration
- "Browse in source" on a genre chip opens the source with that genre selected (#1129).
- Migration searches three sources at a time instead of all at once, keeps each result, and opens a result's dialog immediately (#1141).
- Mass migration gives long titles and the Skip / Migrate choice room on phones (#1153).
- JavaScript extensions can send PUT, DELETE and PATCH requests (#1132).
- A malformed filter option is skipped instead of dropping the whole filter list (#1150).
- Fetch errors name the source they come from.
Appearance
- The app-wide Google Fonts picker is back, and the whole app now follows the chosen font (#1127).
Under the hood
- Moved to Flutter 3.50 (#1154).
Contributors
Thanks to everyone who contributed to this release: @itsyaba, @Lukas-DS and @sergwei.
Full Changelog: v0.9.95...v0.9.96