mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 14:40:52 +00:00
feat(insights): populate the trailing sparkline series on derived metrics
The Derived<T> tile (SparklineDeltaTile) renders a trailing series, but the engines never filled it, so the inline sparkline was always empty. Each engine now carries a capped trailing series sourced from the rows it already reads: - baseline-band metrics (incl. wrist-temperature / stair ascent+descent) ship the per-day mean series the band is built from; - HRV balance reuses the day-mean read it already does for the recent average; - the wellness scores (recovery / stress / strain) ship their window scores; - the six-minute-walk band ships its reading series; - BMI reads a bounded recent-weight set and derives a BMI series at the fixed profile height. All series cap at the last 30 points. The vitals dashboard wires the series into the baseline, HRV and BMI tiles; the tile already renders >= 2 points and collapses the sparkline row otherwise.
This commit is contained in:
1 parent
e2c7d08bad
commit
99e089ff4c
13 files changed
+149
-14
No files matched your search
@@ -1388,7 +1388,7 @@ const derivedMetricResponse = z
|
||||
.record(z.string(), z.unknown())
|
||||
.nullable()
|
||||
.describe(
|
||||
"Metric-specific value object when status is 'ok' (e.g. { type, center, low, high, spread, sampleDays, k } for VITALS_BASELINE); null when 'insufficient'.",
|
||||
"Metric-specific value object when status is 'ok' (e.g. { type, center, low, high, spread, sampleDays, k, series } for VITALS_BASELINE, where `series` is the trailing per-day mean values for the inline sparkline); null when 'insufficient'.",
|
||||
),
|
||||
coverage: derivedCoverage,
|
||||
confidence: derivedConfidence
|
||||
|
||||
Reference in new issue
Block a user