Highlights
Command line — bin/ai_cli.dart now exposes the app's search and download flow to scripts and agents: search, info, download and mirrors. It prints one JSON document on stdout, uses strict exit codes (1 usage, 2 challenge-blocked, 3 not found, 4 network) and shares its provider core with the app (#108, #115).
Русский — complete Russian translation, selectable from the language picker (#109).
Reader handoff — on Android you can choose a reader per format. The app discovers installed readers and hands the file over with a temporary URI grant (#116).
Fixes
- Linux: the app no longer crashes at launch on Mesa/Wayland systems after Flutter 3.47 switched to Impeller. The GTK runner uses Skia by default, and
FLUTTER_ENGINE_SWITCH_1=--enable-impellerstill opts back in (#111). - Language: unsupported system locales now fall back to English instead of German (#110).
- Z-Library: hidden decoy cards are rejected, and language/format filters are sent and enforced (#116).
- WeLib: language metadata is parsed from the book page (#116).
- Downloads: failed downloads can be closed or swiped away, and pagination failures are reported (#116).
- Android layout: page chrome stays clear of the system bars, and compact-phone navigation/settings no longer overflow (#116).
- Descriptions: missing descriptions are normalised and saved Z-Library blurbs are repaired (#116).
Full changelog: v1.7.2...v1.8.0