promotional bannermobile promotional banner

Spell History Enhanced

A movable cast-history bar that grades your GCD timing live: waste no time for a PERFECT and build combo streaks.

File Details

v1.0.0

  • R
  • Jun 12, 2026
  • 83.28 KB
  • 22
  • 12.0.5+2
  • Retail

File Name

SpellHistoryEnhanced-v1.0.0.zip

Supported Versions

  • 12.0.5
  • 12.0.1
  • 12.0.0

commit f0aad08074cecf35bbbf970d93a57427c0d52e0c
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 09:34:09 2026 -0300

    Wago now via GitHub Releases webhook; Action only cuts the GitHub release

commit 4e91bc3846b193228aa00fdb7969e39aec13f4a4
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 09:22:50 2026 -0300

    Let CurseForge handle its own packaging; Action does Wago + GitHub only

commit 2094b8c4ca8342036cf6704ecf785c9705a79521
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 09:12:25 2026 -0300

    Add CurseForge/Wago IDs and release packaging workflow

    TOC X-Curse-Project-ID + X-Wago-ID, a BigWigs packager GitHub Action that
    runs on tag push, and a .pkgmeta excluding dev/store assets (docs,
    screenshots, store avatar) from the addon zip.

commit 52442f81b84470ad337a87df0748ae99f0b75527
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 08:53:13 2026 -0300

    Add addon icon for the in-game AddOns list

    128px images/icon.png referenced via ## IconTexture so the addon shows a
    picture in ESC > AddOns. Also include a 512px square (images/spell-history-
    enhanced.png) for the CurseForge/Wago project avatars.

commit 2e905f7b428a15c9f64539b0674b6dac72b1f0f3
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 08:35:16 2026 -0300

    Add README screenshots and update docs for the new UI

    Add cast-bar screenshot + gif (screenshots/), and refresh the README to
    match the current behavior: Shift-drag movement, right-click and gear
    menus, trinket display, configurable border, and the native settings
    panel with Statistics/Ignore List subpages.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 30dd34a088ee8d1ee83a33ca4a6a08b12d9ae4b4
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 08:19:23 2026 -0300

    Remove /she debug cast logging

commit 30dd34a088ee8d1ee83a33ca4a6a08b12d9ae4b4
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 08:19:23 2026 -0300

    Remove /she debug cast logging

commit fb2fc987282a9d166e56abdfc280cceaaac0eddd
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 08:05:46 2026 -0300

    Add configurable cast-list border (size + class/custom color)

    Border around the bar with size none/thin/normal/heavy/strong and color
    either the player's class color or a custom RGBA via the Blizzard color
    picker. New Appearance settings; color stored as scalar R/G/B/A so per-spec
    profiles copy cleanly. Anchor:UpdateBorder applies it live.

commit 244cd395ab72056c1e5629bad59bf728ea4e4939
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 07:57:45 2026 -0300

    Add right-click context menu to the cast list

    Right-clicking the bar (icon or empty area) opens a menu: Ignore <spell>
    (only on an icon), Hide cast list, Open options, Clear list. Adds a
    barShown setting + 'Show Cast List' checkbox so a hidden bar can be
    restored; pet-battle restore respects it.

commit c5993bf0ad574a3e2dbc8dd2d6666129cf25940e
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Thu Jun 11 07:31:59 2026 -0300

    Add trinket-use display with a settings toggle (default on)

    Track equipped trinket on-use spell IDs (slots 13/14, refreshed on
    PLAYER_ENTERING_WORLD/PLAYER_EQUIPMENT_CHANGED) and let those casts
    through the spellbook filter when the new 'Show Trinket Use' setting
    is enabled.

commit cd3e9583d4ab89956ce7404941372cfba0e031ee
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 23:13:00 2026 -0300

    Fix empty-slot icons and missing override spells

    Tween:Start now carries over in-flight fields an interrupting tween
    doesn't set, so a slide-in icon moved before its fade completes no
    longer freezes at partial alpha (the intermittent empty slot).

    Cast filter also accepts override-known spells so Devourer
    transform abilities (Collapsing Star, Eradicate, Devour in Meta)
    stop being dropped.

commit 6e462bf2ff27e6dd405554d7f4523b3d2e8ae615
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 23:03:03 2026 -0300

    debug: log spell iconID to diagnose blank-icon slots

commit 486cd5761aa8681f09196eaed5bb6b361e47d505
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:56:12 2026 -0300

    Fix bar Shift-drag (icons interactive); add /she debug cast logging

