Skip to content

v2.3.38

Choose a tag to compare

@github-actions github-actions released this 27 Aug 13:24
· 5 commits to main since this release

Oxed Hub

v2.3.38 (2026-08-27)

Full Changelog Previous Releases

  • Release 2.3.38
  • Register the new modules and ignore local reference addons
    Also raises the Interface version for 12.1.
  • Release an animation frame even if its ticker never finishes
    The frame was released only on the ticker's final tick, and the ticker was
    created with exactly enough iterations to reach it. Anything that stopped
    that one tick left the last sprite frame on screen for the rest of the
    session: an error raised inside the callback, or the iteration budget
    running out before the release branch was reached.
    Rather than guess which, playback now records the time it should be done by
    and a sweeper clears anything still active past it. A healthy animation is
    long gone before the sweeper looks at it.
    ActionHub runs its own ticker instead of the shared player and had the same
    fault, so it records a deadline too. It also names the clicked slot for the
    error journal.
  • Stop PvP kill triggers firing on raid and dungeon trash
    A hidden target GUID was treated as proof of instanced PvP, but 12.0 hides
    GUIDs across all instanced content, so every NPC kill passed the "victim is
    a player" check. Hidden GUIDs now only count inside a battleground or
    arena.
    The honorable-kill fallback had a second fault: with no baseline recorded,
    the first reading after achievement data loaded looked like an increase and
    fired on an unrelated kill. That is the "random in raid" part.
    PvP triggers also default to their own zones now instead of every zone.
    Kills default to battlegrounds; the aura alerts get arenas too, since that
    is where they matter. A zone ticked by hand opts the trigger out of these
    defaults for good, and a zone table that was never the trigger's own no
    longer swallows the tick.
    Carries the slash command for the What's New window.
  • Add a What's New window
    Shown once after an update, then not again for that version. Reopen at any
    time with /oxedhub whatsnew, which lists the full history rather than only
    what is new.
    Seen-version and the opt-out are tracked separately because they answer
    different questions, and both live in globalSettings: an update is an
    account level event, so the notes should not re-announce themselves on
    every character or after a profile switch.
    Marking as seen happens on hide rather than on the Close button, so
    dismissing with Escape or the title bar counts too.
  • Rework toy boxes: ID categories, hiding, and names that fit
    The suggested boxes matched keywords against toy names, so they only
    worked on an English client and missed any toy whose name did not happen
    to contain the word. Eight shipped categories now match on toy ID and are
    seeded per category, so one added in a later version still reaches an
    install that already has the earlier set.
    Boxes can be hidden instead of deleted. Deleting a filled box was easy to
    do by accident and impossible to undo; the Hidden button only appears once
    something is hidden, which is also the hint that it can be brought back.
    The sidebar leaves about ninety pixels for a name, which truncated the
    shipped names to "Stuff & Ca...". They are shorter now and the font steps
    down for anything that still does not fit. Two category icons pointed at
    paths that do not exist in the client and rendered as a blank square.
  • Call the aura sound API directly instead of through pcall
    Registering an aura sound was blocked on every attempt, so Self Aura and
    all five PvP alerts never fired. pcall puts a C boundary between the addon
    and the protected function, and the blocked-action traceback pointed
    straight at it.
    The existence checks around the call are what keep this safe on clients
    without the API; the pcall was never doing that job.
    SelfAura also gives up after the first refusal instead of repeating the
    call for every configured spell ID, which is what produced 86 blocked
    actions per session, and names the trigger for the error journal.
  • Add an error journal with a Debug tab
    OxedHub's own failures were only visible through BugGrabber, which reports
    the file and line but not which of the user's triggers was running. A
    blocked call in SelfAura read as "SelfAura.lua:353" and nothing more.
    The journal records that context, collapses repeats into a counter, and
    filters out other addons' errors. It chains the previous error handler
    rather than replacing it, so BugGrabber and BugSack keep working unchanged.
    Also carries the toy box strings used by the next commits.