/
/
/
# What does this implement/fix? <!-- Quick description and explanation of changes. --> The availability check pinged every speaker on every 5-second poll with a 1-second timeout and marked it unavailable after a single failure, even while event subscriptions were actively delivering. The recent-activity guard from the Home Assistant integration this code was ported from seems to have been lost as `_last_activity` was written but never read, so busy S1 hardware dropped out and reappeared constantly during playback. A speaker now counts a successful poll as activity and is only pinged once events and polls have both been silent for a while, so one slow or dropped request can no longer take out an otherwise healthy player. An unavailable speaker is still pinged on every poll so it recovers just as fast as before, no matter why it went offline. **Related issue (if applicable):** - related issue https://github.com/music-assistant/support/issues/6040 ## Types of changes <!-- Tick exactly one box. CI (.github/workflows/pr-labels.yaml) derives the label from the ticked box and applies it automatically; the release-notes generator uses that same label to slot this change into the next release notes. --> - [X] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [ ] Enhancement to an existing feature — `enhancement` - [ ] New music/player/metadata/plugin provider — `new-provider` - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) — `breaking-change` - [ ] Refactor (no behaviour change) — `refactor` - [ ] Documentation only — `documentation` - [ ] Maintenance / chore — `maintenance` - [ ] CI / workflow change — `ci` - [ ] Dependencies bump — `dependencies` ## Checklist - [X] The code change is tested and works locally. - [X] `pre-commit run --all-files` passes. - [X] `pytest` passes, and tests have been added/updated under `tests/` where applicable. - [ ] For changes to shared models, the companion PR in `music-assistant/models` is linked. - [ ] For changes affecting the UI, the companion PR in `music-assistant/frontend` is linked. - [X] I have read and complied with the project's [AI Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md) for any AI-assisted contributions. - [ ] I have [raised a PR against the documentation repository](https://github.com/music-assistant/music-assistant.io/blob/main/CONTRIBUTING.md) targeting the main or beta branch as appropriate. --------- Co-authored-by: Marcel van der Veldt <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]>