# SpellSmasher changelog

All notable addon releases. Newest first.

## 4.2.1 — 2026-08-04

- Mash key **1–0** and bottom helpers (**AA / RT / DEF / Shift**) clearly show
  the chosen / On state (green border + green-tinted button face).

## 4.2.0 — 2026-08-04 (CurseForge UI refresh)

**Extensive in-game UI update** — window chrome, art, and Edit layout overhauled
while product rules stay the same (one mash list, Apply overwrites current N
loadout, SpellSmasher brand only in public text).

### Look & feel
- **Dialog metal shell** with SpellSmasher green edge (not flat web panels)
- **Panel background art** from brand S logo (`Media/panel-bg`)
- **Header logo** (`Media/logo`) top-left; title + version + tagline **centered**
- **Classic Blizzard buttons** (`UIPanelButtonTemplate` / close button)
- Brand colors on labels (green / blue / gold), not neon web fills
- Esc closes the main window (`UISpecialFrames`)

### Edit tab — spell list
- **Parchment sequence rows** (`Media/seqbar`) with worn dark edges
- Readable black ink on paper; selected row soft green wash
- Step **numbers colored by mode** (Once = gold, In order / Rev Pri = blue,
  Priority = green) — no left accent lines
- SPELL LIST header fits width (count + selected name, truncates cleanly)
- Shorter mode legend line under the list header

### Edit tab — talents
- Full-width **loadout string** under the Method loadout hint
- Action buttons **under** the string: Best · Method · **Mine** · Apply · Copy
- “From me” renamed to **Mine**

### Media (shipped)
- `Media/logo` — header brand mark  
- `Media/panel-bg` — main window wallpaper  
- `Media/seqbar` — spell-row parchment  

### Unchanged product
- One mash list; Priority triangle / Rev Pri / Once / In order  
- Apply overwrites the loadout already selected in N (no new name)  
- Copy → Import still creates a new loadout name  
- Pack format `!SpellSmasher!` site parity  

---

## 4.1.x — 2026-08-04 (UI iteration)

Incremental UI work leading to 4.2.0 (parchment rows, logo, Mine, layout).

## 4.0.89 — 2026-08-04

- Sequence bars: early parchment experiments (superseded by 4.2.0 `seqbar`).

## 4.0.88 — 2026-08-04

- Sequence rows use a **real parchment page image** (`Media/seq-page.png`)
  matched to Adventure Guide paper pages (not flat gold achievement bars).
- Black ink text kept for readability; selected row soft green wash on paper.

## 4.0.87 — 2026-08-04

- Sequence rows: back to **4.0.85 light parchment/leather** look.
- Text only fix: pure **black ink** + light halo shadow (was muddy brown).

## 4.0.86 — 2026-08-04

- Dark leather experiment (reverted look in 4.0.87; kept as reference only).

## 4.0.85 — 2026-08-04

- **Edit sequence blocks:** first leather pass (replaced readability in 4.0.86).

## 4.0.84 — 2026-08-04

- **Classic WoW buttons:** every themed control uses `UIPanelButtonTemplate`
  (old stone Options/OK look). Close uses `UIPanelCloseButton`.
  Brand colors only on label text (green / blue / red), not custom fills.

## 4.0.83 — 2026-08-04

- **Real image panel background:** uses `Media/panel-bg.png` (your S logo art)
  stretched inside the dialog — no more color-blob “swirl” layers.
- Header still uses `Media/brand-mark.png`.

## 4.0.82 — 2026-08-04

- (Replaced in 4.0.83) Experimental multi-layer color washes — looked bad.

## 4.0.81 — 2026-08-04

- **Real WoW backdrops on everything:** no more solid SoftFill covering textures.
  Cards, buttons, tabs, rows, bars, edit wells, coach, and popups use
  `UI-Tooltip-*` / `UI-DialogBox-*` backdrops (same family as game UI).
- Brand colors only **tint** the real textures (green/blue borders, navy wash).

## 4.0.80 — 2026-08-04

- **UI chrome overhaul (branded WoW look):** outer dialog metal frame, tooltip-edge
  panels/cards/buttons, header strip with **S** mark, Esc-to-close.
- Structure uses Blizzard edge textures; **colors stay SpellSmasher** navy / green
  `#3dd68c` / blue `#6c8cff` (not generic gold shell).
- Click feedback sound on themed buttons; mash button chrome uses panel edge.
- Developed in Desktop `SpellSmasherUpdate` working tree.

## 4.0.79 — 2026-08-03

