Skip to content

[Backport to stable] 2.10.5 - #6391

Open
github-actions[bot] wants to merge 6 commits into
stablefrom
backport/2.10.5
Open

github-actions[bot] wants to merge 6 commits into
stablefrom
backport/2.10.5

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Automated backport PR for stable release 2.10.5 with cherry-picked commits:

khers and others added 3 commits September 18, 2026 18:14
# What does this implement/fix?

This update fixes the get_stream_url() method to stop emitting default
port numbers for the protocol in use.

**Related issue (if applicable): 

Fixes: music-assistant/support#6455

## 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.
- [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.

Signed-off-by: Eric B Munson <eric@munsonfam.org>
# What does this implement/fix?

A user reported that reconfiguring their Opensubsonic provider without
changing anything would always result in an error that went away on
provider reload. This fixes that by using the saved credentials when
doing the reload configuration check.

## 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.
Backport of #6302: bump aiosonos to 0.1.13 (fixes the subscription-callback race #145 that froze playback state) and port the playbackError handler so errors stay visible.
@github-actions

Copy link
Copy Markdown
Contributor Author

🔒 Dependency Security Report

📦 Modified Dependencies

music_assistant/providers/opensubsonic/manifest.json

Added:

Removed:

music_assistant/providers/sonos/manifest.json

Added:

Removed:

The following dependencies were added or modified:

diff --git a/requirements_all.txt b/requirements_all.txt
index d868af009..d0b29fca0 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -15,7 +15,7 @@ aiolibdatachannel @ git+https://github.com/music-assistant/aiolibdatachannel@fea
 aiomusiccast==0.15.0
 aiosendspin[server]==9.1.1
 aioslimproto==3.2.2
-aiosonos==0.1.12
+aiosonos==0.1.13
 aiosqlite==0.22.1
 aiovban==1.1.0
 alexapy==1.30.0
@@ -65,7 +65,7 @@ plexapi==4.18.2
 podcastparser==0.6.11
 propcache>=0.2.1
 psutil==7.2.2
-py-opensonic==10.3.0
+py-opensonic==10.4.1
 pyacoustid==1.3.1
 pyamplipi==0.4.12
 pyatv==0.18.0

New/modified packages to review:

  • aiosonos==0.1.13
  • py-opensonic==10.4.1

🔍 Vulnerability Scan Results

No known vulnerabilities found

Name Skip Reason
aiolibdatachannel Dependency not found on PyPI and could not be audited: aiolibdatachannel (2026.5.23.dev4+g950e7f0)
torch Dependency not found on PyPI and could not be audited: torch (2.13.0+cpu)
torchaudio Dependency not found on PyPI and could not be audited: torchaudio (2.11.0+cpu)
yappi Dependency not found on PyPI and could not be audited: yappi (1.7.7)

✅ No known vulnerabilities found


Automated Security Checks

  • Vulnerability Scan: Passed - No known vulnerabilities
  • Trusted Sources: All packages have verified source repositories
  • Typosquatting Check: No suspicious package names detected
  • License Compatibility: All licenses are OSI-approved and compatible
  • Supply Chain Risk: Passed - packages appear mature and maintained

Manual Review

Maintainer approval required:

  • I have reviewed the changes above and approve these dependency updates

To approve: Comment /approve-dependencies or manually add the dependencies-reviewed label.

@codspeed

codspeed Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 11 untouched benchmarks
⏩ 7 skipped benchmarks1


Comparing backport/2.10.5 (cf55260) with stable (e30a497)

Open in CodSpeed

Footnotes

  1. 7 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

marcelveldt and others added 3 commits September 19, 2026 13:07
Announcements sent to a group of speakers that announce natively (for
example a sync group of Home Assistant Voice speakers) were handed to
each speaker separately. Those speakers have no way to line up their
start, so the rooms played the announcement noticeably out of step,
which makes it hard to understand.

A group now only hands the announcement to the individual speakers when
all of them can start it together. Otherwise the group plays the clip
through its own synchronized stream, as it did before these speakers
gained native announcements.

- New `coordinates_announcement_start` hook on the player model, off by
default
- AirPlay and Sonos players report it, so their groups keep the native
per-speaker announcement
- Speakers that announce through Home Assistant (ESPHome Sendspin
players, HA media players), Snapcast, Bose and Samsung do not, so a
group of those plays the announcement in sync through the group stream
(music stops and resumes)
- A group mixing speakers from different providers also uses the group
stream, since only speakers of one provider start together

**Related issue (if applicable):**

- related issue music-assistant/support#6273

<!--
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`

- [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.
#6384)

The nightly background audio-analysis scan created one asyncio task per candidate track up front. On large libraries that parked thousands of idle tasks for the whole run. Workers now pull from a shared iterator, so only the configured concurrency runs at a time.
Setting shuffle or repeat to the state a player is already in raised "Invalid or unsupported command" while it played a dynamic mix, because the dynamic-mode guard ran before the no-change check. A dynamic queue is always shuffle-on, so an HA automation calling shuffle_set: true always errored. Run the no-change check first so a redundant set is a silent no-op; a genuine change is still refused.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants