v0.8.9
What's new
BossWatch
v0.8.9 (2026-08-29)
Full Changelog Previous Releases
- Merge branch 'beta' for v0.8.9
- bump 0.8.9: cut release
- auraengine: re-push count/filters/layout after group creation
/bossw acdebug reported buttons=10 on every container while
aurasMaxCount defaults to 3 (hard-clamped to 8) — 10 is Blizzard's
default pool, suggesting either GetAuraGroupFrameCount counts allocated
pool frames rather than visible ones, or the maxFrameCount key in the
AddAuraGroup opts didn't take on this build.
Make the creation path symmetric with the update path: always push
maxCount / candidateFilters / layout through the live setter APIs right
after AddAuraGroup. Covers opts-key drift between builds either way. - auras: declarative AuraContainer engine for 12.1 Retail
12.1 sealed Lua aura reads in combat — index/slot/instanceID reads
hard-error while auras are secret and UNIT_AURA delivers a fully secret
payload. The v0.8.8 pcall hardening stopped the error spam but left the
legacy scan blind in combat: empty aura row during pulls.
New Frames/AuraEngine.lua, adapted from TankWatch v1.5.1's live-combat-
validated engine (pattern sources: DandersFrames AuraContainer.lua,
BigWigs_Plugins/Auras.lua): the addon creates + styles the buttons,
Blizzard's secure code fills + drives them, secrets included.- Query is declarative: group filter = db.aurasFilter (HARMFUL/HELPFUL,
container rebuilt if flipped), candidateFilters map the source
dropdown (MINE -> isFromPlayerOrPlayerPet=true, NOT_MINE -> =false,
BOSS_ONLY -> isBossAura=true) — evaluated secure-side against real
data, so these filters are EXACT on Retail again. The (!) limitation
marker in the options dropdown is now gated behind engine support. - Geometry on an invisible shadow box (nothing may anchor to the
container — forbidden aspects), flow layout mirrors LayoutAuras'
anchor/grow settings; cell size via the group layout table. - Stacks: bare FontString via SetApplicationCount (NEVER a formatter —
bricks the container). Timer: compact NumericRuleFormatter recipe
with the 68914+ DurationTextBinding dance, C-evaluated, combat-safe. - Fonts: engine texts registered in f._acTexts, walked by ApplyFonts.
- Test mode + Classic clients (probe: toc >= 120100 + AddAuraGroup)
stay on the legacy painted path; UNIT_AURA repaint and UpdateFrame's
UpdateAuras call are skipped while the engine owns a frame's row. - /bossw acdebug prints per-frame engine state.
Wiring: AuraEngine.lua loads before Boss.lua in all four TOCs;
ApplyLayout calls AE.Apply(f, db) and parks the legacy buttons when it
returns true.
- Query is declarative: group filter = db.aurasFilter (HARMFUL/HELPFUL,
This mod has no additional files