Fix FrameSort frame ordering instability in Solo Shuffle#73
Merged
DanderBot merged 1 commit intoMay 11, 2026
Merged
Conversation
Three issues caused incorrect or oscillating frame ordering when the FrameSort integration was enabled in arena / Solo Shuffle: 1. UnitsToNameList used type() == "string" to guard unit names, which lets through Midnight 12.0 secret values — opaque strings that pass the type check but crash table.concat. Added issecretvalue() guard. 2. ApplyArenaHeaderSorting called RequestSort() synchronously inside GROUP_ROSTER_UPDATE, before WoW had finished reassigning raid slots after a round transition. This passed stale unit data to FrameSort, producing the wrong nameList, which then persisted for the entire next round once combat locked it in. The call is removed; FrameSort's Blizzard provider already schedules a sort on the next frame. 3. The PLAYER_REGEN_ENABLED handler called ProcessRosterUpdate() when pendingSortingUpdate was set, which ran ApplyArenaHeaderSorting and reset nameList to INDEX — undoing FrameSort's own combat-end sort. Because WoW event handler order is non-deterministic, this caused intermittent wrong ordering between Solo Shuffle rounds. Added an IsFrameSortActive() guard so DF yields the sort to FrameSort entirely.
Owner
|
Thanks for the PR! Merged into main and will ship in the next alpha build. |
Krathe82
pushed a commit
to Krathe82/DandersFrames
that referenced
this pull request
Jun 6, 2026
…fle-ordering Fix FrameSort frame ordering instability in Solo Shuffle
Krathe82
pushed a commit
to Krathe82/DandersFrames
that referenced
this pull request
Jun 6, 2026
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.
Summary
table.concatLua crash in FrameSort's sort callback caused by Midnight 12.0 secret values passing thetype() == "string"guard — replaced withissecretvalue()checkApplyArenaHeaderSorting: removed synchronousRequestSort()call that fired with stale unit data before WoW finished reassigning raid slots after a Solo Shuffle round transition; FrameSort's Blizzard provider already schedules a correct sort on the next framePLAYER_REGEN_ENABLED: addedIsFrameSortActive()guard aroundProcessRosterUpdate()so DF no longer clobbers FrameSort's combat-end sort when the integration is active (event handler order between DF and FrameSort is non-deterministic)Test plan