Changelog (iOS) — 0.7.0

Workouts
This is a huge new feature! Import a workout and run with visual and haptic cues (sound cues coming soon). New live workout pages show targets and progress on watch and phone. The workout composer is in progress — for now, ping one of us and we’ll set up any workout you need.
Splits
Splits are now calculated using your imperial/metric setting and saved on each activity. You’ll see live splits in the phone’s live view during your activity, and in the activity detail view afterward.
Laps
Manual and automatic laps (from workouts) are saved to the activity and shown live on phone and after the run.
On Apple Watch Ultra, press the Action button to mark a new lap.
Alternatively: double‑tap the stats view or use the controls view on watch.
Scroll up on the watch to review the previous lap; lap summaries are included in the activity detail on phone.
Cycling (Beta)
New cycling mode added! Track outdoor and indoor rides. We’re still collecting feedback — let us know how it works for you.
Treadmill distance calibration
For indoor runs, you can now manually set the treadmill distance from the watch’s activity detail (debug actions in the activity detail view). The full activity is updated (better for Strava sharing and tracking weekly mileage). Available for indoor runs only.
Heart‑rate filtering
New heart rate spike filtering has been added and will be applied during activity processing on the watch. This is on by default and spurious peaks will be removed from graphs and summaries to keep averages and max values accurate. If you notice anything odd, you can always regenerate your activity (via Watch activity detail debug actions) without bpm filtering.
Fixes and improvements
Strava: fixed intermittent upload failures by refreshing expired tokens before actions.
UserSettings: added a hard migration with reset fallback and custom encoding to address a Supabase serialization issue.
Watch live stats: cadence label now shows “cadence” and “spm” for clarity (feedback from Fipo).