commit fae9889dbb1fa62731f7a1f34eaaf91970395819
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:47:18 2026 -0300

    Phase 5: native settings rewrite + final wiring

    Options/Options native main page (Behavior/Appearance/Position) +
    Statistics and Ignore List canvas subpages; Core/Init lifecycle wiring
    and ApplyAllSettings; Commands/Slash; rewritten .toc load order; section
    and gear-menu locale strings (enUS + ptBR).

commit bd5ea25243090432b804684ab86d932e47cb9a1b
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:46:00 2026 -0300

    Phase 4: stats panel Shift-drag + gear menu

    Shift-gated drag, lock removed, top-right gear opens a context menu
    (Hide panel / Reset stats / Open options).

commit 5e80058bbc653986fc0b0d518a845ba2b3940b72
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:46:00 2026 -0300

    Phase 3: extract UI/Anchor; Shift-drag replaces lock

    Bar moves on Shift+drag (anchor + icon forwarding); grid shows only
    during a drag; hover hint; right-click-lock removed.

commit f30bf70a1ff51d693b0b6180b8d8935a3b8eecf7
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:46:00 2026 -0300

    Phase 2: extract Engine (CastTracker/GcdAnalyzer); decouple via EventBus

    GcdAnalyzer publishes CAST_GRADED; HistoryBar and StatsModel subscribe.
    Shared grading state moves to Config.state. Channel waste/uptime fix
    preserved.

commit d2921a75596d66567645706b9528f99c548e7b7b
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:23:12 2026 -0300

    Load Core modules; seed defaults via Config

commit d288445af44a75767d8753925ef21ac77845c4e1
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:22:41 2026 -0300

    Add Core/Config (defaults + shared run state)

commit 48a8d41daac27cd04e3253ce248292ec5eb3eef5
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:22:41 2026 -0300

    Add Core/EventBus pub/sub

commit 94cae063fe34e91ff2165028f4ac537ca1113343
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:22:40 2026 -0300

    Add Core/Constants module

