v0.6.6
What's new
HekiLight
v0.6.6 (2026-08-12)
- chore: bump Interface to 120100 for WoW 12.1.0
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - docs(EPIC-11): mark Done — all stories shipped, DoD verified
Stories 11.1 and 11.2 complete. HekiLight.lua reduced 2883→2083 lines,
Settings.lua extracted, HekiLightST namespace with 21 keys, in-game
verified. DoD checkboxes updated with actuals.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - docs(ADR-1): amend single-file constraint superseded by EPIC-11
ADR-1 stated "single-file addon" but EPIC-11 (Story 11.2) introduced
Settings.lua as a second Lua file. Added amendment note pointing to
ADR-11-2 for load-order rules to keep the architectural record accurate.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - docs: update CLAUDE.md for EPIC-11 modularization
- File structure: add Settings.lua, update HekiLight.lua line count
- New HekiLightST section: 21 keys, local-alias pattern, how to add new keys
- Cross-chunk visibility rule: functions called across files must be globals
- Startup flow: reflect HekiLightST population step
- EPIC status: 1–11 Done
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- feat(EPIC-11): extract BuildSettingsPanel to Settings.lua (Story 11.2)
- New Settings.lua (833 lines): BuildSettingsPanel defined as a global
so HekiLight.lua's event handler can call it across the chunk boundary. - HekiLightST extended from 13 to 21 entries: DEFAULTS, MAX_SLOTS,
isEditMode (getter), EditModeRender, setSettingsCategory (setter),
GetSlotKeybind, SetMinimapShown, StopGlowPulse. - BuildSettingsPanel uses local aliases for all 21 shared names;
only two lines changed from the verbatim copy: editMode→isEditMode()
and the settingsCategory assignment via setSettingsCategory(). - HekiLight.lua: 2883→2083 lines (−800 lines removed).
- HekiLight.toc: Settings.lua added after HekiLight.lua.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- New Settings.lua (833 lines): BuildSettingsPanel defined as a global
- docs(planning): EPIC-12 ClassCodex integration + Story 11.2 draft
- PRD.md: add EPIC-11 and EPIC-12 to roadmap table
- EPIC-12.md: ClassCodex profile-aware rotation integration (5 stories:
data reader spike, CC resolver, settings section, slash commands,
Tier-1 condition evaluator); includes ADRs and feasibility research
findings from 2026-05-24 - 11.2.story.md: extract Settings.lua from HekiLight.lua (Ready,
depends on Story 11.1)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- feat(EPIC-11): introduce HekiLightST shared-state namespace (Story 11.1)
Adds HekiLightST = global at top of HekiLight.lua and populates its
13 keys (db, dbChar, display, slots, procAlertFrame, cachedRotSpells,
Refresh, Apply* functions, L) in the ADDON_LOADED handler after
BuildSlots() assigns procAlertFrame. Unblocks Story 11.2 (Settings.lua
extraction). Zero behavioral change; verified in-game with no Lua errors.
Implementation note: population placed in ADDON_LOADED rather than
InitDB() — Apply* functions and Refresh are declared after InitDB() in
the file and are out of scope there by Lua upvalue rules; procAlertFrame
is also nil until BuildSlots() runs.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - Merge pull request #20 from meruuke/feature/10.2-keybind-override-panel
feat(EPIC-10): per-spell keybind slot override — slash commands + settings UI - fix(EPIC-10): clean up Keybind Override UI — hide spellIDs, show icon in selected state
- Spell dropdown: remove [spellID] from list items and selected state;
show spell icon in selected state via |T...|t texture escape - Slot dropdown: show keybind key only, drop "Slot N ->" prefix
- Override list rows: show "Spell → key", drop [spellID] and slot number
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Spell dropdown: remove [spellID] from list items and selected state;
- docs(EPIC-10): wrap-up — story 10.1 changelog, stale EPIC-11 ref fix, story 10.3 QA, planning docs
- 10.1 Change Log: add Done entry (QA-1/QA-2 fixes noted)
- EPIC-10.md: replace stale 'EPIC-11' ref in Option C section with 'future story/epic'
(EPIC-11 is Settings Extraction, not the smart-slot heuristic) - Story 10.3: full QA results, completion notes, file list
- Story 10.2: status and QA notes updated
- EPIC-6/7/8.md, PRD.md: roadmap status housekeeping
- New: EPIC-11.md (Settings Extraction planning), Story 10.4 (Custom Label Capture)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- feat(EPIC-10): standalone Keybind Overrides settings section (Story 10.3)
- Remove all Story 10.2 ignoreSec additions: slotDD, pinBtn, slotHintLabel,
overrideRowPool, RefreshOverrideList, slotShift height logic - Revert RefreshIgnoreList to pre-10.2 form (ignoreListBaseY=-72, fixed
ignoreEmptyLabel, clean height formula, no ClearAllPoints) - Add dedicated kbSec/kbBody section after Ignored Spells via MakeSection
- kbSpellDD: live rotation spell population, ignored spells greyed/disabled
- kbSlotDD + kbPinBtn: show when spell has ≥2 non-RA slots; kbHintLabel
when <2 slots - RefreshKbOverrideList: icon + name + Slot→Key rows with Clear buttons,
empty label, dynamic kbBody height - kbSec expansion handler calls RefreshKbOverrideList on expand
- Locale.lua: add ptBR translation for section description string
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Remove all Story 10.2 ignoreSec additions: slotDD, pinBtn, slotHintLabel,
- fix(EPIC-10): replace box-drawing chars in override separator (WoW font compat)
U+2500 (BOX DRAWINGS LIGHT HORIZONTAL) is outside Friz Quadrata TT's
coverage — renders as tofu glyphs in-game. Replace with ASCII hyphens.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - fix(EPIC-10): refresh override list on ignore-add and spell-select (QA-1, QA-2)
addBtn OnClick and ignoreDD info.func now both call RefreshOverrideList()
after RefreshIgnoreList(). Fixes stale separator/override row positions
when the ignore count changes or slotDD visibility toggles (slotShift±30).
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - feat(EPIC-10): Settings panel keybind override slot picker (v0.6.5 Story 10.2)
Extends the Ignored Spells section with a slot-picker row that appears
when a spell with ≥2 non-RA bar slots is selected. "Pin keybind" stores
dbChar.keybindOverrides[spellID] = slotID. The Keybind Overrides sub-list
below the ignore list shows each pinned spell with its resolved key and a
Clear button. ignoreBody height accounts for slotShift and override rows.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - docs(10.1): fix QA-1 & QA-2 — add kb commands to PrintHelp and CLAUDE.md
QA-1: PrintHelp() now lists all four /hkl kb subcommands (slots, pin,
clear, list) so players can discover the feature via /hkl.
QA-2: CLAUDE.md slash commands reference table updated with kb family.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com - feat(EPIC-10): story 10.1 — per-spell keybind slot override via slash command
Adds dbChar.keybindOverrides[spellID] = slotID store so players can pin
which bar slot drives the keybind label for any spell on multiple bars.
Changes:- InitDB: initialise keybindOverrides table (mirrors ignoredSpells pattern)
- GetSpellKeybind: check override before iterating FindSpellActionButtons;
hit → cache + DLog source=override; miss → DLog source=override_miss + fallthrough - SlashCmdList: new /hkl kb branch with four subcommands:
kb slots <spellID> list all non-RA bar slots with their bindings
kb pin <spellID> <slot> set override, print resolved key
kb clear <spellID> remove override
kb list print all current overrides
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- docs(EPIC-10): add EPIC-10 and stories 10.1, 10.2 — keybind override feature
Introduces the Keybind Override epic with full story definitions:- EPIC-10: goal, ADRs (store slotID, dbChar, extend ignore section)
- Story 10.1: per-spell keybind slot override via slash command (Status: Ready → InProgress)
- Story 10.2: extend Ignored Spells panel with slot picker (Status: Ready)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Merge pull request #19 from meruuke/docs/close-epic-6-epic-13-backlog
docs: close EPIC-6 and add EPIC-13 logging observability backlog - docs: close EPIC-6 and add EPIC-13 logging observability backlog
- Mark EPIC-6 and story 6.1 Done — all AC confirmed in-game across all
Druid specs and non-shapeshifting classes (v0.6.5) - Add EPIC-13 and story 13.1 — per-character session log to prevent
log loss on character switch (discovered during EPIC-6 QA)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
- Mark EPIC-6 and story 6.1 Done — all AC confirmed in-game across all
- Merge branch 'master' of https://github.com/meruuke/HekiLight
- chore: bump TOC interface version to 120007 (patch 12.0.7) (#18)
Co-authored-by: HekiLight addon@hekilight.local
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
This mod has no additional files