- Docs only: coach, Apply tip, and create-pack messages state clearly that
  **Apply overwrites the loadout already selected in N** and does not create a new named loadout.
  Copy → Import remains the path for a new loadout name.

## 4.0.78 — 2026-08-03

- Screen recording fix: after 60 buys Blizzard shows red **"spend all talent points"**
  with grey **Apply Changes** even when headers show 0/0. We no longer claim "committed"
  unless staged work is actually clear; use currency free budget + CanChangeTalents.
- If purchase stages but cannot commit: **Rollback** → **ImportLoadout(entries)** fallback.
- CommitConfig tries both no-arg and configID forms.

## 4.0.77 — 2026-08-03

- After Method buys: aggressively spend **leftover free points** (last choice nodes)
  and re-Commit until clean. Fixes stuck yellow **Apply Changes** when Spec shows 1 free.
- Clearer chat if N still needs a final Apply Changes click.

## 4.0.76 — 2026-08-03

- Fix Apply **0 buys** (level 70 screenshot): `CanPurchaseRank` needs
  `(configID, nodeID, nodeEntryID)` — 2-arg call always failed and blocked every
  PurchaseRank. Now passes entryID; if gate unknown, tries purchase directly.
- If multipass still buys 0: fallback to proven **ImportLoadout(entries)** path.

## 4.0.75 — 2026-08-02

- **Apply restored (purchase path).** One click: auto Best/Method if needed, then
  ResetTree + multipass CanPurchaseRank/SetSelection along Method entries for **your**
  point budget. Leftover free points spent so Commit is not blocked. No unique-name
  ImportLoadout spam under max level.
- Level max / From me: full ImportLoadout path unchanged.
- Copy remains fallback if 0 purchases.

## 4.0.74 — 2026-08-02

- **Removed talent Apply button.** Auto ImportLoadout was too brittle across levels and wasted time.
  Talents are **Copy only**: Best/Method/From me  >  **Copy**  >  **Ctrl+C**  >  press **N**  >  Import  >  paste.
- Coach Step 9 and talent button tips updated to match. No more auto-apply thrashing.

## 4.0.71 — 2026-08-02

- Fix List after Delete: deleted packs stayed visible until toggling This class / All packs.
  Cause: list rows are sparse under class filter; hide used `ipairs` which stops at the first hole. Now uses `pairs` and drops orphan row indices.

## 4.0.73 — 2026-08-02

- Re-Apply under 90: same **ImportLoadout entries** path that worked once (75/75 at 70), but with a
  **unique loadout name every click** (`SSM Pack 1`, `SSM Pack 2`, …) so re-Apply is not blocked by
  an existing name/config. Requires 0 free points. Delete old SSM loadouts in N if at max.

## 4.0.72 — 2026-08-02

- TLM ResetTree purchase attempt (superseded if ImportLoadout unique-name is more reliable).

## 4.0.70 — 2026-08-02

- First working Level 70 Apply via ImportLoadout 75/75 (Blizzard entry decode).

## 4.0.69 — 2026-08-02

- Temporary honest stub under 90 (superseded by 4.0.70 Blizzard-path import).

## 4.0.67 — 2026-08-02

- Refund/commit experiments (superseded by 4.0.69 honest under-90 behavior).

## 4.0.66 — 2026-08-02

- Tried spend-before-reset; ResetTree still hit Blizzard spend-all popup for some players.

## 4.0.64 — 2026-08-02

- Apply under 90 **never calls ImportLoadout**.
- Under 90: reset → buy Method ranks → spend leftovers → CommitConfig only.

## 4.0.63 — 2026-08-02

- Attempted spend-all before ImportLoadout; still blocked by Blizzard unspent-point rule on import.

## 4.0.62 — 2026-08-02

- Apply under 90 uses **From me proof**: snapshot live tree → fill Method only via CanPurchaseRank →
  **GenerateImportString** (points-valid) → ImportLoadout that string (same as paste worked at 70).
- Never imports full Method CUk under 90. On Method-fill failure, restores snapshot.
- Apply button enabled from level 10+ (not grey until 80).

## 4.0.61 — 2026-08-02

- Apply greyed under 80 (superseded by 4.0.62 From-me-style path for all talent-tree levels).

## 4.0.60 — 2026-08-02

- Restored **level 80 Apply path** (4.0.56): decode Method CUk → reset → multi-pass **CanPurchaseRank only** → commit → name loadout.
- Still **off**: ImportLoadout(entries) + binary-search (crash-prone 4.0.57).
- **80–89** Method Apply = partial purchase. **90** = full import. **Under 80** = message (From me / hand pick).

