# RC RaceCore Roadmap Track work here with checkboxes. Check off a task only after implementation and verification. Record user-visible changes under `Unreleased` in [CHANGELOG.md](CHANGELOG.md). Priorities below are a working order, not release-date commitments. ## Existing foundation - [x] Race Day, preflight checks and heat queue. - [x] Automatic SQLite backups and local restore command. - [x] Isolated session replay. - [x] Training statistics, personal mobile profiles and car-change markers. - [x] Interactive list sorting and OBS display modes. - [x] Visible application version and changelog. Verified 2026-09-08: 122 logic/API tests and the register/offline browser smoke suite passed on Linux with Chrome. Checked items below describe that coverage; other platforms and workflows remain open. ## 1. Reliability and browser regression tests Acceptance: real create/edit/save flows persist after reload; background updates do not discard edits. Tests use isolated data, never the installation's database. - [x] Add a repeatable browser smoke-test command with temporary database/profile. - [x] Cover create/edit/save for classes, drivers and cars, including reload verification. - [x] Verify register form drafts remain intact during background version polling. - [ ] Cover sponsor events and race setup edits. - [ ] Cover team creation, membership changes, editing and deletion. - [ ] Cover session types, lap limits and start/finish controls. - [ ] Cover browser sorting, popup overlays, and compact OBS layout automatically. - [ ] Add Windows and Linux CI runs for supported runtimes. ## 2. Connection and save status Acceptance: users can distinguish server contact, pending edits, an active save and a failed save; a health check never falsely confirms a failed write. - [x] Show pending, saving, saved and failed state in the main interface. - [x] Show last successful data load/save times. - [x] Warn when the server connection is lost or its status becomes stale. - [x] Offer manual retry for unsaved changes without discarding local edits. - [x] Verify save failure/reconnection in a real browser. - [ ] Extend stale-data feedback to the personal mobile profile. - [ ] Review concurrent writes, reconnect recovery and multiple controllers editing the same race. ## 3. Clearer practice follow-up Acceptance: a driver receives a short, encouraging summary based on their own class-specific data, with one useful next goal. - [ ] Add an end-of-practice summary: pace, consistency, progress and achieved goals. - [ ] Suggest one next training goal using existing calculations. - [ ] Keep summaries separate by class and explain insufficient sample sizes. - [ ] Include the summary in the personal mobile profile. - [ ] Add coach/parent reward follow-up without turning practice into a public ranking. ## 4. Results archive - [ ] Search completed sessions by date, class and driver without Race Setup. - [ ] Show standings, lap history and penalties together. - [ ] Reuse existing PDF/export functions from the archive. - [ ] Define what remains available after deleting a race. ## 5. More natural race speech - [ ] Optional backend-generated neural speech. - [ ] Cache announcements and driver names before race day. - [ ] Keep credentials on the backend, outside exports and public responses. - [ ] Invalidate cached speech when language, voice or pronunciation changes. - [ ] Provide provider status and a pre-generate action. - [ ] Verify offline fallback and that playback never delays timing. ## 6. Permissions and mobile Race Control - [ ] Define Admin, Race Director, Speaker and Read-only capabilities. - [ ] Enforce permissions on server endpoints, not only in the UI. - [ ] Keep public overlays and training links restricted. - [ ] Build compact mobile controls for start/stop, track call, flags and next heat. - [ ] Test concurrent control and accidental repeated commands. ## Documentation maintenance - [ ] Update the architecture's module/dependency inventory as modules change. - [ ] Complete state/settings/SQLite contracts and critical form-to-controller mappings. - [ ] Consolidate older future-work notes so this file remains the primary roadmap.