Fix qualifying/finals/bump-up/judging/pause-timing bugs
A thorough audit of practice/qualifying/heats/finals, bump-up,
judging and pause/timer code (requested by the user) found several
real, concrete bugs, fixed together:
- Qualifying reseed sorted heats as text ("H10" before "H2"),
scrambling grids at 10+ heats; now sorts numerically and reports a
clear warning instead of silently dropping/ghosting heats when the
participant count changes.
- A driver with zero laps in a finished heat/final (DNS) vanished
entirely - not just from that round, but silently from every future
reseeded round and the final grid. Now backfilled as a real,
last-place "DNS" row.
- Bump-up did nothing at all with "reserve bump slots" off (mains
were already seeded full, so the old capacity check always
blocked it), and a promoted driver stayed double-entered in their
old main's upcoming leg. An oversized bump count could also blow
the main-letter naming past "Z". All three fixed.
- Judging undo restored an absolute snapshot instead of reversing its
own delta - undoing two penalties out of order could leave a live
penalty behind two "undone" log entries. Now always nets correctly
regardless of undo order.
- A competitor's elapsed time didn't exclude paused time (only the
session clock did), making a paused heat's results incomparable to
an unpaused one in qualifying ranking. Finishing while paused also
dropped the final pause segment, so the displayed elapsed time kept
growing after finish. Both fixed.
Verified with new unit tests for every fix (including a new
session_control.test.js - that file had zero prior coverage) and a
real headless-browser run confirming the judging-undo and bump-up
fixes end to end through the actual UI.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -8,6 +8,16 @@ The application version is maintained in `package.json` and displayed in the adm
|
||||
|
||||
No changes recorded yet.
|
||||
|
||||
## 1.10.3 - 2026-09-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Qualifying reseed could scramble the grid in rounds with 10+ heats (heats were sorted as text, so "H10" came before "H2"), and silently dropped drivers or left empty "ghost" heats when the participant count changed - it now reseeds numerically and warns clearly instead of failing silently.
|
||||
- A driver with zero laps in a qualifying heat or final (DNS) used to vanish entirely rather than showing as a real last-place result - including silently from every future round and the final grid. They now show up correctly as "Ej start (DNS)".
|
||||
- Bump-up did nothing at all when "reserve bump slots" was turned off, and a promoted driver could stay gridded in their old main's upcoming leg at the same time as their new one. Both fixed; an oversized bump count can also no longer blow past 26 mains.
|
||||
- Undoing a judging correction (e.g. a time penalty) out of order could leave a driver with a live penalty even though every log entry showed "undone" - undo now always nets to the correct result regardless of order.
|
||||
- A paused heat's results weren't comparable to an unpaused heat's in qualifying ranking, and a session finished while paused kept showing a growing elapsed time afterward. Both now correctly exclude paused time.
|
||||
|
||||
## 1.10.2 - 2026-09-10
|
||||
|
||||
### Fixed
|
||||
|
||||
Reference in New Issue
Block a user