From 85850f1fdce59e08d45601dfb5f68ceafd68e207 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sat, 19 Sep 2026 16:34:22 -0700 Subject: [PATCH] Show rendered presentation cues and record recovery checkpoint --- roadscore/STATUS.md | 4 ++++ roadscore/prototype/overlay_view.py | 9 +++++++++ .../prototype/test_rendered_cue_status.py | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 roadscore/prototype/test_rendered_cue_status.py diff --git a/roadscore/STATUS.md b/roadscore/STATUS.md index 63dbcf5433..5a5249cda2 100644 --- a/roadscore/STATUS.md +++ b/roadscore/STATUS.md @@ -1,3 +1,7 @@ +2026-09-19 standalone recovery: current generic planner conditioning is being prepared for local cached use; fresh native ACE sampling remains per launch. Main includes the standalone cache consumer contract, visible-home badge correction, exact archived Mac replay fixes, and conservative-v2 presentation. Native acceptance is NOT complete: the sole hardware owner cannot reach the comma on the latest network. No current run, GPU health, or startup improvement is claimed. Protected gold and fallback remain unchanged. + +Mac archived replay passed actual UI capture and exact final-sample playback against a complete historical archive. Presentation passed 33 offline tests; an actual 27-second opening gives a coherent estimated beat after removing the former 30-second minimum. Native alert accents are sparse, beat-aligned and suppressed during competing cues. Subjective cue salience still requires listening. + # Event checkpoint — clean 45 W native replay Prism completed a full 254.1-second muted route on the event comma + Chestnut with six accepted fresh music jobs, no holds, no underflows, no worker failure, and clean causal timing. Camera, path, lanes, navigation and ten curve activations were recorded. See [event evidence](EVENT.md). This is an instrumented replay pass; physical listening, Bluetooth and modeld coexistence remain unverified. Community judging has not begun. diff --git a/roadscore/prototype/overlay_view.py b/roadscore/prototype/overlay_view.py index f2a6ec25c6..ff0e1c815e 100644 --- a/roadscore/prototype/overlay_view.py +++ b/roadscore/prototype/overlay_view.py @@ -33,6 +33,15 @@ GESTURE_LABELS = { def gesture_view(state): + engagement = state.get('engagement_presentation') or {} + if engagement.get('enabled') and engagement.get('input_fresh') and engagement.get('rendered_state') == 'transition': + return ('Engaged / Opening music' if engagement.get('active') else 'Disengaged / Contained music'), 'active', 'engagement' + for field, label, kind in [('core_apex', 'Curve apex / Musical breath', 'curve_apex'), + ('signal_shaker', 'Turn signal / Shaker', 'turn_signal'), + ('alert_accent', 'Road alert / Percussion', 'native_alert')]: + presentation = state.get(field) or {} + if presentation.get('enabled') and presentation.get('rendered_active'): + return label, 'active', kind active = state.get('gesture_active') active = [kind for kind in active if isinstance(kind, str)] if isinstance(active, (list, tuple)) else [] for kind, (_, label) in GESTURE_LABELS.items(): diff --git a/roadscore/prototype/test_rendered_cue_status.py b/roadscore/prototype/test_rendered_cue_status.py new file mode 100644 index 0000000000..28edf881ae --- /dev/null +++ b/roadscore/prototype/test_rendered_cue_status.py @@ -0,0 +1,18 @@ +import unittest +from overlay_view import gesture_view, EventPresentation, overlay_view + +class RenderedCueTests(unittest.TestCase): + def test_enabled_is_not_audible(self): + self.assertEqual(gesture_view({'signal_shaker':{'enabled':True,'sequence_active':True,'rendered_active':False}}),('','',None)) + def test_actual_rendered_cues(self): + for field,kind in [('signal_shaker','turn_signal'),('core_apex','curve_apex'),('alert_accent','native_alert')]: + self.assertEqual(gesture_view({field:{'enabled':True,'rendered_active':True}})[2],kind) + def test_engagement_transition_then_recent(self): + presentation=EventPresentation() + state={'readiness':'READY','engagement_presentation':{'enabled':True,'input_fresh':True,'rendered_state':'transition','active':True}} + self.assertEqual(presentation.update(overlay_view(state),1)['event_state'],'active') + state['engagement_presentation']['rendered_state']='open' + self.assertEqual(presentation.update(overlay_view(state),2)['event'],'Recent: Engaged') + self.assertEqual(presentation.update(overlay_view(state),4)['event'],'') + +if __name__=='__main__':unittest.main()