feat(train): a workout keeps its plan's steps as laps, shown on its page (ADR 0030, D43)

As a recording with a plan is saved, each step run becomes a lap in the
workout's sealed payload: the step, its round, when it started and ended,
its moving time and distance, with the highest heart rate the zones ran
with. The page lists the steps with their pace, speed or split, stroke
rate, watts and heart rate, marks whether each held its target, and the
charts shade the work steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-28 23:12:34 +01:00
commit e1304975d6
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -4,8 +4,8 @@
is built; recording (D13–D28) is built on Android, iOS waiting for a Mac; Health
Connect (D29–D31) is built; the Loop's setup and keeping (7a, D34–D36) and its
daily data (7b, D37, D38), its sessions (7c, D39) and its firmware (D10, D40) are
built, and its live heart rate (7d, D41); intervals (D42, D43) are being built, the
plans (8a) and the service running them (8b) are.
built, and its live heart rate (7d, D41); intervals (D42, D43) are built: the plans
(8a), the service running them (8b) and the laps a workout keeps (8c).
- **Numbering:** 0025 is held by the federation draft (stashed), 0026–0029 by the .NET
rewrite on the local branch `rewrite-dotnet`, abandoned on 27 Oct; Train takes the next
free number so that neither is ever read as this one.
@ -841,6 +841,14 @@ Strava. What was found, 27 Oct:
average pace or speed and heart rate, on the rower its split and watts, marked where
it held its target, and shades the charts by step (over laps without targets, and
over no trace of the plan).
Built (8c): the laps are worked out as the recording is saved, from the file's
`step` lines, each step's moving time and distance counted as the workout's are
(a step cut short by Stop is kept as far as it went, one the plan never reached
isn't); the highest heart rate the zones ran with is kept beside them, so that a
zone held is judged on the rates of that day. A step held its target where its
average (its pace, speed or split over its moving time and distance, its heart
rate, stroke rate or watts) lies within it. The charts shade the work steps.
Health Connect gets the session as before, without laps for now.
## Consequences