Omnibus v1.1.0-beta.063
·
7 commits
to main
since this release
v1.1.0-beta.063 - feat: library-wide "All Issues" view (cursor-paginated, infinite scroll)
π New /library/issues page β every issue across the library by release date
- A new view listing INDIVIDUAL issues library-wide, ordered by release date (newest/oldest), filterable by era, publisher, library (comics/manga), download status, and a title search. Reached via an "All Issues" button on the library page. Reuses the library page's IntersectionObserver infinite scroll, debounced search, and reset-on-filter patterns. Only issues with a known release date are shown.
π GET /api/library/issues β cursor (keyset) pagination, no offset / no COUNT
- The Issue table can be huge, so the endpoint avoids offset paging (O(offset) per page on SQLite) and a per-page COUNT(*): it orders by [releaseDate, id], over-fetches one row to derive hasMore, and pages forward by the last row's id β O(limit) at any scroll depth. Series-level filters (publisher / era / library + the per-library access gate) traverse the series relation; the payload is trimmed to grid fields with the server-side cover transform; the publisher list is returned only on the first page.
ποΈ Schema: @@index([seriesId, releaseDate]) on Issue
- Supports per-series releaseDate scans when the view is filtered by a Series field. Applies via db push on next container start.
β Verification
- tsc clean; eslint . 0 errors; vitest 282 passed; next build clean (/library/issues 6.8 kB)