Per-book reading stats on the book page #25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "stats-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Surface per-book reading stats that Nickel already pushes via
PUT /v1/library/{id}/state, rendered as additional rows in the book page's.book-marginalia. Also captures three currently-droppedStatusInfofields and starts an append-only reading-state event log for future historical views.Summary
times_started_reading,last_time_started_reading,last_time_finishedcolumns toreading_state; createsreading_state_eventstable with one row per meaningful PUT.PUT /v1/library/{id}/statenow persists the threeStatusInfofields;GETechoes them back./book/{uuid}shows status, time spent reading, time to finish, times opened, started reading, finished, and last read — each only when the underlying field has a value. Books without areading_staterow are unchanged.Scope boundaries
GetLatestReadingStatepicks the most recent row across devices./v1/analytics/eventbodies still accept-and-drop — reading-session telemetry channel left for a potential future investigation.Spec + plan
docs/superpowers/specs/2026-04-20-stats-dashboard-design.mddocs/superpowers/plans/2026-04-20-stats-dashboard.mdTest plan
go test ./...green./book/{uuid}for a book with areading_staterow — new rows render (status, time spent, time to finish, times opened, last read)./book/{uuid}for a book without one — marginalia unchanged from before this PR.reading_statenow hastimes_started_readingpopulated andreading_state_eventsstarts accumulating rows.