Skip to content

Choose a tag to compare

@github-actions github-actions released this 14 Sep 19:22
· 7 commits to main since this release

TwitchEmotes

v6 (2026-09-14)

Full Changelog Previous Releases

  • Mirror releases to the Gitea instance, by hand
    A Gitea pull mirror replicates commits and tags only, so the mirror's Releases
    page shows bare tags with nothing to download. ClassicAPI's mirror-release
    workflow pushes the notes and attachments over through Gitea's API; this is
    that workflow pointed at brues/TwitchEmotes.
    Manual only: workflow_call is dropped, so a release does not trigger it and
    nothing else calls it. Run it from the Actions UI with a tag, or with the tag
    blank to backfill every release.
    Needs its own MIRROR_TOKEN secret on this repo before the first run.
  • Draw the stats window with art 1.12 actually ships
    Neither texture it asked for exists on this client, and ClassicAPI ships no
    art of its own. UI-DialogBox-Background-Dark is a later addition -- 1.12 has
    only the un-suffixed UI-DialogBox-Background -- and ItemSocketingFrame is TBC,
    so the featured emotes' border was cropped out of a sheet whose folder isn't
    there at all.
    UI-Quickslot2 is the obvious stand-in for that border, but its hole is ~55% of
    the texture, so a 70px emote needs a 128px ring and runs into the title above
    and the caption below. It is a small backdrop frame instead, styled like the
    autocomplete popup, which keeps the 86/70 sizing. The emote moves onto that
    frame to draw above the backdrop; topSentTex/topSeenTex keep their names, so
    the animator still finds them.
  • Add a README
  • Pack animation sheets as tall strips
    ClassicAPI's texture dimension gate lifts the two limits the sheet layout was
    built around. A sheet skinnier than 16:1 drawing nothing was never a client
    rule -- VanillaHelpers grew the texture recycle pool to 6x6 but left the index
    stride at 5, so a 32x1024 strip collided with a 64x32 bucket and was handed
    back the wrong texture. And power-of-two is no longer required, since the gate
    grows the decode scratch to fit.
    So a run wraps into columns only when it outgrows the scratch at 32 frames, and
    a sheet is sized to its frames exactly: 20 frames is a 32x640 strip rather than
    64x1024. The 128 frame budget is unchanged, and older sheets still play -- the
    animator reads the column count off the sheet.
  • Set changelog-title