/
/
/
# What does this implement/fix? Ungrouping an AirPlay speaker that leads a sync group only stopped that one speaker: the rest of the group kept playing, because the code looked at how many speakers were still streaming instead of at which ones were actually asked to leave. This is not reachable from the normal ungroup button (the player controller rewrites that request before the provider sees it) — it happens when an external source takes over a speaker that was leading a group, which is why this is labelled maintenance rather than bugfix. - Decide what to tear down based on the members actually being removed, so ungrouping a leader now releases the whole group - Keep the session alive when only the leader steps out and other members stay behind - Correct a comment in the sync group provider that described a leader handover the AirPlay provider never did **Related issue (if applicable):** - n/a (found while working on #5659) ## Types of changes - [ ] 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` - [x] 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.