"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>
Nytt browser-test för start/paus/fortsätt/finish och byte till
nästa heat i kön, mot en simulerad decoder-socket (ingen riktig
AMMC-hårdvara). Hittade och fixade två buggar under vägen:
- Open Practice på sponsor/track-event kunde inte startas trots
grönt ljus i förkontrollen (separat, striktare kontroll saknade
samma undantag)
- Race Day-vyn ritades aldrig om när decodern anslöt/kopplades ner
Testramverket hanterar nu även native alert()/confirm()-dialoger
automatiskt, annars fryser en headless körning helt.