Fix playback reliability and prepare v2.11.8 - #1343
Merged
shiftybitshiftr merged 4 commits intoSep 20, 2026
Merged
shiftybitshiftr merged 4 commits into
shiftybitshiftr merged 4 commits into
Conversation
馃摝 馃 A new release has been made for this pull request.To play around with this PR, pull Images are available for x86_64 and ARM64.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Muse could crash on audio-resource errors or early YouTube playlist failures, reuse a chapter-length cache for a full track, disconnect a replacement voice session after a delayed listener-departure event, or apply SponsorBlock trims to the wrong chapter timestamps. Initial voice handshakes could also time out after one attempt and leave newly requested songs queued for later playback. Concurrent expired-cache reads could fail while deleting the same row.
This change contains playback failures, observes playlist detail errors immediately, keys cached audio by source and end boundary, rechecks voice-session ownership after settings lookups, trims SponsorBlock segments within each chapter's original timestamps, and retries initial joins with a bounded three-attempt policy. Commands connect before queueing new tracks, and expired metadata is replaced through upsert without a competing delete.
The full review also found that the privileged PR-snapshot publisher trusted artifact-provided identifiers and registry destinations. A separate read-only job now validates the originating workflow, repository, PR head and merge SHA using trusted code. Publishing uses fixed destinations and skips closed or superseded revisions.
This prepares v2.11.8, including the SoundCloud playback fix already on master. Existing audio cache entries refill as needed because older keys did not record playback boundaries. There is no database migration.
Validation: 333 tests pass on the minimum supported Node 22.12.0, including before/after runtime regressions, real @discordjs/voice AudioPlayer error handling, and 13 snapshot validation tests. Type checking, build, and lint pass (one existing complexity warning). All workflow YAML parses successfully; the snapshot validator accepted actual successful PR metadata and its SHA artifact in a read-only check. Structured reviews found no actionable issues. No live Discord audio session or security exploitation was initiated.