# Nem: Healer Alerts — Changelog

---

## v12.0.26 — June 14, 2026

### New: Traditional Chinese (繁體中文) Support

Nem: Healer Alerts is now fully available in Traditional Chinese. Selecting 繁體中文 from the language dropdown translates the entire interface: all 120 on-screen strings, the options panel, the sound picker (class voice-cue names plus the Class TTS and Generic headers), and the per-spec alert threshold labels (Target Atonement, Riptides, Renewing Mist, Abundance Threshold).

**Traditional Chinese voice pack.** A complete set of 33 spoken cues covers every alert that fires across all seven healer specs, so the voice callouts are in Chinese to match the rest of the interface. The voice audio also moves to the suite-standard .ogg format.

**CJK text now renders on any client.** Chinese characters previously showed up as empty boxes when playing on a non-Asian game client. The options panel and on-screen alerts now use the client's built-in CJK font whenever a CJK language is selected, so the text displays correctly no matter which region's client you run.

### New: Settings Profiles

Nem: Healer Alerts now supports saved settings profiles. Save multiple configurations and switch between them per character from the new Profiles tab (`/nha` → Profiles). Copy settings from another profile, export a profile to a shareable string, or import one a friend sends you. Your existing settings carry over automatically as your "Default" profile — nothing is lost.

### Options Panel — Rebuilt on the Shared Framework

The options panel has been rebuilt on the shared Nem framework and organized into General, Audio, Visual, and Profiles tabs, matching Nem: Pet Alerts for a consistent look across the suite. Everything from the old single-page layout is still here, with several new controls:

**Font Outline.** Choose how alert text is outlined — None, Outline, or Thick Outline (General → Typography).

**Output Channel.** Route the addon's sounds through any audio channel — Master, Music, Effects, Ambience, or Dialog (Audio → Global Audio Settings) — so you can balance alert volume independently from the rest of the game.

**Flash Style.** The old Flash Animation on/off toggle is now a Flash Style dropdown on the Visual tab — pick Static (no flashing), Subtle Fade, or Intense Pulse.

### Restoration Shaman — Unleash Life Alert Reworded

The alert that fires while your Unleash Life buff is up no longer tells you to cast Riptide. Because that buff can just as well empower Healing Wave or Chain Heal, the alert now reads `* CONSUME UNLEASH LIFE *` — a reminder to spend the buff while leaving the spell choice to you. The Traditional Chinese voice cues for the Unleash Life alerts were re-recorded to use the updated term (生命流溢).

## v12.0.25 — June 4, 2026

### Holy Priest — New Spec Support

Holy Priest is now fully supported, rebuilt from the ground up and event-driven.

**Raid-frame glows:** Renew (light green, highest priority) and Prayer of Mending (gold, hopping along as the buff bounces). Both clear the moment combat ends.

