promotional bannermobile promotional banner

HekiLight

Displays Blizzard's Rotation Assistant suggestions as a movable — the Hekili experience for Midnight 12.0+.
Back to Files

v0.6.6

File nameHekiLight-v0.6.6.zip
Uploader
meruukemeruuke
Uploaded
Aug 12, 2026
Downloads
5.8K
Size
40.2 KB
Flavors
Retail
File ID
8630887
Type
R
Release
Supported game versions
  • 12.1.0

What's new

HekiLight

v0.6.6 (2026-08-12)

Full Changelog

  • 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
  • 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
  • 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
  • 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
  • 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