Skip to content

v2026.4.10.2

Choose a tag to compare

@github-actions github-actions released this 10 Apr 21:07
· 3 commits to main since this release
6762a8a

HeadsUpCDM

v2026.4.10.2 (2026-04-10)

Full Changelog Previous Releases

  • fix: restore-to-stock-parent crashes on spec switch (#11)
    The do-restore snippet was calling b:SetParent(p) where p was the
    ActionButton's original Blizzard bar (MultiBarBottomRight, etc.),
    captured via btn:GetParent() at file-load time. In WoW 12.0's
    restricted execution environment these stock bar frames are protected
    but not "explicitly protected" for SetParent targeting, so the
    restricted env rejects the unwrapped handle and throws:
    RestrictedFrames.lua:622: Invalid frame handle for SetParent
    This fired on the first spec switch (RebuildDisplay -> TeardownDisplay
    -> DestroyActionColumn -> SetAttribute("do-restore", ...)).
    Cross-checked EllesmereUI: it never restores to stock bar parents and
    only SetParents to frames it owns (hiddenParent, UIParent). Strong
    evidence that "restore to stock parent" is not a viable pattern in
    12.0's restricted env.
    Fix: change do-restore to just Hide() the buttons. They remain parented
    to UIParent (where do-setup put them) in a neutral hidden state. The
    next spec's do-setup repositions and Shows whichever buttons the new
    spec needs. Drops the origParents cache and orig-N frame refs entirely
    since they served no other purpose.
    Trade-off: on addon disable without /reload, buttons used by the active
    spec stay hidden on the bar until reload (they don't return to stock
    positions). Previously they also didn't return — the restore simply
    crashed. Spec switches (the common case) are fully fixed.
    Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com