# Warband Nexus — accumulated changes

This file records **uncommitted** work on the branch (including earlier local sessions) relative to the last pushed `origin/main` snapshot, until it is merged or released.

**Generated:** 2026-04-26  
**Approximate scope:** 41 tracked files changed (+3994 / −1447 lines); `scripts/` added (untracked until committed).

---

## v2.6.4 (2026-04-26) — release notes

- **CollectibleSourceDB / try counter:** Ashes of Belo'ren and L'ura source references adjusted (Mythic raid alignment).
- **Characters, Gear, PvE tabs:** Less delay when UI refreshes after data updates (snappier scheduling).
- **Misc:** Bug fixes and small stability tweaks (see `CHANGELOG_V264` in `Locales/enUS.lua` for the in-game What's New text).

---

## Version & packaging

- **`Modules/Constants.lua` / `WarbandNexus.toc`:** Current addon version **2.6.4**, release date **2026-04-26** (was 2.6.3 / 2026-04-21); includes internal event `WN_QOL_STATE_CHANGED` from the 2.6.3 cycle.
- **`Constants` data:** `DAWNCREST_UI` (column IDs, display names, PvE label keys for Gear/PvE UI alignment); `GEAR_ENCHANTABLE_SLOTS` for Midnight primary-enchant expectations (head, shoulder, chest, feet, rings, weapon-capable hands only).
- **`scripts/`:** `Pack-WarbandNexus.ps1`, `build_addon.ps1`, `check_locales.py`, changelog helpers (`bump_changelog_enUS.py`, `sync_changelog_non_enUS.py`, `propagate_changelog_v262.py`).
- **`.gitignore`:** build/pack artifacts and tooling-related ignores.

---

## Core & profile

- **`Core.lua`:** Default `tryCounterDropScreenshot` (auto `Screenshot()` on try-tracked collectible drop); toggle keybind **cannot be ESC** — invalid ESC bindings cleared on apply with a user message.

---

## Window manager & ESC / Settings

- **`Modules/WindowManager.lua`:** Documented rule: **only `hooksecurefunc` on `ToggleGameMenu`** — no global replacement (taint / protected-call safety). ESC handling: avoid closing two layers on one press (`_wnEscJustHandled` style coordination with Blizzard path). Optional **debug chat** (`[WN ESC]`, hypothesis tags) when Debug Mode is on. Settings panel edge cases (close order, propagation) instrumented for diagnosis.

---

## PvE cache & UI

- **`Modules/PvECacheService.lua`:** Large update — canonical character keys on read/write, M+ score merge when API returns zeros, Great Vault empty API not clobbering SV, import safety, keystone clear rules, `MYTHIC_PLUS_CURRENT_AFFIX_UPDATE`, logout persistence without full refresh (see in-game **`CHANGELOG_V263`** for user-facing bullets).
- **`Modules/UI/PvEUI.lua`**, **`PlanCardFactory.lua`**, **`PlansTrackerWindow.lua`:** PvE / vault UI wiring; Dawncrest columns use `Constants.DAWNCREST_UI`. (Great Vault “Ready” label for claimable rewards is documented under v2.6.2 / `CHANGELOG_V262`.)

---

## Currency & reputation caches

- **`Modules/CurrencyCacheService.lua`:** Substantial logic changes (Dawncrest/split currencies, notifications, meta validation, etc. — aligns with `CHANGELOG_V262` / `V263` themes).
- **`Modules/ReputationCacheService.lua`:** Expanded cache/merge behavior.
- **`Modules/ChatMessageService.lua`:** Queue and filtering refinements for WN-Currency / reputation lines.

---

## Gear

- **`Modules/GearService.lua`:** Service-side support aligned with enchant-slot policy.
- **`Modules/UI/GearUI.lua`:** Primary enchant warnings use **`GEAR_ENCHANTABLE_SLOTS`** + weapon equip-location check; paper doll / model layout and related drawing updates.

---

## Professions & recipe companion

- **`Modules/ProfessionService.lua`:** Extended profession handling.
- **`Modules/UI/RecipeCompanionWindow.lua`:** UI/behavior updates (schematic title craft count, etc., per changelog themes).

---

## Collections & try counter

- **`Modules/UI/CollectionsUI.lua`:** **`LayoutCollectionsSearchBar`** — search field spans full row when filter row is hidden (**Recent**); `hdrCache.searchBar`; relayout on sub-tab switch and header refresh.
- **`Modules/CollectionService.lua`**, **`CollectibleSourceDB.lua`**, **`TryCounterService.lua`:** Collection/source/try-counter adjustments.
- **`Modules/DataService.lua`**, **`EventManager.lua`**, **`Modules/UI/CharactersUI.lua`:** Related data/UI wiring.

---

## Settings & shell UI

- **`Modules/UI/SettingsUI.lua`:** Large update — key capture, combat rules, keyboard focus while settings open, options layout (per `CHANGELOG_V262` keybind/ESC narrative).
- **`Modules/UI.lua`**, **`Modules/SharedWidgets.lua`:** Supporting hooks/visuals.

---

## Commands, debug, notifications

- **`Modules/CommandService.lua`:** Command tweaks (e.g. `/wn keys` chat formatting).
- **`Modules/DebugService.lua`:** Extra diagnostics.
- **`Modules/NotificationManager.lua`:** Changelog / version wiring.

---

## Localization

- **`Locales/enUS.lua`:** New/updated strings and **`CHANGELOG_V263`** / **`CHANGELOG_V262`** bodies.
- **Other locales (`deDE`, `esES`, `esMX`, `frFR`, `itIT`, `koKR`, `ptBR`, `ruRU`, `zhCN`, `zhTW`):** Parity passes against enUS; run `scripts/check_locales.py` before release.

---

## Developer note

For **player-facing** text shown in-game (`/wn changelog`), keep **`Locales/enUS.lua`** `CHANGELOG_V<major><minor><patch>` in sync with **`Constants.ADDON_VERSION`** (e.g. 2.6.4 → `CHANGELOG_V264`; see `NotificationManager.VersionToChangelogKey`). This `CHANGES.md` is the **long-form developer log** for the whole working tree.
