PROBLEM:
- onBackendMixerChanged never being called
- No [HandleAlertCallback] logs
- Backing track changes not triggering session refresh
ROOT CAUSE:
- Alert callback never registered with native client
- In legacy code: jamClient.SessionSetAlertCallback("JK.AlertCallback")
- React app had no equivalent setup
- Backend mixer change alerts (type=2) never delivered to app
- So onBackendMixerChanged never called, session never refreshed
SOLUTION:
1. Add JK.HandleAlertCallback global function in JKSessionScreen
2. Routes BACKEND_MIXER_CHANGE (type=2) to sessionModel.onBackendMixerChanged
3. Register callback with jamClient.SessionSetAlertCallback on session join
4. Unregister callback on session leave for cleanup
FLOW NOW:
1. User opens backing track via jamClient
2. Native client detects change
3. Native client calls JK.HandleAlertCallback(type=2, 'RebuildMediaControl')
4. Handler routes to sessionModel.onBackendMixerChanged()
5. Syncs tracks and calls refreshCurrentSession()
6. REST API returns session with participants[].backing_tracks
7. updateSessionInfo() extracts and dispatches to Redux
8. mixerHelper.backingTracks populated
9. Component displays backing track
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>