feat: modernize CLI, fix telemetry gaps, add Tyre Strategy insight, and setup CI/infra#287
Conversation
…nd setup CI/infra Major chunk of work including: - argparse implementation in main.py - lazy loading of GUI modules - fix cumulative race distance and add gap/interval fields - session-aware cache suffixing - distance-based leaderboard ordering - production-ready Tyre Strategy insight window - pyproject.toml and GitHub Actions CI setup - synced documentation and added CLI regression tests
|
I went through your code properly, not just the PR description. The distance fix in process_single_driver makes sense — total_dist_so_far carrying across laps is the right approach, the reset was silently messing up leaderboard ordering the whole time. Gap fields and in_pit flag are cleanly added into the payloads. Cache suffix map is a good catch for sprint weekend collisions. CLI looks much cleaner now with argparse and lazy imports. Tyre Strategy window is actually hooked into the live stream which is good to see. Tests are covering real cases too. And the Safety Car simulation with the deploy, on-track and return phases — that wasn't even mentioned in the description, nice addition. Went through all of it — the bug fixes, the replaced parts, the new features. Everything looks properly done. Good stuff, happy to see this :) |
|
Thank you so much for the detailed review @loisekk I'm glad the distance-tracking fix and the Safety Car simulation resonated those were definitely the "hidden" stability improvements I wanted to ensure were solid. Regarding the conflicts: I've just pushed a resolve. Since your "Stint Tracker" and my "Live Tyre Info" table provide different but equally valuable perspectives, I've integrated both into the project.
This way, users can choose between a visual timeline or a precise data table depending on their needs. |
|
Thank you for integrating both approaches . Your solution here is thoughtful—keeping the visual timeline as default while adding the data table as an option respects both perspectives. That's exactly the kind of collaborative design I was hoping for. The Live Tyre Info table with real-time gaps and speed fills a gap (good) Combined with the Stint Tracker, users now get flexibility to analyze in whatever way makes sense for their workflow. Really appreciate you taking the time to merge these thoughtfully instead of choosing one over the other. Looking forward to testing this out :) |
Pull Request: CLI Modernization, Telemetry Correctness, and Tyre Strategy Insight
Visuals
New Tyre Strategy Live Data Window
PR Context: Complementary Tyre Insights & Core Stability
I am aware of the recent "Stint Tracker" work by @loisekk. This PR is intended to be complementary to that effort. While the stint tracker provides a visual history of compound changes, this PR focuses on a Live Data Table approach for the Tyre Strategy window—prioritizing high-precision, real-time metrics (Exact Tyre Life, Speed, and computed Gaps/Intervals).
Additionally, this PR provides a major infrastructure overhaul (CLI modernization, Telemetry distance fixes, and CI/CD setup) that ensures the underlying data stream is accurate for all future insights.
Key Changes
1. Entrypoint & CLI Correctness
sys.argvlogic withargparseinmain.py.--practice {1,2,3}or aliases--fp1/--fp2/--fp3.2. Telemetry & Data Correctness
gap_to_leader_sandinterval_ahead_sto telemetry frame payloads.3. Leaderboard Stability
_driver_progress_mto prefer stable distance-based ordering, resolving the "jitter" duringoverlaps and pit stops.4. Infrastructure & Tooling
pyproject.tomlusinguvstandards for modern dependency management.Verification Run
uv run python -m pytest tests/test_main_cli.py -q-> 7 passed.--help,--list-rounds, and isolation testing for the Tyre Strategy window.