promotional bannermobile promotional banner

CombatAnalytics

CombatAnalytics is a combat session tracking addon for World of Warcraft: Midnight

File Details

1.3-release

  • R
  • Mar 21, 2026
  • 365.18 KB
  • 7
  • 12.0.1
  • Retail

File Name

CombatAnalytics-1.3-release.zip

Supported Versions

  • 12.0.1

tag ac27508720f69df2a5848f62e0d57a7be917c8d0 1.3-release
Author:    Lazar Dilov <ldilov@yahoo.com>
Date:    Sat Mar 21 23:53:19 2026 +0200

Release 1.3 fix counters

commit dd8a7690497d98e1ac85f9205663a8b15ee03c48
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:44:00 2026 +0200

    feat(threat): show coefficient-based baseline threat when fights < 3

commit 4fe7f123d49dddafabeb0fc625bd65ad641bad2c
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:40:02 2026 +0200

    refactor(threat): add optional alpha param to addBar

commit f85784c63c88780f4c2c4252a8b3aa6c923369cb
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:36:46 2026 +0200

    feat(threat): expose baselineThreatScore in GetCounterGuide return

commit 1c2f55153edef675533b750c6df7325032d0bbf3
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:33:20 2026 +0200

    feat(threat): add ComputeBaselineThreatScore local function

commit 40d8f923b1e3aaa593534d5492ac8f3d9fdd338f
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:32:05 2026 +0200

    fix(helpers): use string.* globals in Trim/StartsWith to avoid secret string taint crash

    Colon-method syntax (value:match, value:sub) indexes the value via its string
    metatable __index, which fails with 'attempt to index (a secret string value)'
    when the string was returned by a WoW API (UnitName, UnitGUID, etc.) in a
    tainted execution context.

    Replace with string.match() and string.sub() direct global calls which accept
    secret strings as arguments without indexing them.

    Also add tostring() sanitization in getOrCreateBucket (CombatStore.lua) so any
    secret string key is converted to a plain Lua string before table/string use.

commit b56dce4122f5087ebf6f56372866029997613397
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:28:39 2026 +0200

    fix(widgets): replace SetBackdrop in hooks with SetBackdropColors to fix taint crash

    Calling SetBackdrop() inside script hooks (OnEnter/OnLeave/SetActive etc.)
    causes 'secret number' arithmetic errors in Blizzard's Backdrop.lua when the
    execution context is tainted by our addon. SetBackdrop rebuilds all backdrop
    textures and reads GetWidth()/GetHeight() internally, which returns secret
    values in tainted contexts.

    Fix: add Widgets.SetBackdropColors() which calls only SetBackdropColor() and
    SetBackdropBorderColor() — color-only setters that never trigger texture
    rebuilds. Replace all ApplyBackdrop calls inside script hooks and data-update
    methods with SetBackdropColors. ApplyBackdrop (full SetBackdrop) now only runs
    at frame creation time.

commit b95e4362631901b3b3e8d6eaffabfd6e0c4b51c4
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:16:23 2026 +0200

    feat(threat): add baseline threat score coefficient constants

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

commit 62454e76db03eb3ece32ce96f28ad7b5892c5c8c
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:10:01 2026 +0200

    docs: baseline threat score implementation plan

    6-task plan covering coefficient constants, ComputeBaselineThreatScore
    function, GetCounterGuide wiring, addBar alpha param, and CounterGuideView
    three-tier fallback render. No new files, two Lua files touched.

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

commit 2a58da840200224300a9ea3f0eae3a9b85d7c53c
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Sat Mar 21 23:07:52 2026 +0200

    docs: baseline threat score design doc

    Coefficient-based fallback for Threat Level when personal fight data
    is insufficient (< 3 fights). Derived from archetype, threat tags,
    range bucket, and CC family count already in seed data. No API calls,
    no new seed files.

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>