docs: update status through phase 6c

README status table, package layout, and plan progress log now reflect what is
actually built: search, comics, metadata, audiobooks, and photos. Gaps listed
honestly: no PDF/CBR, no games, no video, no music or comic metadata, no
grants UI.
This commit is contained in:
mithral 2026-10-09 21:23:12 -04:00
parent 0212d089ec
commit b0151fce00

View file

@ -15,19 +15,26 @@ The full plan lives in `~/.opencode/plan/vellum.md`.
| **0** | Repo, config, migrations, health, Docker | **done** | | **0** | Repo, config, migrations, health, Docker | **done** |
| **1** | Users, sessions, library grants | **done** | | **1** | Users, sessions, library grants | **done** |
| **2** | Scanner, items, assets | **done** | | **2** | Scanner, items, assets | **done** |
| **2b** | FTS5 search | **done** |
| **3** | EPUB reader + progress | **done** | | **3** | EPUB reader + progress | **done** |
| **UI** | Svelte app (login, libraries, items, reader, users) | **done** | | **4** | CBZ comic reader | **done** |
| 2b | FTS5 search | not started | | **5** | Job queue, metadata (Open Library, Google Books) | **done** |
| 4 | Comic (CBZ/PDF) viewers | not started | | **6a** | Audiobooks + music playback | **done** |
| 5 | Metadata providers | not started | | **6c** | Photos + thumbnails | **done** |
| 6 | Audiobooks, music, photos | not started | | **UI** | Svelte app | **done** |
| 7 | Games | not started | | 6b | Music metadata, smart playlists | not started |
| 7 | Games (EmulatorJS, IGDB) | not started |
| — | Video (stays on Jellyfin for now) | deferred | | — | Video (stays on Jellyfin for now) | deferred |
What works today: an administrator creates a library pointing at a server What works today: an administrator adds libraries pointing at server folders,
folder, scans it, and users sign in and read EPUBs in the browser with their scans them, and optionally enriches metadata from Open Library. Users sign in
position saved per account. Accounts, per-library grants, cover extraction, and read EPUBs, read CBZ comics, listen to audiobooks track-by-track, and
range-based file serving, and the container all work. Nothing else does yet. 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 ## Quick start
@ -77,10 +84,17 @@ internal/
httpapi/ router, middleware, static SPA serving httpapi/ router, middleware, static SPA serving
auth/ argon2id, sessions, grants, bootstrap auth/ argon2id, sessions, grants, bootstrap
library/ library CRUD, media-type registry, scanner 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 progress/ the polymorphic per-user progress store
stream/ range-capable file serving 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 web/ Svelte app; dist/ is embedded via web/embed.go
migrations/ embedded SQL, applied in order at boot migrations/ embedded SQL, applied in order at boot
``` ```