Four tests pin the panel surface: * Empty-state placeholder renders when no observations. * Day-one priority primitives sort to the top of their group: motor.input_modality first in motor; the three cognitive priority primitives in documented order at the top of cognitive. * Each row renders primitive leaf, value, and confidence-percent badge. * Groups follow the canonical domain order (motor / cognitive / temporal / operational / environmental / emotional_valence); unknown domains alphabetise at the end. Mirrors the Orchestrator.test.tsx harness shape (DEBT-043). Live update path (useAttackerStream → setObservations) is exercised indirectly via the static render — the hook is dumb glue and the state mutation is React-side.
3.3 KiB
3.3 KiB