Problem
useRecorder.stop() always sends heartRateAvg/Max: null, cadence: null, splits: [] regardless of the recorded track. The activity detail page expects splits/HR. A Strava-like app computes per-mile splits (pace + elevation) from the GPS automatically.
Acceptance
- Compute per-mile/km splits (time, pace, elevation) from the recorded points and persist them.
- Render splits on the activity detail page.
- HR/cadence: wire real sensor input or hide until supported.