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** |
| **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
```