From a2958ff9f01de3dc4233ad06a2644c1893984b0a Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sat, 19 Sep 2026 16:40:22 -0700 Subject: [PATCH] Use provisioned native Python from plain onroad shell launch --- roadscore/onroad | 5 +++++ roadscore/prototype/runtime_manifest.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/roadscore/onroad b/roadscore/onroad index cb27d73dee..b17587a797 100755 --- a/roadscore/onroad +++ b/roadscore/onroad @@ -1,3 +1,8 @@ #!/usr/bin/env bash set -euo pipefail +if [ -f /TICI ]; then + # A plain device shell does not activate openpilot's Python environment. + export PYTHONPATH="/data/roadscore-feasibility/venv/lib/python3.12/site-packages${PYTHONPATH:+:$PYTHONPATH}" + exec /usr/local/venv/bin/python "$(dirname "$0")/prototype/normal_onroad.py" "$@" +fi exec python3 "$(dirname "$0")/prototype/normal_onroad.py" "$@" diff --git a/roadscore/prototype/runtime_manifest.py b/roadscore/prototype/runtime_manifest.py index 92523d65f7..cfe09354d2 100644 --- a/roadscore/prototype/runtime_manifest.py +++ b/roadscore/prototype/runtime_manifest.py @@ -5,7 +5,7 @@ from presentation_policy import effective_config,selected as presentation_policy from pathlib import Path from composer_choice import choice,NAMES from ace_profiles import selected -root=Path('/data/roadscore');files=[root/'prototype'/name for name in ['app.py','engagement_presentation.py','signal_shaker.py','core_apex.py','presentation_policy.py','presentation_status.py','render_policy.py','worker.py','core.py','musical.py','rolling.py','event_music.py','render_clock.py','song_form.py','section_bank.py','bar_grid.py','audio_policy.py','musical_gestures.py','gesture_bank.py','composition_policy.py','graph_cache.py']]+[Path('/data/sa3-feasibility/native_sa3.py')] +root=Path('/data/roadscore');files=[root/'prototype'/name for name in ['app.py','alert_accent.py','engagement_presentation.py','signal_shaker.py','core_apex.py','presentation_policy.py','presentation_status.py','render_policy.py','worker.py','core.py','musical.py','rolling.py','event_music.py','render_clock.py','song_form.py','section_bank.py','bar_grid.py','audio_policy.py','musical_gestures.py','gesture_bank.py','composition_policy.py','graph_cache.py']]+[Path('/data/sa3-feasibility/native_sa3.py')] result={'presentation_policy':presentation_policy_selected(),'render_mode':render_mode_selected(),'backend':NAMES[choice()],'composer':choice(),'implementation_sha256':{str(p):hashlib.sha256(p.read_bytes()).hexdigest() for p in files if p.exists()},'runtime':effective_config(json.loads((root/'runtime.json').read_text())),'weight_hash':'not collected in this integration pass'} source=root/('assets/source_'+result['runtime'].get('identity','legacy')+'.wav') if choice()=='ace':