feat(race-day): add warm-up transponder check before a heat

Race Day gets a 1-3 minute warm-up per heat with a green check per
driver when their transponder is seen, countdown announcements
(sv/en), quick transponder fix from the panel, and a start warning
that still allows starting when someone is missing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
larssand
2026-09-30 20:47:15 +02:00
parent 627179b95a
commit 1bc75f8ec1
20 changed files with 489 additions and 11 deletions

View File

@@ -576,6 +576,14 @@ Type:
Owns:
- "Track layout: <label> - since <date> [New layout]" on Training stats, Race Day and the Dashboard; the button prompts for a name and calls the injected `addTrackLayout` (which refuses while a race session is running - `findRaceSessionBlockingLayoutChange` in `track_layouts_logic.js`)
### `src/warmup_logic.js`
Type:
- pure warm-up / transponder check logic
Owns:
- `recordTransponderSighting`: in-memory, bounded map of transponder -> last seen (never persisted, never counted as laps); fed by `decoder_runtime.js`'s `onTransponderSeen` for every main-line passing, before the running-session check
- `buildWarmupCheck`: per-heat entrant rows (seen since the warm-up started or not), unknown transponders with owner names; used by the Race Day warm-up panel (`race_day_view.js`) via `getRaceDayWarmupCheck` in `app.js`, which also owns the warm-up timer and its `warmup_*` voice events
### `src/misc_views.js`
Type:
- misc page renderers