chart.js preview harness — synthetic data, no data/days.js dependency  |  hover the chart for the crosshair readout

idx 0 / 0   --:--   last --
Integrity check: the price axis, the volume scale and every drawn pixel come only from bars[0..upto]. Step back with -10 and confirm the axis re-scales to the past — if the future were leaking, the axis range would not change.