MotorSignal-App/website/components
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
..
founder-portal fix(website): label fallback club routes and chat as examples (W-routes, W-chat) 2026-10-14 12:08:15 -04:00
group-rides feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
landing feat(ops): add dual speedtest options, support ticket fixes, cms sync, and overview card redesign (#23) 2026-09-22 01:38:54 -04:00
ops fix(ops): decouple action execution to background tasks and stabilize live progress tracking (#24) 2026-09-22 01:58:53 -04:00
app-cloud-data.tsx fix: resolve Android CI breakpoint overflow and address Codex PR #28 findings 2026-10-09 18:53:39 -04:00
auth-form.tsx feat(website): add club curated routes, live squad chat, and portal navigation 2026-10-02 12:39:38 -04:00
download-hub-client.tsx feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
firebase-link.tsx feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
recovery-form.tsx feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
segmented-otp-input.tsx feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
session-manager.tsx feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
sign-out-button.tsx feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
site-footer.tsx feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
site-header-client.tsx feat(website): add Group Rides Hub navigation links for authenticated riders 2026-09-25 15:35:55 -04:00
site-header.tsx feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
site-page-frame.tsx fix(website): expand Founder Portal layout width to fill available canvas (#11) 2026-09-20 08:59:43 -04:00
support-contact-form.tsx feat(website): grounded FAQ and validated contact on Support Center (W2) 2026-10-14 12:11:20 -04:00
verify-email-form.tsx feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
web-telemetry-replay-modal.tsx fix(website): synchronize telemetry replay playback with recorded time (Phase 4) 2026-10-14 12:36:07 -04:00