Permission audio was guarded by the visible session check. Tool approvals in background sessions were therefore silent. Keep banner state session-scoped while playing the existing sound globally.