feat(practice): flag suspiciously short laps and remove any lap in one click
Practice laps under 85% of the driver's own median (a likely shortcut) are flagged: counted, but never a best lap, record or training stat until approved. Timing and Race Day get a one-click Approve/Remove panel, overlays show a warning mark, and any lap can be removed or restored from Timing and Judging with undo. Also sends judge corrections straight to the server so its hot-results protection can no longer hold back a correction made right after a passing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -588,6 +588,15 @@ Owns:
|
||||
|
||||
The prologue controller lives in `app.js` (`startRacePrologue`, `tickRacePrologue`, hold/resume/+1 min/to 30 s/to 10 s/Go/Cancel). It is per browser tab (module state plus `sessionStorage`, restored on hold after a reload), so a second browser on the same event never runs its own count-down. When it runs out it calls `startOperationalSession` with `skipCountdown` and `skipIntro`; `runStartSequence` in `race_audio.js` then only runs lights, random delay and horn, or for a flying start the horn plus `clock_running`.
|
||||
|
||||
### `src/suspect_laps_logic.js`
|
||||
Type:
|
||||
- pure practice lap plausibility check
|
||||
|
||||
Owns:
|
||||
- `isSuspectLap` / `getSuspectReferenceLaps` (85 % of the driver's own median of up to 20 normal laps on the layout, at least 5), used by `decoder_runtime.js` to set `passing.suspect` in practice sessions
|
||||
- `countsForBestLap`, `listPendingSuspectLaps` (Timing / Race Day panel via `renderSuspectLapsPanel` in `timing_views.js`)
|
||||
- decisions go through `setCompetitorLapStatus` in `judging_logic.js` (remove / restore / approve, logged and undoable); `app.js` saves judge corrections with `saveCorrectionFor`, which also posts the session result to `POST /api/session-results`
|
||||
|
||||
### `src/misc_views.js`
|
||||
Type:
|
||||
- misc page renderers
|
||||
|
||||
Reference in New Issue
Block a user