MotorSignal-App/website
Developer ae1980b4ed fix(website): synchronize telemetry replay playback with recorded time (Phase 4)
The replay loop advanced the cursor by one sample every 50 ms / speed, assuming a uniform
20 Hz stream. Recorded telemetry is not always uniform (segment breaks and GPS-loss gaps up
to 5 s), so the rider marker drifted out of sync with the elapsed-time readout — which is
derived from real timestamps — and "1x" did not match real time across gaps.

Make playback timestamp-driven:
- Add advancePlaybackIndex(points, fromIndex, budgetMs): a pure helper that consumes a
  budget of virtual recorded time, advancing by the real delta between samples so the
  marker tracks the elapsed-time clock. Disconnected transitions (per
  areTelemetryPointsConnected) are compressed to a single 50 ms step so playback never
  stalls across multi-second dead time. No coordinates are altered.
- Drive the rAF loop with frameDelta * playbackSpeed plus carry-over, resuming from an
  index ref so manual scrubs are honored.

Verified sound without changes: SHA-256-checked R2/inline telemetry load, CSV/GPX parse and
export integrity, loading/error/empty overlays, and tile-provider fallback.

Tests: advancePlaybackIndex covers uniform cadence, carry-over, gap compression, end-clamp,
and empty input. Existing replay/export/corner tests remain green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-14 12:36:07 -04:00
..
app feat(website): grounded FAQ and validated contact on Support Center (W2) 2026-10-14 12:11:20 -04:00
components fix(website): synchronize telemetry replay playback with recorded time (Phase 4) 2026-10-14 12:36:07 -04:00
docs docs(website): device-connections backend contract for the full "build real" feed (W-devices) 2026-10-14 12:12:02 -04:00
lib fix(website): synchronize telemetry replay playback with recorded time (Phase 4) 2026-10-14 12:36:07 -04:00
public/images fix: restore website visual assets and shell 2026-09-13 03:45:35 -04:00
test-support fix: resolve Android CI breakpoint overflow and address Codex PR #28 findings 2026-10-09 18:53:39 -04:00
tests fix(website): synchronize telemetry replay playback with recorded time (Phase 4) 2026-10-14 12:36:07 -04:00
.env.example fix(website): isolate Firebase configuration for staging and enforce safety guards 2026-10-08 10:50:28 -04:00
.gitignore Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
AGENTS.md Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
CLAUDE.md Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
next-env.d.ts Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
next.config.ts feat(website): expose and verify deployed Git revision (#13) 2026-09-20 18:59:17 -04:00
package-lock.json feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
package.json feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
tsconfig.json Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
vitest.config.ts fix(website): isolate Firebase configuration for staging and enforce safety guards 2026-10-08 10:50:28 -04:00