3.0.0
DragonToast
3.0.0 (2026-03-15)
Full Changelog Previous Releases
- fix: correct hover-pause bugs and hoist hovered toast strata (#120) (#139)
- feat: pause toast fade-out on mouseover (#120)
- fix: use lifecycle-level hover hold instead of PauseQueue (#120)
Replace PauseQueue/ResumeQueue approach with PlayHoverHold/ResumeFromHoverHold to fix two UX bugs: new toasts spawning paused when overlapping a hovered toast, and position jumps on unhover due to frozen slide interpolation. The animation queue is no longer paused, so SlideAnchor repositioning works normally during hover. - fix: freeze hovered toast position completely (#120)
Skip SlideAnchor and UpdatePositions slide calls while a toast is hovered so the frame stays frozen in place. On unhover, snap to the correct logical position before starting the exit animation. - fix: freeze hovered toast by pausing LibAnimate queue (#120)
- fix: insert new toasts after hovered toast to prevent overlap (#120)
- fix: redesign hover-pause with deferred exit and reserved-slot layout (#120)
- Revert "fix: redesign hover-pause with deferred exit and reserved-slot layout (#120)"
This reverts commit dbde4e2. - fix: correct hover-pause timer drift, allow exit-phase pause, and hoist hovered toast strata (#120)
- Fix PauseNoAnimTimer to use tracked _holdRemaining across pause/resume cycles instead of always recomputing from full holdDuration
- Allow pausing during exit phase (not just hold) via PauseQueue/ResumeQueue
- Resume unconditionally on OnLeave regardless of pauseOnHover config state
- Raise hovered toast to HIGH frame strata on enter, restore on leave
Ultraworked with Sisyphus
- fix: reserve hovered toast visual slots to prevent overlap (#120)
New toasts always insert at index 1 (feed entry point). UpdatePositions now computes reserved slots from hovered toasts' frozen anchorY and assigns non-hovered toasts to remaining slots, preventing overlap when toasts above index 1 are hovered.
Ultraworked with Sisyphus - fix: hoist hovered toast strata, allow exit-phase pause, and harden resume logic (#120)
- fix: prevent stuck toasts on slide-freeze resume, eliminate no-anim timer drift, and guard LibAnimate internals (#120)
- feat: pause toast fade-out on mouseover (#120) (#138)
- feat: pause toast fade-out on mouseover (#120)
- fix: use lifecycle-level hover hold instead of PauseQueue (#120)
Replace PauseQueue/ResumeQueue approach with PlayHoverHold/ResumeFromHoverHold to fix two UX bugs: new toasts spawning paused when overlapping a hovered toast, and position jumps on unhover due to frozen slide interpolation. The animation queue is no longer paused, so SlideAnchor repositioning works normally during hover. - fix: freeze hovered toast position completely (#120)
Skip SlideAnchor and UpdatePositions slide calls while a toast is hovered so the frame stays frozen in place. On unhover, snap to the correct logical position before starting the exit animation. - fix: freeze hovered toast by pausing LibAnimate queue (#120)
- fix: insert new toasts after hovered toast to prevent overlap (#120)
- fix: redesign hover-pause with deferred exit and reserved-slot layout (#120)
- Revert "fix: redesign hover-pause with deferred exit and reserved-slot layout (#120)"
This reverts commit dbde4e2.
- fix: correct LibAnimate submodule path from DragonToasts to DragonToast (#135)
- docs: update CI/CD section for split release+packager workflow
- ci: add packager workflow dispatch and actions:write permission
Split packaging into a separate workflow triggered via workflow_dispatch
from the release workflow. This fixes the BigWigsMods/packager 'future tag'
guard that rejected branch-push events with tags at HEAD.
The release workflow now dispatches packager.yml with the tag name after
release-please creates a release, bypassing the GITHUB_EVENT_NAME==push guard.