Hold a chart's last bin back until all of its data arrived

The newest metric bucket is upserted every flush while its minute runs, and
both rollup endpoints summed it in — so every curve on Home ended on a fall
that was only the clock. The timeseries now stops at the last closed bin, and
the flow rollups' window ends on the last closed minute, so all sixty slices
are whole ones.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-27 15:53:55 +02:00
co-authored by Claude Opus 5
parent 37a7df9d24
commit 168aadb217
3 changed files with 70 additions and 6 deletions
@@ -41,8 +41,9 @@ function Tile({
* Sixty slices of whatever window is selected, so the curve stays the same
* width and only its resolution moves. The same curve the node panel and the
* edge popover draw, dot included, in the chart ramp this page's other graphs
* use. The dot marks the newest slice rather than this instant the rollups
* are polled, so that slice is the last complete one.
* use. The dot marks the newest slice rather than this instant: the server
* holds the slice that is still filling back, so the curve ends on one that is
* all there.
*/
function Spark({ counts }: { counts: number[] }) {
const points: HistoryPoint[] = counts.map((value, index) => ({