mirror of
https://github.com/Routstr/routstrd.git
synced 2026-10-30 07:37:40 +00:00
The windowed aggregates and the History timeline used different range boundaries, so a tab's totals did not match the sum of its chart bars: - today: totals covered the calendar day since local midnight, while the chart drew a rolling, hour-aligned last 24 hours. - 7d/30d: totals were exact rolling (now - N*24h), while the chart snapped to whole local days, leaving up to 24h of drift at the left edge. Extract the chart's bucket alignment into windowRangeStartUtc() and derive windowAfter() from it, so both sides cover exactly the same range: 24 whole local hours for today, 7/30 whole local days ending today. This also makes the today window match its '24h' label in the TUI. Tests: rename the calendar-day test, add a 24h boundary test (yesterday's hours included, 25h ago excluded), and assert bars sum to window totals for the today/7d/30d timelines.