Files
Audiolib/frontend
Audiolib 38f7c9726e Extract AudioEngine — fix root cause of broken playback
ROOT CAUSE: AudioPlayer was the only component holding the <audio>
element, and it was only mounted when expanded=true. The MiniPlayer
(default state after Play) had no audio element at all. So clicking
Play set the store state but no audio was ever loaded or played.

Fix: New AudioEngine component holds the single <audio> element and
all playback logic. Mounted globally in App.tsx whenever an item is
loaded — independent of MiniPlayer/AudioPlayer UI state.

Store: New seekRequest (counter-based) lets external UI request seeks
without direct audio element access. New playerError surfaces errors
across MiniPlayer (red progress bar) and AudioPlayer (banner).

AudioPlayer + MiniPlayer reduced to pure UI components that interact
through the store. They can mount/unmount freely without affecting
playback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 18:22:44 +02:00
..