**Prayer of Mending Ready.** `* PRAYER OF MENDING *` in bright yellow (#FFF500), defaulting to "Priest: Prayer of Mending." Fires the moment any charge is available and re-arms as each charge returns. Casting PoM silences it for the haste-scaled cooldown, so the timing stays accurate through Bloodlust and trinket procs and on either hero spec.

**Holy Word alerts.** Two new readiness alerts:

- **Holy Word: Serenity Ready.** `* SERENITY *` in teal (#00FFE0), defaulting to "Priest: Serenity." Fires when Serenity comes off cooldown in combat, or at combat entry if already ready.
- **Holy Word: Sanctify Ready.** `* SANCTIFY *` in orange (#FF9900), defaulting to "Priest: Sanctify." Same shape as Serenity.

Both fire at the true ready moment in every build. Holy Word cooldowns shrink as you cast (Serenity from Flash Heal, Sanctify from Prayer of Healing), and the alerts track that reduction exactly, including Apotheosis (which also grants a bonus charge) and the Oracle and Archon hero talents (Prophet's Insight, Energy Cycle, Power Surge's auto-Halos, Eternal Sanctity), plus Surge of Light instant casts. Timing holds up in Mythic+, where the game hides charge data from addons. `/nha hwlog` measures real cast intervals against the prediction.

### Discipline Priest — Four New Alerts

Four new alerts, two gated to the Voidweaver hero talent:

- **Penance Charges Capped.** `* PENANCE CHARGES *` in soft gold (#F4D451). Fires at 2/2 charges; casting Penance re-arms it. Defaults to "Priest: Penance."
- **Power Word: Radiance Charges Capped.** `* RADIANCE CHARGES *` in warm gold (#FFD47C). Fires at 2/2 charges. Defaults to "Priest: Radiance."
- **Mind Blast Ready (Voidweaver).** `* MIND BLAST *` in lavender (#AB7CFF). Fires when Mind Blast comes off cooldown. Dormant on non-Voidweaver builds. Defaults to "Priest: Mind Blast."
- **Entropic Rift Active (Voidweaver).** `* RIFT OPEN *` in deep violet (#7C51D4) with countdown timer. Fires when your rift opens. Dormant on non-Voidweaver builds. Defaults to "Priest: Entropic Rift."

Power Word: Shield Ready is hidden in the test-mode preview since it shares a slot with Cast Void Shield; live combat behavior is unchanged.

### Mistweaver Monk

**Thunder Focus Tea Ready.** A new normal-priority alert fires the moment TFT comes off cooldown in combat, and at combat entry if it's already ready. `* THUNDER FOCUS TEA *` in light blue (#4AABFF), defaulting to "Monk: Thunder Focus Tea." It adapts to your hero tree: with **Heart of the Jade Serpent** it times to TFT's 24-second window, and with **Endless Draught** it tracks the second charge and re-fires as either replenishes. Casting TFT silences it for the predicted cooldown, so you get one clean cue per usable window. `/nha tftlog` measures real intervals against the prediction.

**Raid-frame glows clear on combat end.** The Renewing Mist and Enveloping Mist glows could stay lit after combat even once the HoT fell off. Combat exit now sweeps them clean, matching the Resto Druid behavior.

### Restoration Druid

**Swiftmend Ready alert.** Fires when Swiftmend reaches max charges in combat (1 without Prosperity, 2 with). `* SWIFTMEND READY *` in blued-gunmetal with the "Druid: Swiftmend" voice cue; casting Swiftmend re-arms it. Voice defaults also updated: Tree of Life Ready plays "Druid: Tree of Life" and Cast Lifebloom plays "Druid: Lifebloom Missing." `/nha smlog` measures real cast intervals against the prediction.

**Fixes:**

- **No more mid-cooldown false fires.** A post-cast suppression window keeps transient readings from flipping the alert during the cooldown.
- **Wild Growth tier bonus detection fixed.** The Sprouts of the Luminous Bloom 4-piece bonus wasn't reliably detected, firing the Wild Growth Ready alert slightly late on set wearers.
- **Reforestation prediction stays in sync.** Swiftmend timing no longer drifts when Reforestation is dispelled or expires unused; it resyncs from the live buff.
- **Mythic+ hardening.** Resto Druid's alerts no longer go silent when M+ taint makes a value unreadable, and a fix to Reforestation stops a flood of Lua errors that could hit ~46 per pull. Glow updates during Soul of the Forest windows are also lighter on CPU.

### Sounds

Seven new spec-specific voice cues, wired up as defaults for the new alerts above:

- **Monk:** Thunder Focus Tea.
- **Priest:** Penance, Radiance, Mind Blast, Entropic Rift, Serenity, Sanctify.

The full 15-sound generic pack is also restored: Bell, Lamp, Ping, and Redfox were already present; Bleeper, Drums, Heartbeat Single, Metal Gear Spotted, Oh No, Robot Blip, Sharp Punch, Shotgun, Sonar, Sonarr, and Water Drop are back alongside them.

**Sound picker polish:**

- **Per-class filter.** Each sound dropdown's Class TTS section now shows only the active spec's class cues, instead of every class pack.
- **Grouping and width.** Spec cues sit under a **Class TTS** header and generic tones under **Generic**, alphabetical within each, and the dropdowns now match the Alert Font picker's width and scroll height so the full list no longer overflows the panel.

### All Specs — Alert Layout

- **Uniform alert grid.** Every healer's alert stack now uses one shared vertical grid: the top alert starts in the same spot for all specs and each below steps down evenly. Most specs shift only a few pixels; the visible change is Holy Priest, whose stack moved up a full row to line up with the others, where it had been overlapping centered proc art like Benediction and Surge of Light. Your saved alert-frame position is untouched.
- **Spacing scales with Font Size.** The gap between stacked alerts (and each countdown timer) now scales with your chosen Font Size instead of being fixed, so the stack looks right at any size.
- **Font Size slider applies live.** Drag it and the alert frame updates in place, no `/reload` needed.

### All Specs — Alert Behavior

Alert text now disappears when you leave combat, matching how the raid-frame glows already cleared; re-entering combat with the same condition still active brings it back immediately with no sound re-fire. Alert sounds also no longer replay at the start of every pull for conditions that were already true when the last pull ended (for example, Thunder Focus Tea sitting off cooldown). Sounds now fire only when an alert is genuinely new.

### All Specs — Voice Cue Overlap

Voice cues no longer talk over each other; the chorus at pull is cut to one at a time. Short tones (Bell, Lamp, Ping, Redfox) still layer freely.

- **One voice at a time.** When multiple voice cues fire together, only the highest-priority one speaks.
- **A beat between cues.** A short gap separates back-to-back cues; critical-priority cues bypass it.
- **One cue at the pull.** In the first 1.5 seconds of combat, only the single highest-priority cue plays.
- **No instant repeats.** A given alert won't speak again within 4 seconds of itself.

### Core — Performance and Stability

The addon is now genuinely idle between events when no alerts are active:

- **Event-driven, no background ticker.** The old repeating timer is gone; fully supported specs do zero background work between events, and the alert display only runs its update loop while something is showing.
- **Snappier activation.** Faster response when you switch specs, change zones, or the roster shifts. Steady-state behavior is unchanged.
- **Scrollbar crash fixed.** Clicking the page-up/page-down zones of the options scrollbar could throw an error and lock it until reload. Fixed.
- **Per-spec error isolation.** If one spec's evaluation errors, only that spec goes quiet for the session; every other alert keeps firing.

---

## v12.0.24 — May 9, 2026

### Restoration Druid, Mistweaver Monk, Discipline Priest — Alert Layout Standardized

Every alert across the three fully-supported specs now sits on a uniform 25-pixel grid, anchored to the same top position. Previously each spec had its own spacing — Druid ran 20-46 px between rows because slots were reserved for countdown numbers, while Monk and Disc used 30 px. Now the suite is consistent: alerts stack tightly and predictably, and adding or removing an alert from any spec slides the rest cleanly into place.

As part of this, the Lifebloom Expiring and Soul of the Forest countdown numbers have been removed from Restoration Druid. Neither the other Druid alerts nor any alert on Mistweaver or Discipline shipped a countdown, so the two timer rows were the only thing breaking the visual rhythm of the stack. If you'd previously toggled the LB or SOTF timer off in the saved variables, that setting is quietly cleared on first load — the timers no longer exist either way.

Discipline Priest's three alerts have also been reordered top-to-bottom: Spread Atonement, Cast Void Shield, Power Word: Shield Ready. Atonement coverage is the moment-to-moment decision a Disc priest makes most often, so it now occupies the top slot with the other specs' top-priority alerts (Tree of Life, Renewing Mist).

### Discipline Priest — Phantom Alerts on Combat Re-entry Fixed

The "Power Word: Shield Ready" and "Cast Void Shield" alerts no longer fire spuriously when you re-enter combat with PWS or VS already established. Previously, if PWS was on cooldown when combat ended and the cooldown expired during the downtime, the alert would replay the moment combat started again — even though nothing had actually changed in your rotation. Same problem if a Void Shield proc was sitting up across a combat boundary. The alerts now only fire when the readiness or proc state genuinely transitions *during* a fight; opener alerts on a fresh pull (PWS never cast, no carry-over state) still play normally.

### Sounds — Spec-Specific Voice Sounds Added

The bundled sound library has been overhauled with new spec-specific voice cues. Restoration Druid, Mistweaver Monk, and Discipline Priest now ship with dedicated sounds for each of their alerts — for example, the Lifebloom Expiring alert plays a "Lifebloom Expiring" cue by default instead of a generic chime. Defaults for all three specs have been updated to use these new sounds out of the box. **On first load after this update, your saved sound choices for Restoration Druid, Mistweaver Monk, and Discipline Priest will be reset once** so you pick up the new spec-specific defaults — if you'd customized any of those alerts to a different sound previously, you'll need to set it again from the dropdown.

The sound dropdown now groups the new cues under their class, e.g. **Druid: Lifebloom Expiring**, **Monk: Renewing Mist**, **Priest: Void Shield**. Several extra sounds (Druid: Swiftmend, Druid: Tree of Life, Priest: Atonement, etc.) are registered and available to pick even though no alert defaults to them yet — you can wire them up to any alert via the Sound dropdown.

The four generic sounds (Bell, Lamp, Ping, Redfox) remain available for any spec that hasn't yet had voice cues added (Holy Paladin, Holy Priest, Restoration Shaman, Preservation Evoker).

### All Specs — Alerts Now Suppressed When Solo

Healer alerts and raid-frame glows are now silent unless you're in a party or raid. Fighting a few mobs solo as a healer no longer triggers any alert, glow, or sound — the addon stays out of your way until there's actually someone to heal. The instant you join (or leave) a group, alerts pick up (or clear) automatically. Test mode still works while solo so you can preview alerts and position the frame as before.

### Options Panel — Layout & Theming Polish

A pass over the options panel cleaning up alignment, spacing, and theming inconsistencies. Pure visual polish — no behavior changes.

- **Display section reorganized.** The **Alert Font** dropdown has moved from Alert Options up to the Display section, sitting directly beneath Font Size and lining up with the Sound dropdowns. The redundant **Alert Text Scale** slider has been removed entirely — Font Size already does the same job. Existing font choices are preserved; any saved Scale value is quietly cleared on first load.
- **Class-colored text inputs.** Every text input on the panel now renders in your active spec's class color, matching the slider value field, section borders, and scrollbar thumb. Spec-helper numeric inputs and the alert text override boxes were previously plain white — they now retint with the rest of the panel on spec change.
- **Bottom button alignment.** The four buttons (Test, Unlock Frame, Center Position, Restore Defaults) are now uniform width and remain perfectly centered as a group.
- **Scrollbar flush with section bottom.** When scrolled all the way down, the bottom of the Alert Options box now lines up exactly with the scrollbar track — the previous ~20px gap is gone.
- **Right-column alignment.** Font Size slider and Alert Font label/dropdown now line up cleanly with the right-column alert checkboxes below them.
- **Numeric input centering.** Labels and edit boxes on every numeric input in Alert Options now share a vertical center line, matching the Nem: Pet Alerts look.
- **Tighter Alert Options spacing.** The oversized gap between numeric inputs and alert text fields has been tightened, controlled by a single shared value so all current and future specs space consistently.

### Discipline Priest — Full Rewrite (Event-Driven, CUF Glows)

Discipline Priest has been rebuilt from the ground up to match the architecture of Mistweaver Monk and Restoration Druid. All polling and background tickers are gone. Every alert reacts to in-game events as they happen.

**Raid frame glows:**

- **Void Shield (highest priority).** Any group member with an active Void Shield absorb gets a purple glow. Suppresses the Atonement glow while present.
- **Atonement.** Any group member with your Atonement gets a glow. Coverage threshold is configurable per-mode (dungeons vs. raids), same system as Mistweaver's Renewing Mist counter.

**Text alerts:**

- **Atonement coverage low.** Fires when your active Atonement count drops below your configured threshold.
- **Cast Void Shield.** Fires when Master the Darkness procs, signalling your next PW:S will become a Void Shield. Won't appear while PW:S is on cooldown — VS requires a castable PW:S, so showing it during the CD serves no purpose.
- **Power Word: Shield ready.** Fires when PW:S is off cooldown. Suppressed while Cast Void Shield is active — the two alerts are mutually exclusive.

When either VS or PW:S is cast, the PW:S ready alert holds off for the full haste-modified cooldown before returning. Works correctly for both self and group-target casts.

**All alerts are combat-only.**

### Discipline Priest — Performance

Added `/nha perf on`, `/nha perf off`, and `/nha perf` (mid-fight peek), matching Mistweaver Monk and Restoration Druid. Block breakdown: ATON / VS / PWS / END. CUF glow attribution: vs / aton / none / disabled.

### Discipline Priest — Bug Fixes

- **Crash on cooldown field access in M+.** A Lua error was firing 160 times per pull in M+ and rated PvP, breaking all alerts. Cooldown detection is now event-driven and doesn't trigger it.
- **Crash on haste read in M+.** The haste reading the addon depends on was erroring in M+ and rated PvP. Now protected with a 7.5s baseline fallback.
- **PW:S alert not clearing after cast.** The ready alert was persisting because the crash above prevented the cooldown timer from starting. Both VS and PW:S casts now clear the alert and start the timer immediately.
- **PW:S alert firing immediately after casting Void Shield on a group member.** VS on yourself cleared correctly; VS on a group member did not. VS consumption is now detected via the PW:S texture reverting, which works for both cast targets.
- **PW:S alert firing while the spell was still on cooldown.** Talents like Borrowed Time weren't reflected in the haste-calculated timer, so it could expire early. The cooldown duration is now read directly from the game API, which includes all talent and set-bonus modifiers.
- **Lua error comparing a protected cooldown value in M+.** A `> 0` check on a protected API value threw in competitive content. The comparison is now taint-safe.
- **Cast Void Shield alert missing procs in raid.** Talent or set-bonus changes that shortened PW:S's cooldown between casts weren't always picked up. The cooldown now self-corrects on every cast, with a fallback to the event-driven tracker in M+ / rated PvP.

### Discipline Priest — PW:S Cooldown Prediction

The "Power Word: Shield Ready" alert now fires accurately for Oracle Disc Priests in Mythic+. Two things were wrong before: the addon assumed the base 7.5s cooldown for everyone and ignored the **Waste No Time** talent's 1.5s reduction, and in M+ the haste reading the addon depends on goes unreadable in combat — silently falling through to 0% haste. With ~10% haste and Waste No Time taken, the alert was firing roughly half a second late on every PW:S cast. Both are fixed.

Talent state is now detected on login, spec change, and any talent edit, with a brief re-check to catch zone-transition timing. Haste is cached from a clean reading and the cache is used whenever the live reading is unreadable, so the prediction stays correct throughout an M+ run. Non-Oracle Disc players see no change.

A second fix in the same area: Cast Void Shield could pop briefly while PW:S was still on cooldown right after a cast. The cooldown sweep now waits for the cast's own timer to finish instead of overriding it.

Trade-off on the cached haste: mid-combat haste changes (Bloodlust, trinket procs) won't be reflected until the next clean reading. The error window is small.

---

## v12.0.23 — May 3, 2026

### Restoration Druid — Full Ticker Elimination

Restoration Druid is now fully event-driven, matching the architecture improvements made to Mistweaver Monk in v12.0.22. The 0.25s background polling ticker has been removed entirely.

### Restoration Druid — Soul of the Forest Raid Frame Glows Reworked

The SOTF boosted Rejuvenation and Germination raid frame glows have been rebuilt from scratch. In practice, the previous implementation only glowed one target at a time — if you spent three SOTF procs on different group members, only the most recent one would show a glow. All three frames now glow simultaneously and independently for the full duration of each buff.

**What's fixed:**

- **Multiple targets now glow at the same time.** Spending SOTF on several group members in a row correctly lights up all of their frames at once.
- **False glows eliminated.** Frames could glow immediately on a SOTF proc, before casting a Rejuv or Germination. Fixed.
- **Glows clear properly between combat encounters.** When you leave combat, all SOTF glows clear immediately. If you re-enter combat and the empowered Rejuv or Germination is still ticking on a target, the glow comes back automatically.
- **Fixed a crash that was breaking all alerts.** A code ordering issue in the Lifebloom glow system was causing a startup error that silently disabled the entire Druid module. No alerts or sounds would fire at all until a `/reload`. This is fixed.

### Restoration Druid — Lifebloom Raid Frame Glow Improvements

The Lifebloom pandemic glow (the border that lights up when your Lifebloom is about to expire) now correctly finds the right raid frame even when the target is also your current target or focus. Previously it could silently fail to glow in those situations.

### Restoration Druid — Performance

Swiftmend casts now trigger one alert check instead of three. The two extra checks fired at 0.1s and 0.3s after every Swiftmend and were redundant — WoW's own buff events already handle the same job. No visible change to alert timing.

### Restoration Druid — Bug Fixes

- **Abundance alert firing too early.** The Rejuv/Germination counter was inflated if your target or focus was also a party member — the same player counted twice. Fixed by tracking canonical group tokens only.
- **Wild Growth alert missing at combat start.** The alert appeared correctly once WG had been used at least once, but was silent on the combat opener when WG was already off cooldown. The sound now plays correctly at pull when WG is ready to use.

---

## v12.0.22 — May 2, 2026

### Mistweaver Monk — Major Performance Improvements

Removed background polling entirely from the Mistweaver module. The addon no longer runs a repeating check every 0.25 seconds — every detection now reacts to in-game events as they happen. In practical terms: zero idle CPU cost between pulls, and noticeably less CPU impact during heavy combat.

**Soothing Mist changes:**
- The addon now detects your Soothing Mist channel target the moment you start casting, via WoW's spell cast events. Mouseover macro target switches are handled correctly — if you retarget mid-channel, the old target is released and the new one is picked up after a brief delay.
- The Enveloping Mist alert clears the instant EM lands on your target, rather than waiting for the next evaluation cycle.

**Raid frame glows:**
- Raid frame glow updates no longer run on a timer. Buff changes trigger a deferred update that fires on the next game frame instead. Multiple buff changes on the same frame within one render frame are collapsed into a single update pass — same visual result, less CPU work.

**Other removals:**
- Removed a background Renewing Mist tracking system that was carrying dead code since v12.0.20 and doing work with no visible effect.

**Measured CPU results (20-person raid):**

| | Before | After |
|---|---|---|
| Average CPU | 3.48% | **0.40%** |
| Encounter CPU | 6.07% | **5.33%** |
| Peak CPU | 21.45% | **13.92%** |

### New: `/nha env` command

Snapshot diagnostic for the Enveloping Mist alert. If the alert is misbehaving, run this command and check the output — it shows your active SM target, whether the EM check passed, and current alert state.

---

## v12.0.21 — May 1, 2026

### Mistweaver Monk — Enveloping Mist Raid Frame Glow

Enveloping Mist now lights up raid frames the same way Renewing Mist already did. Priority stacking: if a unit has both EM and RM, the frame shows the EM color. Let EM expire and it falls back to the RM color.

| Priority | Buff | Color |
|---|---|---|
| 1 | Enveloping Mist | Pale yellow |
| 2 | Renewing Mist | Mint green |

### Mistweaver Monk — Enveloping Mist Alert Noise Reduction

The "missing EM on Soothing Mist target" alert used to fire during quick half-second spot heals, which created unnecessary noise in raid. It now requires you to be on the same target for **3 seconds** before the alert fires. Quick taps stay silent. Switching targets mid-channel resets the timer cleanly.

### Mistweaver Monk — Performance

Several CPU improvements that compound into a meaningful reduction in Mistweaver's footprint:

- **Soothing Mist target caching** — instead of scanning all group members every tick to find your channel target, the addon remembers the target and validates it cheaply. Cache clears automatically on channel end or retarget.
- **Renewing Mist scan rate reduced** — the RM coverage check runs 20% less often. Alert latency stays well under a second, so you won't notice.
- **Batched raid frame refreshes** — multiple buff changes for the same frame now batch into one update per 0.25 seconds, eliminating the CPU spikes that could occur during heavy pulls.
- **Out-of-combat scanning disabled** — the addon no longer processes food, flasks, and world buffs applied while sitting in the raid lobby waiting for a pull. Scanning resumes on combat enter with a fresh sweep, so pre-applied auras still light up the moment the pull starts.

### New: `/nha perf` command (Mistweaver)

Performance measurement tool, previously only available for Resto Druid. Same usage: `/nha perf on` to start, `/nha perf` to peek mid-fight, `/nha perf off` to stop and print the report.

---

## v12.0.20 — April 28, 2026

### All Specs — Individual Buff Icon Glows Removed

A WoW 12.0.5 patch broke the ability to glow individual buff icons on default raid and party frames. Since that patch, per-icon glows were only working on your Target and Focus frames — not where you're actually watching during a pull. This update removes the broken per-icon glow system entirely.

The **"Glow Raid Frames"** toggle in the options panel replaces the old "Icon Glow" checkbox, and points to the whole-frame border glow that actually works on default Blizzard raid frames. If you had icon glows disabled before this update, the new setting carries that preference forward automatically.

**Removed per-spec icon glows:**
- Mistweaver Monk — Soothing Mist icon glow, Enveloping Mist icon glow
- Resto Druid — Empowered Regrowth icon glow (and the `/nha trace` debug command)
- Disc Priest — Atonement icon glow, Void Shield icon glow

**What stays:**
- Resto Druid — Lifebloom pandemic glow + Soul of the Forest boosted Rejuv/Germination glow on raid frames
- Mistweaver Monk — Renewing Mist full-duration glow on raid frames

### Restoration Druid — Bug Fix

Fixed a Lua error that was spamming ~13,000 times during M+ runs. Caused by WoW's secret value restrictions in dungeons — certain aura data looks readable but crashes when accessed. No gameplay impact; the error spam is gone.

### Restoration Druid — Brighter Alert Colors

All six Druid alert colors updated to brighter neon variants for better screen visibility.

| Alert | Old Color | New Color |
|---|---|---|
| Lifebloom Expiring | `#24A148` | `#00FF66` |
| Cast Lifebloom | `#24A148` | `#00FF66` |
| Soul of the Forest | `#00E5C0` | `#00FFE5` |
| Wild Growth Ready | `#A6E22E` | `#B6FF00` |
| Reforestation | `#3498DB` | `#00BFFF` |
| Abundance | `#FFD100` | `#FFF200` |

### Mistweaver Monk — Performance

Same performance improvements from the Resto Druid update now applied to Mistweaver. The Renewing Mist coverage check previously scanned every group member every tick regardless of result. It now stops early once it has enough RMs to clear the threshold, and caches the result between checks. CPU cost in raid drops significantly.

---

## v12.0.19 — April 26, 2026

### Restoration Druid — Raid Frame Glows Return

Lifebloom and Soul of the Forest glows now show up on **default Blizzard raid and party frames**. Since patch 12.0.5 these glows only worked on Target and Focus frames. Two conditions are supported:

- **Lifebloom in its pandemic window** — green border glow
- **Rejuvenation or Germination boosted by Soul of the Forest** — cyan border glow

If both conditions apply to the same unit, Lifebloom takes priority.

The glow is a thick, animated border around the entire raid frame — different from the per-icon glow that used to appear on Target/Focus, but this is the only option that works on default raid frames after Blizzard's 12.0.5 changes. If you were using the `LifebloomGlow` addon to fill this gap, you can remove it — this update covers the same case and adds SOTF detection on top.

**New: `/nha cufglow`** — diagnostic command if a glow doesn't appear when expected. Prints hook status, tracked frames, and what auras the addon can see on each unit.

**Bug fixes:**
- Fixed the first Lifebloom cast after a `/reload` not glowing at pandemic. Subsequent casts worked fine, but the very first one of a session would silently miss.
- Fixed Soul of the Forest boosted Rejuv/Germination never glowing any raid frames.
- Fixed a Lua error burst (~23 errors) after Wild Growth casts in M+.

### Restoration Druid — Performance

Major CPU reduction for Resto Druid. The addon was using significantly more CPU than necessary in raid, enough to cause visible stutter on heavy pulls. After this update it uses roughly **8× less CPU** and the stutter is gone.

**Bug fixes:**
- Fixed a Lua error when running `/nha debug` while in a chat window, M+, or arena.
- Fixed a Lua error that could fire repeatedly while targeting a boss in raid.

**New: `/nha perf`** — measures how much work the addon is doing in combat. Run `/nha perf on` at pull, then `/nha perf off` after the fight to see a report.

---

## v12.0.18 — April 25, 2026

### Internal Cleanup — No Gameplay Changes

Behind-the-scenes refactor to bring Nem: Healer Alerts and its sister addon Nem: Pet Alerts into alignment. Same alerts, same triggers, same sounds, same display. This makes future maintenance and bug fixes cheaper across both addons.

**Small visible changes:**
- The login greeting message ("Loaded. Type /nha for options.") has been removed — the addon loads silently. Use `/nha status` to check state.
- Spec-switch chat messages ("Alerts paused" / "Alerts active") removed, for consistency with Nem: Pet Alerts.
- `/nha debug` now prints class, active spec, enabled state, group status, and glow hook state.
- If a sound is enabled but the requested sound file is missing, the addon now falls back to playing the bundled RobotBlip sound instead of playing nothing.

---

## v12.0.17 — April 21, 2026

### Bug Fix — All Specs Broken in 12.0.5

A WoW 12.0.5 patch removed an internal Blizzard function the addon was hooking into at login. This caused a crash at startup that left the addon in a broken state for **all specs**, showing "Spec Not Supported" in the options panel even on supported healers. Fixed.

---

## v12.0.16 — April 19, 2026

### Mistweaver Monk — Jade Statue Alerts Removed

After extensive live testing, the two Jade Serpent Statue alerts ("Place Jade Statue" and "Statue Idle") have been removed. WoW's API restrictions in M+ combat made both alerts unreliable — the game blocks access to the data needed to detect statue placement and statue activity in M+, causing false positives even when the statue was working correctly. The alerts were producing more noise than signal and have been cut.

The remaining Mistweaver module is now focused entirely on what works reliably: Spread Renewing Mist and Enveloping Mist alerts, with raid-frame and icon glows for RM, EM, and your active Soothing Mist channel.

### Mistweaver Monk — Soothing Mist Icon Glow (New)

A new icon glow appears on buff frames while your Soothing Mist channel is active on a target — a clean visual indicator of your current SM target for the full duration of the channel.

### Mistweaver Monk — Renewing Mist Threshold Options

Two new inputs in the options panel let you set how many Renewing Mists you want active before the "low coverage" alert clears:

- **Target (Party)** — for dungeons, default 2
- **Target (Raid)** — for raid, default 4

Changes take effect immediately without a reload.

---

## v12.0.15 — April 18, 2026

### Options Panel — Alert Options Section (New)

A new fourth section in the options panel — **Alert Options** — consolidates spec-specific settings in one place:

- **Font picker** moved here from the Display section.
- **Spec-specific options** now live here with a proper layout (previously crammed into the right column of the Display section).
- **Alert text editors** — every alert has an editable text box. Changes apply live. Clearing a box resets it to the built-in default text. Saved per character.
- **Restore Defaults button** — resets all alert colors, texts, font, scale, and frame position back to built-in defaults.

**Reset Position** renamed to **Center Position**.

### Restoration Druid — Alert Options

- Lifebloom timer and SOTF timer checkboxes now sit on a single row.
- **Abundance Count** is now user-configurable (range 7–12, default 7). Controls how many Rejuvs + Germinations are required before the Abundance alert fires.
- Alert text editors available for all six Druid alerts.

### Restoration Druid — Sound Changes

- Wild Growth Ready: Lamp → **Redfox**
- Abundance (Cast Regrowth): Ping → **Lamp**
- Lifebloom Expiring (Bell) and Soul of the Forest (Ping) unchanged

---

## v12.0.14 — April 18, 2026

### Mistweaver Monk — Cleanup

Removed two early-development alerts that weren't working well in practice:

- **Zen Spheres** alert removed
- **Shielun's Appeal** stack counter removed

Default sounds adjusted: Enveloping Mist → Bell; all Jade Statue sounds irrelevant (alerts removed in v12.0.16).

---

## v12.0.13 — April 18, 2026

### Mistweaver Monk — Bug Fixes

- **Fixed chat spam** — the addon was printing debug messages to chat on every evaluation tick during combat. Removed.
- **Fixed false "Place Jade Statue" alert in M+** — WoW's M+ API restrictions were causing the addon to lose track of a correctly-placed statue, then re-alert incorrectly. Fixed by preserving the known placement state set by the cast event rather than overriding it with a tainted scan result.

---

## v12.0.12 — April 18, 2026

### Restoration Druid — New Alerts

**Cast Lifebloom** — fires in combat when no group member has your Lifebloom active. Companions the existing Lifebloom Expiring alert: Expiring tells you it's about to fall off, Cast Lifebloom tells you it's already gone. The two alerts share the same screen position and are mutually exclusive — only one shows at a time.

**Abundance: Cast Regrowth** — fires when you have the Abundance talent and your combined Rejuvenation + Germination count across the group reaches 7 or more. At that point, Abundance makes Regrowth cheaper and more likely to crit. Won't appear if you haven't specced Abundance.

**Wild Growth — Smart Cooldown Tracking** — the Wild Growth Ready alert now accounts for your actual talent build and gear:
- **Early Spring** hero talent shortens the cooldown and is detected automatically.
- **Sprouts of the Luminous Bloom 4-piece tier set** shortens it further in PvE, or by a lesser amount in arenas.
- When cooldown data is directly available (outside M+/rated content), the addon uses the real value.

Gear and talent changes are picked up in real time — no reload needed.

### Restoration Druid — Minor Text Changes

- Reforestation alert: `* TREE OF LIFE NEXT SWIFTMEND *` → `* TREE: NEXT SWIFTMEND *`
- Abundance alert: `* ABUNDANCE - CAST REGROWTH *` → `* ABUNDANCE: CAST REGROWTH *`
- Cast Lifebloom no longer plays a sound by default.

### Options Panel — Layout Fixes

- Fixed the right-side panel being clipped off-screen in the WoW Settings UI.
- Removed redundant slider labels and tightened up spacing throughout.

---

## v12.0.11 — April 14, 2026

### Mistweaver Monk — Jade Serpent Statue Alerts (New)

Two new alerts for Mistweaver Monks with the Jade Serpent Statue talent:

- **Place Jade Statue** — fires in combat when no statue is placed. Catches forgotten placements after dying, rezoning, or the 15-minute duration expiring.
- **Statue Out of Range** — fires when you're channeling Soothing Mist but the statue isn't healing your target, indicating a line-of-sight or range issue. Includes a 0.5s grace period at channel start.

Both alerts only appear if you have the Jade Serpent Statue talent selected. Won't fire if you've chosen Jade Infusion instead.

> **Note:** These alerts were removed in v12.0.16 due to unreliable detection in M+ combat.

### Spec Availability

Holy Priest, Holy Paladin, Preservation Evoker, and Restoration Shaman have been temporarily disabled until their implementation is complete. Previously these spec files loaded but did nothing, causing user confusion.

---

## v12.0.10 — April 12, 2026

### Options Panel

- Non-healer specs (Windwalker, Shadow Priest, etc.) now show a clean "Spec Not Supported" message instead of a blank or broken panel.
- All unsupported specs show the same unified message regardless of class.

---

## v12.0.9 — April 10, 2026

### Rename: Nem: HoT Alerts → Nem: Healer Alerts

The addon has been renamed to better reflect what it actually does — it tracks far more than just Heal over Time effects (beacons, procs, cooldowns, shields, and more). No gameplay changes.

**Your saved settings carry over automatically.** No action needed.

New slash command: `/healeralerts` (old `/hotalerts` still works as a legacy alias).

### All Healer Specs Now Supported

**Discipline Priest (new)**
- Atonement Expiring — alerts when your soonest Atonement is about to fall off, with countdown timer
- Cast Void Shield — alerts when Master the Darkness procs

**Holy Priest (new)**
- Prayer of Mending — alerts when you have no Prayer of Mending bouncing on any group member

**Preservation Evoker (new)**
- Reversion Low — alerts when your Reversion coverage drops below threshold (configurable for dungeons vs. raids)

**Mistweaver Monk (new)**
- Renewing Mist Low — alerts when RM coverage drops below threshold (configurable for dungeons vs. raids)
- Enveloping Mist — alerts when you're channeling Soothing Mist on a target that doesn't have Enveloping Mist

**Holy Paladin (new)**
- Beacon Missing — alerts when no Beacon variant is active on any group member
- Eternal Flame — optional low-coverage alert (off by default)

**Restoration Shaman (new)**
- Earth Shield Missing — alerts when Earth Shield isn't active on anyone
- Riptide Low — alerts when Riptide coverage drops below threshold

**Architecture:** each healer spec is now a fully independent file. Adding or changing one spec can never affect another. Druid players will notice no difference from v12.0.8.

---

## v12.0.8 — April 6, 2026

### Bug Fixes

- Alerts no longer fire when playing non-Restoration Druid specs (Balance, Feral, Guardian)
- Switching away from Restoration now immediately clears all alerts and glows
- Zone transitions in an off-spec no longer cause stale alerts to appear

---

## v12.0.7 — April 5, 2026

### Options Panel

- Panel now themes dynamically per healer class (Druid orange, Priest white, Evoker teal, Shaman blue, Monk green, Paladin pink)
- Non-healer classes see a clear "Class Not Supported" overlay listing what is supported

---

## v12.0.6 — April 5, 2026

### Bug Fix

Fixed a crash in M+ and rated content caused by a WoW API change in patch 12.0.5.

---

## v12.0.5 — April 4, 2026

### New Features

**Wild Growth Ready alert** — shows when Wild Growth is off cooldown (combat only). Falls back to cast tracking in M+ and rated content where cooldown data is restricted.

**Reforestation / Tree of Life alert** — shows after your 3rd Swiftmend, reminding you the next one will proc Tree of Life. Hides automatically if you unspec the talent.

**Empowered Regrowth glow** — Regrowth icons on party frames glow when cast with Soul of the Forest active. Clears when overwritten by a normal Regrowth.

Alert display order updated: Tree of Life (top) → Wild Growth → Soul of the Forest → Lifebloom (bottom).

SOTF alert text changed from "CAST REJUV" to "SOUL OF THE FOREST."

Two new bundled sounds: Lamp and Redfox (15 total). All four alerts now have individual color pickers.

### Bug Fixes

- Numerous fixes for Wild Growth cooldown tracking, Reforestation talent detection, and Empowered Regrowth glow reliability
- Death now properly clears all alert state
- Test mode now shows all four alerts

---

## v12.0.4 — April 2, 2026

### Bug Fixes

- Test mode countdown timers now display correctly
- Options panel spacing fixed to match Nem: Pet Alerts layout

---

## v12.0.3 — April 2, 2026

### Performance

Major CPU reduction for raids and battlegrounds. Most noticeable when joining a 40-player group.

### Bug Fixes

- SOTF alert no longer gets stuck when the proc expires without casting
- Lifebloom icon glow now fires correctly when targeting an enemy
- Background ticker no longer runs after disabling the addon
- SOTF alert state clears properly when the alert is toggled off mid-session
- Fixed a crash during startup if glow cleanup ran before glow tables were created
- Alerts clear on death and re-evaluate on resurrect
- SOTF alert clears immediately on Rejuv cast
- Bell and Ping sounds now work without LibSharedMedia installed

---

## v12.0.2 — April 1, 2026

### Bug Fixes

- All alerts and sounds now work reliably in M+ and rated combat
- SOTF detection falls back to cast tracking when the aura API is restricted in combat
- SOTF timer starts immediately on Swiftmend cast
- SOTF alert persists when entering combat with the proc already active

### Slash Commands

Added: `/nha on`, `/nha off`, `/nha toggle`, `/nha status`, `/nha version`, `/nha reset`, `/nha unlock`

All commands also available via `/healeralerts` (and `/hotalerts` as a legacy alias).

---

## v12.0.1 — March 31, 2026

**Initial release** of Nem: Healer Alerts (originally Nem: HoT Alerts).

Restoration Druid support: Lifebloom pandemic tracking and Soul of the Forest proc alerts, with countdown timers, icon glows, configurable sounds, and a full options panel. Part of the Nem addon suite.
