"Jämna varv" and "Stegträning" previously only lived on the admin
Training page. A driver's own personal mobile profile link now offers
the same self-service configure/start/stop flow already used for the
5-minute practice timer there, with live progress computed server-side
from the driver's own share token so raw lap rows and driver IDs never
reach the client.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Andra guidade träningsövningen i Open Practice: konfigurera en
stegserie (antal varv + lugnt/kontrollerat/snabbt per steg),
förvalt till klassiska pyramiden. Training-sidan visar aktuellt
steg, kvarvarande varv och en progress-pill per steg. När
sekvensen är klar jämförs de två kontrollerade stegens snitt
neutralt (t.ex. "+0.90s"), utan att kalla en försämring för
trötthet.
syncTrainingLedger sprider nu resten av det normaliserade
training-objektet istället för att lista fält manuellt, så
samma klass av bugg som drabbade Jämna varv inte kan upprepas
för framtida fält.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ny guidad träningsövning i Open Practice: sätt måltid, tolerans
och antal varv, se aktuell serie och dagens bästa live på
Training-sidan. Ett missat varv startar en ny serie utan att
radera bästa resultatet.
Hittade och fixade två buggar under vägen:
- syncTrainingLedger byggde om training-state vid varje sparning
utan att föra vidare det nya evenLaps-fältet, så sparade
konfigurationer försvann direkt
- Training-sidan kraschade för alla förare med färre än 3 varv i
varje stint (t.ex. de första varven i ett pass) eftersom en
dedupe-funktion läste en egenskap på ett null-värde
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>