feat(health): Overall Health dashboard + wearable Stats tabs (v0.0.94)#32
Merged
Conversation
Adds a whole-body Health view fed by the Android Health Connect metrics ingested in v0.0.93, plus per-metric Stats tabs. - Health page (/health/): new top-nav dashboard pulling from every source PUMP tracks — body weight, strength training, and wearable metrics — as summary tiles (latest value + trend delta + sparkline) that deep-link into the matching Stats tab. New route in both RegisterRoutes and startRouter; nav entry in header.html. - Stats tabs: Steps (daily bars + 7-day avg), Heart Rate (resting trend with daily min–max band), Sleep (stacked stages + duration), Cardio (session bars + recent-sessions table). Lazy-init on shown.bs.tab, respect the global period selector, and are deep-link targets (/stats/#tab-steps). - Aggregation: internal/web/healthstats.go type-asserts the store to store.HealthStore and collapses raw health_record rows into compact daily/ nightly/session series (models.HealthStats). Degrades to empty states when no HealthStore (split-frontend mode). - internal/web/public/js/health-charts.js: Chart.js renderers + dashboard sparklines, matching the existing weight-chart.js / stats.js conventions and the COLOR theme. - README: documented the Health page + /api/health ingest; added screenshots (Overall Health + Steps/Heart Rate/Sleep/Cardio tabs). No schema change (reads the v8 health_record table). UI only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rwlove
added a commit
to rwlove/home-ops
that referenced
this pull request
Jun 7, 2026
Health dashboard + wearable Stats tabs (Steps/HR/Sleep/Cardio) for the Android Health Connect metrics. UI-only; no schema change. See rwlove/PUMP#32. Co-authored-by: Claude Opus 4.8 <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 whole-body Health view fed by the Android Health Connect metrics ingested in v0.0.93, plus per-metric Stats tabs. Hybrid layout: a dedicated Health page for the overview, the four detail views as Stats tabs, with dashboard tiles deep-linking into them.
Health page (
/health/) — new top-navOne-page dashboard pulling from every source PUMP tracks — body weight, strength training, and wearable metrics — as summary tiles (latest value + trend delta + sparkline), each deep-linking to its Stats tab.
New Stats tabs
All four lazy-init on
shown.bs.tab, respect the global period selector, and are deep-link targets (/stats/#tab-steps).How
internal/web/healthstats.gotype-asserts the store tostore.HealthStoreand aggregates rawhealth_recordrows into compact daily/nightly/session series (models.HealthStats). Degrades to empty states when there's no HealthStore (split-frontend mode).internal/web/public/js/health-charts.js— Chart.js renderers + dashboard sparklines, matching the existingweight-chart.js/stats.jsconventions and theCOLORtheme. Look-and-feel is identical to the existing tabs (samepanelcards,page-tab-btntabs, Chart.js 4.4.1)./health/route in bothRegisterRoutesandstartRouter; nav entry inheader.html.Notes
health_recordtable. Pure UI/read. Releases aspump-v0.0.94.🤖 Generated with Claude Code