f5e93d5612
On opening the live view, fetch GET /api/slmm/{unit}/history?hours=2 and
seed the chart with the recent trend BEFORE connecting the live socket, so
it opens with context instead of blank. Live frames then append in order.
- backfillChart() populates all four series (Lp/Leq/L1/L10) from the trail.
- initLiveDataStream is async and awaits the backfill before opening the WS.
- Chart rolling window raised 60 -> 600 points so the ~2h backfill (1/min)
isn't immediately shifted out.
- Trail timestamps are naive UTC -> append 'Z' so they localize consistently
with the live frames.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>