Releases: Rubyj/CooldownTracker
Releases · Rubyj/CooldownTracker
v1.7.2
Healer Cooldown Tracker
v1.7.2 (2026-05-12)
Full Changelog Previous Releases
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- feat: add evoker rewind and dreamflight (#19)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- Update to WoW 12.0.5 (Interface 120005), add Monk abilities (Revival, Celestial Conduit, Invoke Yu'lon)
- chore: bump version to 1.7.1
- feat: add Evoker Rewind and Dream Flight cooldowns (v1.7.2)
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- chore: bump version 1.7.1 (#18)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- Update to WoW 12.0.5 (Interface 120005), add Monk abilities (Revival, Celestial Conduit, Invoke Yu'lon)
- chore: bump version to 1.7.1
v1.7.1
Healer Cooldown Tracker
v1.7.1 (2026-04-22)
Full Changelog Previous Releases
- chore: bump version to 1.7.1
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- fix: monk icon paths (#17)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- Update to WoW 12.0.5 (Interface 120005), add Monk abilities (Revival, Celestial Conduit, Invoke Yu'lon)
- fix: correct icon paths for Celestial Conduit and Invoke Yu'lon
- fix: resolve Monk spell icons dynamically via C_Spell.GetSpellTexture()
Newer WoW spells use numeric FileIDs instead of string icon paths.
Added spellId field to Monk entries and CT:ResolveIcons() helper
that overwrites string paths with real textures at ADDON_LOADED time.
v1.7.0
Healer Cooldown Tracker
v1.7.0 (2026-04-22)
Full Changelog Previous Releases
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- feat(wow): 12.0.5 & monk abilities (#16)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- Update to WoW 12.0.5 (Interface 120005), add Monk abilities (Revival, Celestial Conduit, Invoke Yu'lon)
- Update to WoW 12.0.5 (Interface 120005), add Monk abilities (Revival, Celestial Conduit, Invoke Yu'lon)
v1.6.1
Healer Cooldown Tracker
v1.6.1 (2026-04-14)
Full Changelog Previous Releases
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- chore: bump version 1.6.1 (#15)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- chore: bump version to 1.6.1
- Merge branch 'main' of github.com:Rubyj/CooldownTracker
- chore: Add CurseForge publishing support (#14)
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
- chore: add CurseForge project ID to .pkgmeta
- chore: add CurseForge project ID to .pkgmeta
- Add CurseForge publishing support and MIT license
- Add CF_API_KEY to release workflow for CurseForge uploads
- Add LICENSE (MIT)
- Add curseforge_logo.png and curseforge_description.md
- Update .pkgmeta to exclude new non-addon files from zip
v1.6.0
Healer Cooldown Tracker
v1.6.0 (2026-03-24)
Full Changelog Previous Releases
- chore: bump version to 1.6.0 (#13)
- feat: innervate cooldown, spell reordering, and dead-state toggle (#12)
- feat: innervate cooldown, spell reordering, and dead-state toggle
- Add Innervate (180s) to Druid cooldowns in Data.lua
- Right-click any tracker row to toggle dead state: desaturates icon and
greys out the card to indicate the player has died; right-click again
to restore (battle rez). Timer continues running. /cdt reset clears all
dead states. - Spell reordering via Settings panel: each ability row now has ▲/▼ arrow
buttons to move it up or down in the tracker. Order is persisted in the
new CooldownTrackerDB.spellOrder SavedVariable. A Reset Order button
restores the default sequence.
- fix: sort comparator strict ordering and stale spellOrder pruning
- Guard sort comparator against comparing an element with itself (a.id ==
b.id returns false immediately), fixing potential 'invalid order function'
runtime error in Lua 5.1 when spellOrder is empty. - Prune stale spell IDs from spellOrder during BuildExpandedCooldowns so
ghost entries from renamed/removed spells can never silently consume swap
positions.
- fix: replace cramped scroll-bar arrow textures with UIPanelButton arrows
Reorder buttons were 22x15px scroll-bar textures with overlapping anchors
inside a 42px row. Replaced with UIPanelButtonTemplate buttons (24x18px
each, 2px gap) anchored correctly so they stack cleanly without overlap.
Switched arrow glyphs to unicode ▲/▼ which are far more legible at this
size. - fix: use ASCII glyphs and center reorder buttons vertically in row
FRIZQT__.TTF lacks the Unicode geometric arrow codepoints, causing them
to render as boxes. Replaced with ASCII ^ and v which the font supports.
Anchored both buttons from the row RIGHT with +/-10 Y offsets so the
18+2+18px pair is centered in the 42px row instead of sitting at the top. - fix: use native WoW arrow textures for reorder buttons
Replaced mismatched font glyphs (^ vs v render at different heights in
FRIZQT) with inline |T...|t texture escapes pointing at the same Arrow-Up
and Arrow-Down assets Blizzard uses in their own UI. Both arrows render at
12x12px so they are guaranteed identical in size. - fix: center arrow textures in reorder buttons using child overlay
Inline |T|t text can't be offset, so asymmetric padding in the native
arrow textures made the up arrow hug the bottom and down arrow hug the
top. Replaced with explicit child OVERLAY textures anchored at CENTER
with +/-1 Y nudges to counteract the texture's internal whitespace. - fix: increase down arrow Y nudge to -3 for visual centering
- fix: grey out timer and name text when player is marked dead
ApplyDeadVisuals now sets timerLabel, nameLabel, and classLabel to grey
(0.5, 0.5, 0.5) alongside the icon/strip/bg. ClearDeadVisuals restores
nameLabel to white and classLabel to its class colour. timerLabel is
restored implicitly by the UpdateRow tick which rewrites it each frame. - fix: preserve active timers across RebuildUI calls
Removing CT.activeTimers = {} from RebuildUI() was wiping all running
timers every time a settings change (column count, class count, spell
visibility, reorder) triggered a rebuild. Timers are now only cleared
explicitly by the /cdt reset slash command, which is the only caller
that actually intends to reset them. Orphaned entries from ID changes
(e.g. count 1→2) are harmless -- UpdateRow ignores keys with no
matching row. - fix: use grey color codes in timer text for dead-state rows
SetTextColor() is overridden by embedded |cff...|r escape sequences in
the text string. UpdateRow now reads CT.deadStates each tick and injects
|cff808080 instead of the normal green/orange codes, so the grey sticks
regardless of timer state. Works whether dead is marked before or after
the timer starts since UpdateRow fires every frame. - docs: update README for innervate, reorder, and dead-state features
- fix: prune stale spellOrder IDs in MoveSpell and drop RebuildUI timer flash
- MoveSpell now rebuilds the order array by removing any IDs not in
CT.COOLDOWNS before searching for the swap position, matching the
knownIds pruning already present in BuildExpandedCooldowns. Previously
a ghost entry could silently consume a swap slot. - RebuildUI no longer unconditionally overwrites timerLabel with 'Ready'.
UpdateRow handles the correct text (respecting active timers and dead
state) on the next OnUpdate tick, eliminating the one-frame green flash
when reordering while a timer is running.
v1.5.0
Healer Cooldown Tracker
v1.5.0 (2026-03-18)
Full Changelog Previous Releases
- fix: icon clipping over class colour strip (#11)
- fix: lower icon offset to prevent clipping over class colour strip
- chore: bump version to 1.5.0
v1.4.0
Healer Cooldown Tracker
v1.4.0 (2026-03-17)
Full Changelog Previous Releases
- feat: scale down card grid to match Details window footprint (#10)
- feat: scale down card grid to match Details window footprint
- chore: bump version to 1.4.0
v1.3.0
Healer Cooldown Tracker
v1.3.0 (2026-03-17)
Full Changelog Previous Releases
- feat: compact icon-sized cards, timer overlay, more transparent backdrop (#9)
- feat: compact icon-sized cards, timer overlay, more transparent backdrop
- fix: remove duplicate strip SetSize call in ApplyCardLayout
- fix: dial back card compactness to middle ground (72x58, pad 4)
- fix: use THICKOUTLINE and white text for card timer overlay readability
- fix: move timer below icon with taller card (68px), revert orange timer colour
- chore: bump version to 1.3.0
- docs: update CI/CD documentation to reflect split ci and release workflows (#8)
v1.2.0
Healer Cooldown Tracker
v1.2.0 (2026-03-17)
Full Changelog Previous Releases
- fix: grant GITHUB_TOKEN contents write permission for release creation (#7)
- chore: bump version to 1.2.0 (#6)
- chore: bump version to 1.2.0
- chore: run luacheck on pull requests
- chore: split CI and release into separate workflows
- fix: resolve luacheck warnings
- chore: add GitHub Actions CI/CD, luacheck, and BigWigs packager (#5)
- chore: add GitHub Actions CI/CD, luacheck, and BigWigs packager
- chore: add pull request template
- feat: raid leader UX feedback - clickable rows, bigger icons, sound toggle, spell toggles, translucent bg (#4)
- feat: raid leader UX feedback - clickable rows, bigger icons, sound toggle, spell toggles, translucent bg
- fix: remove dead BUTTON_W constant
- fix: propagate duration edits to expanded cooldown copies when class count > 1
- feat: add Priest/DH/Evoker spells and frame lock toggle
- refactor: reorder spells per raid leader preference, remove Halo
- fix: restore Halo to spell list
- fix: correct Apotheosis icon to ability_priest_ascension
- fix: guard OnDragStart when frame is locked; enlarge lock button
- fix: increase lock button size to 32px to visually match UIPanelCloseButton
- fix: center lock button vertically in title bar using RIGHT/LEFT anchor
- docs: update README and AGENTS to reflect current feature set
- fix: guard OnDragStop when frame is locked to prevent StopMovingOrSizing on non-moving frame
- Merge pull request #3 from Rubyj/feature/class-counts
feat: class count configuration with taint fixes - docs: add AGENTS.md with AI assistant instructions and taint anti-patterns
- fix: load settings before expanding cooldowns to apply custom durations on load
- fix: eliminate taint by removing SetScript in RebuildUI and dummy pool frames; use row.cd indirection
- fix: remove programmatic Settings.OpenToCategory (fully protected in Midnight)
- fix: defer Settings.OpenToCategory via C_Timer to avoid protected call taint
- fix: replace taint-causing SetParent/CreateFrame in RebuildUI with safe frame pool
- fix: hoist editBoxes and RefreshAllEditBoxes before OnShow so closure can reference them
- feat: class count configuration — duplicate cooldown rows per class player count
- Merge pull request #2 from Rubyj/feature/resizable-layout
feat: configurable grid layout (columns setting) with card/wide row modes - fix: timerLabel missing font before SetText in CreateRow
- feat: configurable grid layout (columns setting) with card/wide row modes
- Merge pull request #1 from Rubyj/feature/settings-panel
feat: in-game settings panel for cooldown duration configuration - feat: auto-commit duration on every keystroke via OnTextChanged
- fix: use C_Timer.After(0) to populate edit boxes after Settings canvas init
- fix: replace InputBoxTemplate with manual EditBox + HookScript OnShow
- fix: edit boxes blank due to SetNumeric(true) incompatibility with SetText
- fix: settings edit boxes blank on open due to OnEditFocusLost during init
- fix: settings panel rows invisible due to zero-width scroll content
- feat: in-game settings panel for cooldown duration configuration
- Add full healer cooldown roster (Druid, Paladin, Shaman, Warrior, Evoker, DK)
- Remove old monolithic file (replaced by Data.lua, UI.lua, Core.lua)
- Initial commit: Healer Cooldown Tracker addon