diff --git a/README.md b/README.md index cacc9c8..8342a84 100644 --- a/README.md +++ b/README.md @@ -15,19 +15,26 @@ The full plan lives in `~/.opencode/plan/vellum.md`. | **0** | Repo, config, migrations, health, Docker | **done** | | **1** | Users, sessions, library grants | **done** | | **2** | Scanner, items, assets | **done** | +| **2b** | FTS5 search | **done** | | **3** | EPUB reader + progress | **done** | -| **UI** | Svelte app (login, libraries, items, reader, users) | **done** | -| 2b | FTS5 search | not started | -| 4 | Comic (CBZ/PDF) viewers | not started | -| 5 | Metadata providers | not started | -| 6 | Audiobooks, music, photos | not started | -| 7 | Games | not started | +| **4** | CBZ comic reader | **done** | +| **5** | Job queue, metadata (Open Library, Google Books) | **done** | +| **6a** | Audiobooks + music playback | **done** | +| **6c** | Photos + thumbnails | **done** | +| **UI** | Svelte app | **done** | +| 6b | Music metadata, smart playlists | not started | +| 7 | Games (EmulatorJS, IGDB) | not started | | — | Video (stays on Jellyfin for now) | deferred | -What works today: an administrator creates a library pointing at a server -folder, scans it, and users sign in and read EPUBs in the browser with their -position saved per account. Accounts, per-library grants, cover extraction, -range-based file serving, and the container all work. Nothing else does yet. +What works today: an administrator adds libraries pointing at server folders, +scans them, and optionally enriches metadata from Open Library. Users sign in +and read EPUBs, read CBZ comics, listen to audiobooks track-by-track, and +browse photos — with position saved per account, per file. PDF, RAR comics, +games, and video are not implemented. + +Five of the six services in the existing stack are covered: **Stump, Kavita, +Audiobookshelf, Navidrome (playback), and RomM** are the intended +replacements. RomM is not yet covered; video stays on Jellyfin. ## Quick start @@ -77,10 +84,17 @@ internal/ httpapi/ router, middleware, static SPA serving auth/ argon2id, sessions, grants, bootstrap library/ library CRUD, media-type registry, scanner - media/ generic item endpoints, cover-extractor registry + media/ generic item/file/cover/progress endpoints progress/ the polymorphic per-user progress store stream/ range-capable file serving - modules/ebooks/ EPUB parsing and cover extraction + natsort/ natural ordering for pages and tracks + jobs/ table-backed job queue + metadata/ provider interface, Open Library, Google Books, enricher + search/ FTS5 queries + modules/ + ebooks/ EPUB parsing and cover extraction + comics/ CBZ page listing and extraction + photos/ thumbnail generation web/ Svelte app; dist/ is embedded via web/embed.go migrations/ embedded SQL, applied in order at boot ```