## 4.0.59 — 2026-08-02

- **Emergency:** disabled under-90 auto talent spend after ACCESS_VIOLATION report.
- Superseded by 4.0.60 restore of the quieter level-80 purchase path only.

## 4.0.58 — 2026-08-02

- Apply under 90 auto-runs Best/Method first (no need to remember Best), then spends your level's points.
- Coach + button tips document: under 90 → Apply (Best optional); 90 → full Apply; From me = live tree only.

## 4.0.57 — 2026-08-02

- Apply uses **your live talent point budget at any level** (70, 80, 89…), not a fixed 80–90 assumption.
- Reads free points from Blizzard currency APIs, greedily keeps Method nodes that fit, one named ImportLoadout of only those entries.
- Screenshot fix: level 70 was detected but 0 nodes spent — now spends what level 70 actually has.

## 4.0.56 — 2026-08-02

- Partial Apply quieter: only PurchaseRank when CanPurchaseRank (stops "Unable to learn talent" spam).
- Partial Apply names the loadout (e.g. SSM YourPack) via points-valid export of what you actually got.

## 4.0.55 — 2026-08-02

- Fix: under level 90, Apply never calls Blizzard ImportLoadout with the full Method CUk (that was the "must have enough talent points" error).
- Under 90: multi-pass partial purchase only; no Copy/paste of full Method string.
- Level 90 / From me: full import unchanged.

## 4.0.54 — 2026-08-02

- Apply talents is level-aware (Midnight 80-90):
  - Level 90 / From me: full Blizzard loadout import (unchanged).
  - Level 80-89 Method/Best: same Method package, spend only the talent points you have; level up and Apply again for more.
- New SSM_TalentLevel.lua (decode CUk + live purchase). Does not change mash/compile/lists.

## 4.0.53 — 2026-08-02

- Full step-by-step in-game tour (10 steps) walks List, New pack, Import, Edit, modes, tools, helpers, talents, bind/mash.
- Tour docks beside the UI and switches tabs as you go.
- Skip / Off / Finish stop auto-show; Help or `/ssm help` restarts anytime.

## 4.0.52 — 2026-08-02

- Once mode: once per combat (fires, then skipped until leave combat).
- Secure mash stability: do not call unit APIs inside restricted wrap scripts.
- Hero talent paths: two paths per spec; Method + Engine hero keys; pack field `heroTalent`.
- Edit UI: mode group headers and spacing (Once / In order / Priority).
- ASCII-only UI strings; list labels `* ACTIVE` / `* export`.
- Coach + help: Once explained as once per combat; `/reload` after updates is enough.
- Personal License shipped in package; listing metadata (website, email, license).

## 4.0.51 — 2026-08-02

- ASCII-only UI strings (remove Unicode tofu boxes in WoW fonts: middots, arrows, bullets).
- List pack labels use `* ACTIVE` / `* export` instead of broken glyphs.
- Full Personal License + listing package files.

## 4.0.50 — 2026-08-02

- Fix empty-box bullets next to ACTIVE / export on List tab.

## 4.0.49 — 2026-08-02

- In-game coach: Once = per combat explained on Welcome + Modes pages.
- Note that `/reload` is enough after updates (no full game exit required).

## 4.0.48 — 2026-08-02

- **Once mode = once per combat engagement** (skip after fire).
- Resets on leave combat, retarget (new enemy GUID), and recompile.
- Secure skip logic; works in combat for retarget reset.

## 4.0.47 — 2026-08-02

- Theme-style mode group headers + spacing between Once / In order / Priority blocks in Edit.

## 4.0.46 — 2026-08-02

- Coach guide text ASCII-only (fix Welcome empty squares).

## 4.0.45 — 2026-08-02

- Hero talent paths: 2 heroes per spec, Method + Engine packs.
- New pack hero chips; `heroTalent` on pack import/export.
- HeroPaths registry (research-backed Midnight paths).

## 4.0.44 and earlier

- Clean 4.x rewrite: sequence-only mash, priority triangle, reverse priority.
- Method + SpellSmasher Engine rebuild, Method CUk loadouts.
- Import/export `!SpellSmasher!1!…` packs (site parity).
- Easy helpers AA / RT / DEF (default Off).
- In-game multi-page coach (Help / `/ssm help`).
- Talent Apply / Copy, Best for list, From me.
- Loadout-honest product model; one pack from aoeSteps default.