commit ac22072bf5a792c1f168b2ae9dae0547aabdaa82
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:22:04 2026 -0300

    Fix channel wasted-time and uptime measurement

    Channels fire UNIT_SPELLCAST_SUCCEEDED at their START, so the previous
    spell's end (lastGcdEndTime) and the channel's active uptime were both
    recorded against the channel start, inflating the next cast's wasted
    time by the whole channel and undercounting uptime. Correct both at
    UNIT_SPELLCAST_CHANNEL_STOP using the real end time (handles clips too).

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 2a3ad2e5bd5ecb4301e417c1080210099c773203
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:21:10 2026 -0300

    Add implementation plan: restructure + native settings + shift-drag

    16 tasks across 5 verification-gated phases (Core scaffold, Engine
    extraction + EventBus, Anchor/shift-drag, stats gear menu, native
    settings rewrite). Verification is luac -p compile + in-game smoke.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit cc71be8702ad2ac9534721f6156fc3a092c24748
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 22:16:01 2026 -0300

    Add design spec: restructure + native settings + shift-drag

    Folder-by-layer SOLID restructure, EventBus decoupling, native Settings
    API rewrite (main page + Statistics/Ignore List subpages), shift-drag
    movement replacing lock, and a stats-panel gear menu. Includes a 5-phase
    migration plan with per-phase verification.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 80fe7378ba5e283b6355aa1229f93cda5b2ee617
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 21:26:25 2026 -0300

    Rebrand: Spell Combo History -> Spell History Enhanced

    - Rename addon: Title, folder/.toc base, and main file to SpellHistoryEnhanced.
    - Rename SavedVariable SpellComboHistoryDB -> SpellHistoryEnhancedDB (a fresh
      variable, so it does not collide with the old addon's saved data).
    - Rename all global frame/widget names, the ADDON_LOADED check, the chat
      prefix ([SpellHistory]), and slash commands (/she, /spellhistory).
    - Update display strings (incl. locales) and all documentation.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 4a7cd4aa78a44baa2f426bba487f1866a826cd40
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 20:49:57 2026 -0300

    Add per-specialization profiles

    - Profiles.lua: ns.Profiles stores a per-spec copy of the settings working
      set under db.profiles[specID] and swaps it on spec change. A brand-new spec
      is seeded from current settings; existing settings migrate on first run.
    - Wire PLAYER_LOGIN / PLAYER_SPECIALIZATION_CHANGED / PLAYER_LOGOUT.
    - ApplyAllSettings() re-applies all runtime state from the working set, and
      refreshOptionsPanel() re-syncs the open options panel after a switch.
    - StatsPanel:ApplyPosition() for repositioning on profile load.
    - Keeps the flat-key working set, so no existing read sites change.
    - Localized PROFILE_NOTE in enUS and ptBR.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit caffe4cece563972d7e168bb9acbc8ec772cd369
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 19:24:31 2026 -0300

    Add per-combat stats & session tracking

    - Stats.lua: ns.Stats, a UI-agnostic per-combat accumulator (uptime %,
      PERFECT count/rate, best combo, avg waste, casts, session length) with a
      lazy clock start for /reload mid-combat.
    - StatsPanel.lua: ns.StatsPanel, an optional movable/lockable on-screen
      readout that refreshes on a throttled OnUpdate while shown.
    - Wire BeginCombat/EndCombat to regen events; record graded on-GCD casts in
      ProcessFrameSpells.
    - Settings: Show/Lock Stats Panel checkboxes + a summary with Refresh/Reset.
    - Slash: /sch and /spellcombo print stats, /sch reset clears them.
    - Localized 15 new keys in enUS and ptBR.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 74e533961ce5d652e41821a7a57b8c73df3d4616
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 17:56:55 2026 -0300

    Add ignore list to exclude spells from tracking

    - IgnoreList.lua: ns.IgnoreList, a UI-agnostic model over
      SpellComboHistoryDB.ignoreList with Add/Remove/IsIgnored/GetSorted and a
      single onChanged observer for live UI refresh.
    - Filter ignored spells in UNIT_SPELLCAST_SUCCEEDED before analysis.
    - Right-click a history icon to ignore that spell (HistoryBar).
    - Settings: add by spell ID/name/link, plus a live list with Remove buttons
      and an empty-state label; scroll content grows to fit.
    - Localized 8 new keys in enUS and ptBR.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 661a12716ce06e649ba58833230b14e565d87d47
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 17:02:43 2026 -0300

    Add full icon animation system (None/Fade/Slide/Bounce)

    Replace the fixed-slot 'copy data between icons' model with a queue of
    independent moving icon frames, enabling true in/move/out animations.

    Architecture (SOLID, one responsibility per module):
    - Animations.lua: ns.Tween (generic interpolation engine), ns.Easing, and
      ns.Animations (a registry of pluggable animation strategies sharing a
      PlayIn/PlayMove/PlayOut interface). Built-ins: none, fade, slide, bounce.
    - HistoryBar.lua: ns.HistoryBar display manager owning the icon pool/queue,
      positioning, and content; delegates all motion to the selected strategy
      (dependency-injected via Init). Hosts CreateIcon, combo tiers, content.
    - SpellComboHistory.lua: slimmed to events, analysis, settings, wiring;
      calls ns.HistoryBar:Push instead of the removed UpdateHistory.

    Settings: Animation Style cycle button + Animation Speed slider
    (animStyle default 'slide', animDuration default 0.25s).
    Localized 6 new keys in enUS and ptBR. 'none' reproduces prior behavior.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 636f40814cba831670188e4783f076a656fdaa38
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 16:42:34 2026 -0300

    Add Brazilian Portuguese (ptBR) localization

    - Translate all 25 strings to pt-BR (UTF-8, with accents)
    - Guard on GetLocale() and load after enUS.lua in the .toc

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 0610f2ba762ff1ff5580188b00ccb6cbd48b4826
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 16:32:12 2026 -0300

    Clean up for GitHub release: English, localization, and docs

    - Translate all Korean comments to English; remove Korean from UI/chat
    - Route every user-facing string through a per-language locale table
      (Locales/enUS.lua), using the addon's private namespace
    - Update .toc: English Notes, Version, X-License, load Locales first
    - Add README, CONTRIBUTING (incl. how to add a translation), MIT LICENSE,
      and .gitignore
    - No gameplay/logic changes

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 05838fe93f42bea00eff2bfeef1c7167ceedc02e
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 05:32:26 2026 -0300

    docs: add cleanup & GitHub-ready design spec

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

commit 0598d2d1850fdf4c531db55534840db324a65376
Author: Junior Saldanha <umsaldanha@gmail.com>
Date:   Wed Jun 10 05:32:25 2026 -0300

    Initial commit: import Spell Combo History addon

    Baseline import of the addon before the cleanup/localization pass.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>