6066b4a2c5
Auto-enable was a no-op - Writing 'visualizerEnabled'='true' to localStorage from app.js did not update the exported `let visualizerEnabled` in player.js. So applyVisualizerMode() saw the stale `false` and went into the DISABLE branch — leaving the device 'available, not capturing'. - Add a setVisualizerEnabled() setter exported from player.js and call it before applyVisualizerMode() during boot. Audio device persistence - Save the selected device name to localStorage on change. - On loadAudioDevices(), prefer status.current_device (server's current state) but fall back to the localStorage value if the server doesn't know one (e.g. after a server restart). - If the saved device wasn't recognized by the server, push it back via POST /api/media/visualizer/device so capture lands on it immediately. Best-effort; no toast on failure.