Fixes UAT-002: Player showing NaN:NaN and slider positioning incorrectly
Root Cause: jam-ui's jamClientProxy uses Proxy pattern where ALL methods
return Promises (via sendWhenReady → sendMessage → deferred.promise). Code
was calling SessionGetTracksPlayDurationMs(), SessionCurrrentPlayPosMs(),
and isSessionTrackPlaying() synchronously without await.
Result: Promise objects were passed to formatTime() and slider calculations,
causing NaN values and incorrect slider behavior.
Solution:
- Wrapped initialization duration fetch in async function with await
- Changed polling setInterval callback to async function with await for all calls
- Now correctly awaits all jamClient Promise-based methods
This matches jam-ui's async jamClient architecture (different from legacy
web's synchronous bridge API).
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>