Root cause fix: useMixerHelper was reading backingTracks from Redux
but not returning it in the hook's return object, causing
mixerHelper.backingTracks to always be undefined.
The issue:
- Line 88: Reads backingTracks from Redux mediaSlice
- Line 89: Reads jamTracks from Redux mediaSlice
- Line 90: Reads recordedTracks from Redux mediaSlice
- Line 831-847: Return object MISSING these three properties
This caused:
- WebSocket MIXER_CHANGES dispatches setBackingTracks() ✓
- Redux mediaSlice.backingTracks updates ✓
- useMixerHelper reads it via selector ✓
- But doesn't expose it to components ✗
- Result: mixerHelper.backingTracks always undefined
Fix:
Added backingTracks, jamTracks, recordedTracks to return object.
Now the full data flow works:
1. WebSocket MIXER_CHANGES arrives
2. Dispatches setBackingTracks(mixers.backingTracks)
3. Redux mediaSlice updates
4. useMixerHelper reads via selector
5. Returns in hook object
6. Components access via mixerHelper.backingTracks
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>