Files
Live_RC/CHANGELOG.md
2026-09-09 07:52:07 +02:00

71 lines
4.7 KiB
Markdown

# Changelog
User-visible changes to RC RaceCore are recorded here, starting with the 1.1.0 baseline. Earlier development has not been reconstructed as individual releases.
The application version is maintained in `package.json` and displayed in the administration menu. Add changes under **Unreleased** as they are made. When preparing a release, move those entries into a dated version section and update the version in both `package.json` and `package-lock.json`.
## Unreleased
### Added
- Personal mobile profiles show last successful data retrieval, stale-data and failed-update warnings, and a Retry button without replacing loaded statistics or active forms. Requests time out after 15 seconds and cannot overlap.
- Browser coverage for Race Day start/pause/resume/finish and switching to the next queued heat, against a simulated decoder socket.
- Browser coverage for opening the OBS overlay as a real popup window (not a direct URL load): compact layout, and live clock updates that freeze on pause, polling independently of the admin page.
### Fixed
- Open Practice sessions on a sponsor (track-mode) event could show a ready/green Race Day preflight yet refuse to start, blocked by a stricter assignment check the preflight never warned about. Open Practice is now exempt from that check everywhere, matching the preflight.
- The Race Day view did not refresh when the decoder connected, disconnected, or errored, so its Start button and preflight checklist could stay stale after a page load until something else triggered a re-render.
- Printing or exporting start lists, results, heat sheets and team reports always showed a false "popup blocked" error and produced nothing, in every modern browser. Opening the OBS overlay as a popup had the same false "blocked" check and its window never received focus. Both used `window.open(..., "noopener,noreferrer,...")`, which returns `null` even on success by current browser standards; both now open without those flags.
## 1.1.2 - 2026-09-08
### Reliability checks
- Browser coverage for sponsor-event edits, endurance race creation, team membership changes/deletion, session-type conversion and lap-limit persistence.
- Overlay sorting headings share the same column tracks as driver rows. Narrow displays scroll the headings and values together.
### Added
- Browser-local decoder/socket diagnostics in Settings: per-channel counters, bounded logs, pause/clear/copy and independent updates that preserve form drafts.
- A prioritized ROADMAP.md with completion checklists.
- Server/save status, last load/save times, stale/offline warnings and manual retry of local changes.
- Isolated browser regression checks for class/driver/car creation and editing, retained drafts, reload persistence and offline save recovery (`npm run test:browser`).
### Fixed
- New browser profiles connect to the page origin rather than assuming backend port 8081.
- Correct chronological sorting of zero-padded times and deterministic ordering of distinct numeric-looking driver/car names. Name and identifier columns are explicitly treated as text.
- OBS race-info and standings panels wrap on narrow sources. Driver names retain space and timing fields wrap instead of overflowing.
## 1.1.1 - 2026-09-07
### Added
- Sortable columns in the leaderboard, recent passings, and training tables/lists, with each list remembering its own sort choice.
- OBS overlay leaderboard layout split into a race-info panel (left) and a driver-stats panel (right), so each can be positioned independently on stream.
### Fixed
- Sorting by driver or car name no longer merges differently zero-padded numbers (e.g. "09" and "9") into the same position.
- Sorting the interactive overlay no longer changes the row order shown on the OBS broadcast source.
## 1.1.0 - 2026-09-05
### Added
- Visible application version in the menu, read from the running server's package version.
- This changelog as the starting point for tracking future changes.
### Baseline
The existing feature set includes race and sponsor-event setup, team racing, AMMC timing, Race Day preflight, overlays and OBS views, Swedish and English race audio, training statistics, personal mobile profiles, import/export, and backups. See the README and in-app guide for configuration and usage.
Recent improvements included in this baseline:
- More compact mobile training profiles and consistent class-selector text sizing.
- Mobile refresh protection while entering data, selecting a class, or saving a car change.
- Separate unsaved car-change notes per class during page updates and class switching.
- Preservation of loaded mobile statistics during temporary refresh failures.
- Race Day preflight lists blockers first and provides shortcuts to the relevant configuration.