Reading Timeline — your reading life as a ribbon (new Stats tab)#127
Open
bndct-devops wants to merge 1 commit into
Open
Reading Timeline — your reading life as a ribbon (new Stats tab)#127bndct-devops wants to merge 1 commit into
bndct-devops wants to merge 1 commit into
Conversation
… life New Timeline tab on Reading Stats: one lane per series (frozen left rail), volumes as numbered bars spanning first to last active day, daily reading intensity shaded inside each bar. Lifetime data, reconciled across live sessions and imported KOReader page-stats via the same page-stats-win rule as the rest of stats, bucketed by the canonical 4h-rollover reading day. - GET /api/stats/timeline + reconciled_reading.book_day_seconds - TimelineRibbon widget registered in the stats dashboard (gallery tile under Habits + default 'timeline' tab, auto-appended to saved boards) - Full-bleed rendering when a board holds only the timeline (view mode); Edit mode falls back to the grid so the tile stays manageable - Lanes sorted by most recent activity; view opens at today - Zoom presets floored at fit-width, persisted; session-cached data so tab switches render instantly; same-day volume chaining on one row - Sub-minute lifetime totals filtered as page-flip noise - 4 endpoint tests; docs section on the website stats page Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new Timeline tab on Reading Stats: your lifetime reading history drawn as a Gantt-style ribbon.
book_day_secondsbeside the existingbook_month_seconds), bucketed by the canonical 4h-rollover reading day.Presentation
Backend
GET /api/stats/timeline(per-book active days, span, totals, status/finished metadata). Sub-minute lifetime totals are dropped as page-flip noise; sessions of deleted books are skipped.Tests
tests/test_stats_timeline.py: source reconciliation (page-stats win, web sessions additive), day bucketing, ordering + finished metadata, noise filter. Full suite: 926 passed.tsc -b+ frontend build clean.Docs
stats-reading-timelineThemedShot (light/dark/amber) follows in a commit once the showcase backend is bounced to serve the new endpoint.