Releases: Aatricks/Emaki
Releases · Aatricks/Emaki
Release list
V0.6
V0.5.9.2
What's Changed
- Added configurable vertical margins for light novels long slate by @Aatricks
- Improved automatic update heuristic by @Aatricks
- Added configurable reader brightness by @Aatricks
- Improve pagination for light novel reader content by @Aatricks
Full Changelog: V0.5.9.1...V0.5.9.2
V0.5.9.1
V0.5.9
What's Changed
- Perf(reader): stop manhwa scroll degrading after chapters and drawer use by @Aatricks in #72
- Fix Novelight chapter list: recover dropped chapters, refresh stale cache, correct reader labels by @Aatricks in #73
- Fix Novelight current-chapter number shown on the library card by @Aatricks in #74
- Fix(storage): reclaim orphaned downloads and cap epub/pdf caches by @Aatricks in #75
- Fix(reader): toggle controls from the whole reader surface, not per-item by @Aatricks in #76
- Fix(reader): preserve reading progress across library round-trips by @Aatricks in #77
For choosing the app flavour, use the arm64 if you don't know which to pick
Full Changelog: V0.5.8.2...V0.5.9
V0.5.8.2
What's Changed
- Refactor: architecture cleanup (ViewModel decomposition + dead code removal) by @Aatricks in #69
- Fix: solidify the download/caching/storage pipeline by @Aatricks in #70
- Fix progress clobber, cancellation propagation, and reader recomposition by @Aatricks in #71
Full Changelog: V0.5.8.1...V0.5.8.2
V0.5.8.1
V.0.5.8
Changes
- Improved gpu bitmap render pipeline to use hardware, fixing a bug leading to microstutters and increasingly long frame times during scroll animations by @Aatricks
- Improved read chapters auto-deletion logic by @Aatricks
- Added NoveLight as a source by @Aatricks
- Fixed NovelFire source search not correctly querying results by @Aatricks
Full Changelog: V0.5.7.1...V0.5.8
V0.5.7.1
V0.5.7
V0.5.6
Changes
- Build Flavors: Added separate
standardandaiapp flavors so the default build works without AI-specific dependencies. - AI Summaries: Reworked summarization behind a
SummaryEngineabstraction with a disabled fallback for standard builds and an AI-backed implementation for theaiflavor. - AI Initialization: Fixed concurrent initialization in
LlmEdgeSummaryEngineso multiple requests share one initialization instead of racing or loading the model multiple times. - CI Updates: Split GitHub Actions validation into standard debug, AI debug, and release-specific workflows to avoid requiring signing secrets during normal validation.
- Release Builds: Updated CI and documentation to use explicit flavor-specific Gradle tasks such as
assembleStandardDebug,testStandardDebugUnitTest, andassembleAiDebug. - Security: Added safer DNS resolution for network requests to block localhost, private networks, link-local addresses, metadata IPs, and DNS rebinding-style redirects.
- Web Fetching: Removed unsafe
Jsoup.connectfallback paths so HTML fetching goes through the shared OkHttp client and security policy. - Cloudflare WebView: Hardened WebView navigation and settings, blocked unsafe schemes/hosts, and ensured the WebView is destroyed when dismissed.
- Reading Progress: Refactored reading progress into
ReaderProgressController, added explicit progress update semantics, and improved lifecycle-safe progress persistence. - Database Safety: Enabled Room schema export, added migration coverage across supported schema versions, removed persisted transient selection state, and removed destructive migration fallback.
- Library State: Moved item selection out of persisted database state and kept it as transient UI/ViewModel state.
- PDF Support: Added a bounded PDF document handle pool, document-scoped PDF image caching, deterministic image filenames, and cache cleanup for extracted PDF images.
- Image Loading: Refactored image caching and downloading into dedicated
ImageCacheandImageDownloadercomponents. - Image Downloads: Streamed large web images to disk with byte limits and temp-file handling instead of buffering entire images in memory.
- Image Prefetching: Added priority-aware image downloads so speculative prefetches no longer poison user-requested image loads.
- Prefetching: Replaced unbounded prefetch retry behavior with explicit, bounded retry limits.
- EPUB Images: Added Coil-based EPUB image loading through a custom fetcher, reducing manual bitmap lifecycle management.
- Testing: Added and reorganized tests for migrations, AI initialization, URL security, progress persistence, image downloading, WebView navigation, and reader state.
- Benchmarks: Moved benchmark-style tests out of the normal unit-test path so PR tests stay deterministic.
- Dependencies: Centralized dependency declarations through the Gradle version catalog and updated AI integration to use the Maven-published
llmedgedependency. - Project Cleanup: Renamed the Gradle root project to EasyReader, updated package namespace references, removed stale UI dump artifacts, and cleaned up documentation.
Fixes
- Fixed clean-clone builds by removing the required local
llmedge-release.aarfrom the default build path. - Fixed PR CI incorrectly depending on AI flavor and release signing.
- Fixed possible duplicate AI model initialization under concurrent summary requests.
- Fixed possible data loss risk from Room destructive migration fallback.
- Fixed stale nullable reading progress fields that could not previously be cleared.
- Fixed PDF handle pooling so active and idle handles are bounded together.
- Fixed leaking randomly named PDF image cache files.
- Fixed full-image response buffering that could cause memory spikes on large images.
- Fixed speculative image requests causing visible image loads to fail.
- Fixed WebView URL validation false positives caused by substring-based scheme checks.
- Fixed image dimension sniffing to handle partial reads correctly.
- Fixed duplicate or misplaced AI unit test source sets.
- Fixed misleading README build commands after adding product flavors.
Full Changelog: V0.5.5...V0.5.6