v1.0.7-beta.001 - perf: optimize library performance, fix OOM leaks, and add deep metadata
This commit introduces major performance overhauls to the API and database, resolving critical memory leaks and event-loop blocking issues, while adding support for Genres and Story Arcs.
Performance Optimizations:
- Fixed a critical memory leak in the OPDS feed by removing synchronous adm-zip instantiations. Page counts are now calculated during import and stored natively in the database.
- Eliminated event-loop blocking in the Library Grid API by removing synchronous JSON.parse loops for creators and characters.
- Removed heavy disk I/O from the History API by utilizing DB-cached cover URLs instead of iterative fs.existsSync checks.
- Added explicit B-Tree indexes (@@index) to Prisma schema for all foreign keys and heavily queried columns to prevent full table scans.
Features:
- Added pageCount, genres, and storyArcs columns to the Issue model.
- Integrated ComicVine Concept and Story Arc fetching into the metadata pipeline and Smart Lazy Loader.
- Added and tags to the ComicInfo.xml writer.
- Added auto-healing to the Library Scanner to backfill pageCount for existing downloaded archives.
Bug Fixes:
- Added cache-busters to frontend API calls to bypass aggressive Next.js caching on Story Arcs and Interactive Search.
- Fixed missing StatusType type definition in the Library page.
- Fixed broken cover image mapping and routing on the Profile history cards.
- Restored dynamic = 'force-dynamic' to ensure fresh data delivery.