v0.12.0 — Interfaces and Distribution
Highlights
Roadmap milestone v0.12.0 closes with R3 (Streamlit + Backend) ready to ship and infrastructure for R2 (Arcade) in place. The CLI (R1) stays untouched.
What's new
Voice chat — full rewrite. STT migrated from Nemotron (required NeMo toolkit, 5GB) to openai/whisper-small via transformers pipeline. TTS migrated from Qwen3 (package not installed) to edge-tts with a curated 4-voice catalogue (Aria, Guy, Ryan, Sonia). LLM is now provider-agnostic via F1_LLM_PROVIDER env var — same plumbing as the text chat. Backend Dockerfile now installs ffmpeg and libsndfile1 so browser WebM decodes correctly.
Voice chat UI — redesigned end-to-end. Emoji spam replaced with Material icons consistent with strategy and race_analysis pages. Triadic palette (violet accent, red recording, amber thinking, emerald speaking). Audio-reactive orb with asymmetric envelope follower, visible state badge, 240px size, transparent container. Native st.audio_input replaces the third-party audio_recorder widget. Voice selector dropdown wired end-to-end. Health check polls during cold starts with a spinner instead of a misleading unavailable banner.
Chat charts — lap_times and race_data now show tyre compound in hover, with per-driver pit stop vlines annotated with driver and compound (VER - HAR format). Shared COMPOUND_COLORS palette mirrors the Rich palette used by the simulation CLI. Telemetry and compare_drivers charts unchanged.
SSE simulation endpoint — new POST /api/v1/strategy/simulate streams race simulation events (start, lap, summary) via text/event-stream. Ready for Arcade to consume in the next milestone. Validated via smoke unit, FastAPI TestClient, and CLI regression.
Breaking changes
- streamlit bumped to >=1.37 (for st.audio_input)
- audio-recorder-streamlit removed from deps
What's next (v0.12.1 or v0.13.0)
- Step 12 — Arcade UI consuming the SSE endpoint (R2)
- Step 13 — Legacy cleanup (archive base_agent.py, strategy_agent.py, rules/)
- R1 CLI wheel GitHub Release with the built artefact
Test plan verified
- Voice chat end-to-end with all 4 Azure voices
- Chart hovers show compound correctly; pit vlines match known strategies (Monaco 2023 VER)
- CLI simulation unchanged (python scripts/run_simulation_cli.py Monza VER 'Red Bull' --year 2024 --laps 5-10)
- SSE endpoint smoke test + TestClient green