Skip to content

v2.5.24

Choose a tag to compare

@github-actions github-actions released this 10 Oct 20:21
· 9 commits to main since this release

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.5.24] - 2026-10-10

Added (2.5.24)

  • A new options window, drawn in AHOS's own keycap art: a rail of pages with their own icons, one search box across every setting, a mark on every setting that differs from its default with a one-click revert, and four themes (Keycap, Keycap Gold, Class Color, Light) with opacity and scale.
  • A live preview at the top of the Display and Keybinds pages: four action buttons labelled exactly as AHOS would label them, with your own bindings for action buttons 1-4.
  • The Abbreviations page is a keyboard instead of 104 text boxes. Keys bound to an action button light up and show the text AHOS draws for them; Shift, Ctrl and Alt latch to show that layer. Clicking a key opens a card with its abbreviation, the command the game runs, any override an addon has put over it, and every action button (with its bar addon, spell and icon) that answers to the key, with a warning when two bar addons claim the same key.
  • Every key can now carry an abbreviation of its own, not only the 104 with a built-in default.
  • ESC > Options > AddOns > Advanced Hotkey Overlay System is now a landing page, as in AzeriteUI JuNNeZ Edition: the logo, the version, what AHOS is drawing on, and buttons into the options window or the classic one. Clients without the canvas Settings API keep the embedded Ace3 page.
  • /ahos classic opens the previous Ace3 window, which stays available and shows the same settings.
  • Tools/TestPanel.lua drives the options window against a mock client for every client TOC, and runs in CI.

Changed (2.5.24)

  • The Status page is now an overview: the quick switches and the minimap icon moved onto it, Debug Mode moved to Debugging, and Support joined About.

Fixed (2.5.24)

  • AHOS now ships AceDBOptions-3.0 itself. The Profiles page relied on another addon having loaded it, and the whole options table failed to build without one.
  • The minimap icon setting no longer counts as changed on a fresh profile.
  • Fonts shared through LibSharedMedia are only offered when their file actually loads, and a saved font that no longer loads falls back to the game's font instead of leaving the hotkey text blank.
  • Importing a profile string (Profiles > Import Profile Data) and a debug string works again. Both were called with a colon, so they read the addon itself as the text to import and always reported that no string was given.

[2.5.23] - 2026-10-10

Added (2.5.23)

  • WoW Forever support: new AdvancedHotkeyOverlaySystem_Camelot.toc (interface 16001). Works with the Forever builds of Dominos and AzeriteUI JuNNeZ Edition, which keep their Retail folder and button names.

Fixed (2.5.23)

  • Display and keybind modules no longer treat WoW Forever as a Classic client; client detection now honours the TOC flavor and WOW_PROJECT_ID before the interface number.

[2.5.22] - 2026-08-27

Fixed (2.5.22)

  • Updated Retail action-slot checks from the removed global HasAction fallback to C_ActionBar.HasAction.
  • Replaced the removed ActionButton_UpdateHotkeys global hook with hooks on the live UpdateHotkeys/SetHotkeys button methods used by Retail 12.1.
  • Added secret-value access guards for action attributes, frame visibility, names, text, hierarchy, anchors, and frame levels used by overlay discovery and diagnostics.
  • Handled ACTIONBAR_SLOT_CHANGED slot 0 as a full action-bar invalidation, matching Blizzard's current event contract.
  • Replaced deprecated specialization and raid-warning calls with C_SpecializationInfo and RaidWarningUtil.
  • Fixed hotkeys disappearing when toggling Mirror Native Hotkey Style by restyling active overlays in place and isolating per-button native-style failures.
  • Made full refreshes reconcile in place, preserving the last known-good overlay across transient empty scans and protected-button errors.
  • Restored native hotkey labels reliably on disable, cleanup, ElvUI suppression, profile changes, and slash-command toggles.
  • Prevented delayed visibility, fallback, and throttled update callbacks from recreating overlays after disable or cleanup.
  • Prevented options-panel initialization and appearance-only controls from triggering destructive overlay rebuilds.
  • Added a dedicated Abbreviations tab with profile-specific editors for modifiers, mouse buttons, numpad, function keys, special keys, and gamepad inputs.
  • Added live abbreviation previews, per-entry default restoration, and a reset-all action without requiring /reload.
  • Fixed bindings on the hyphen key losing their base key, which rendered - as a blank overlay and CTRL-- as just C.
  • Added abbreviations for the named gamepad tokens (d-pad, shoulders, triggers, stick clicks and directions, paddles, system buttons) so controller binds no longer show truncated raw tokens such as CSPA.
  • Stopped recapturing AHOS's own overlay label as the "original" Blizzard hotkey text, which could make an abbreviation stick permanently to a button.
  • Cleared pooled overlay labels on release so a recycled overlay can never show the previous button's keybind.

Changed (2.5.22)

  • Migrated add-on enumeration and metadata diagnostics to C_AddOns, with Classic-compatible fallbacks.
  • Updated Retail TOC compatibility through Midnight 12.1.0 (120100).
  • Bumped all TOC version metadata and README highlights to 2.5.22.

2.5.21 - 2026-05-03

Fixed (2.5.21)

  • Fixed AzeriteUI dragonflying dismount transitions where several keybind overlays could disappear until combat or another bar-state refresh.
  • Added AzeriteUI :Keybind click-route binding resolution so overlays follow AzeriteUI's dynamic dragon/bonus action bar routing.
  • Made keybind caching state-aware for reused action button names during action, page, and binding-route swaps.
  • Prevented transient empty action-slot reads from removing AzeriteUI overlays when a stable keybind still resolves.

Changed (2.5.21)

  • Added UPDATE_BONUS_ACTIONBAR refresh handling for dragonflying and bonus-bar state changes.
  • Bumped all TOC version metadata to 2.5.21.
  • Updated README version highlights for 2.5.21.

2.5.20 - 2026-04-26

Fixed (2.5.20)

  • Fixed Bartender4 detection and binding resolution so AHOS can discover all Retail Bartender action bars instead of only bar 1.
  • Added LibActionButton binding target support for action bar addons that expose GetBindingAction, keyBoundTarget, or configured click-binding buttons.
  • Added Retail extra-bar binding mappings for Blizzard/Dominos-style bars 5, 6, and 7.

Changed (2.5.20)

  • Expanded local compatibility coverage for Dominos Retail native-style buttons, AzeriteUI5 JuNNeZ Edition bars 1-8 plus pet/stance bars, DiabolicUI2/3 aliases, and GW2_UI-style native Blizzard bars.
  • Bumped all TOC version metadata to 2.5.20.
  • Updated README and CurseForge compatibility notes for 2.5.20.

2.5.19 - 2026-03-26

Fixed (2.5.19)

  • Removed invalid PLAYER_BINDING_CHANGED, PLAYER_ENTERING_VEHICLE, and PLAYER_EXITING_VEHICLE registrations that now error on WoW 12.0.1.
  • Fixed LibKeyBound-1.0 callback registration in modules/Core.lua by using the correct RegisterCallback call form.

Changed (2.5.19)

  • Standardized binding and vehicle refresh logic on valid modern client events already supported by the addon.
  • Bumped all TOC version metadata to 2.5.19.
  • Updated README version highlights for 2.5.19.

2.5.18 - 2026-03-21

Fixed (2.5.18)

  • Fixed remaining missing keybind overlays when exiting DynamicCam mount camera mode directly into combat by retrying button recovery until the buttons become effectively visible again.

Changed (2.5.18)

  • Extended delayed combat and bar-state refresh passes to cover longer asynchronous mount-to-combat UI restores.
  • Bumped all TOC version metadata to 2.5.18.
  • Updated README version highlights for 2.5.18.

2.5.17 - 2026-03-07

Fixed (2.5.17)

  • Fixed intermittent missing overlay text after mount/combat transitions (with or without DynamicCam) by hooking action-button OnShow and reapplying overlays when buttons become visible again.

Changed (2.5.17)

  • Added per-button visibility recovery logic in modules/Display.lua with queued and delayed update passes after OnShow.
  • Bumped all TOC version metadata to 2.5.17.
  • Updated README version highlights for 2.5.17.

2.5.16 - 2026-03-07

Fixed (2.5.16)

  • Fixed a mount-to-combat refresh gap where overlays could miss some keys after DynamicCam-style UI hiding by triggering bar-state refresh passes on combat and mount display transitions.

Changed (2.5.16)

  • Extended modules/Core.lua bar-state event coverage with PLAYER_REGEN_DISABLED, PLAYER_REGEN_ENABLED, and PLAYER_MOUNT_DISPLAY_CHANGED.
  • Bumped all TOC version metadata to 2.5.16.
  • Updated README version highlights for 2.5.16.

2.5.15 - 2026-03-07

Fixed (2.5.15)

  • Fixed overlays not returning automatically after possess/vehicle/override bar transitions by adding robust bar-state refresh handling with delayed passes.

Changed (2.5.15)

  • Added a consolidated HandleBarStateChanged refresh path in modules/Core.lua.
  • Expanded event coverage for action-bar state swaps (UPDATE_OVERRIDE_ACTIONBAR, UPDATE_VEHICLE_ACTIONBAR, vehicle enter/exit events, and possess-related updates).
  • Bumped all TOC version metadata to 2.5.15.
  • Updated README version highlights for 2.5.15.

2.5.14 - 2026-03-07

Fixed (2.5.14)

  • Reworked overlay frame layering so Dominos/native-style overlays no longer force TOOLTIP strata or extreme frame-level bumps that could cover other addons (e.g., BetterBags).

Changed (2.5.14)

  • Added a new Display option: Smart Frame Layering.
  • Made Smart Frame Layering opt-in (disabled by default) and treated unset legacy profiles as disabled.
  • When Smart Frame Layering is enabled, overlays inherit parent-button strata and use a minimal frame-level offset to stay scoped to action bars.
  • Manual strata/frame-level controls are now clearly marked as manual overrides and are disabled while Smart Frame Layering is enabled.
  • Bumped all TOC version metadata to 2.5.14.
  • Updated README version highlights for 2.5.14.

2.5.13 - 2026-03-07

Added (2.5.13)

  • Added provider-registry based integrations for Bartender4 and DiabolicUI, including button discovery and provider-aware diagnostics.
  • Added a verify-toc-targets validation step to the GitHub release workflow.

Fixed (2.5.13)

  • Fixed a secure/secret string comparison taint error in modules/Display.lua hotkey-region anchor checks by guarding anchor comparisons.
  • Fixed provider hotkey-refresh hooks to use each provider's configured update method instead of a Dominos-only path.

Changed (2.5.13)

  • Refactored UI detection, button scanning, keybind resolution, and options diagnostics around a shared provider model.
  • Updated support messaging and settings visibility rules for provider-specific options.
  • Bumped all TOC version metadata to 2.5.13.
  • Refreshed README and CurseForge release notes for the provider/taint-fix release.

2.5.12 - 2026-03-02

Fixed (2.5.12)

  • Fixed Dominos keybind resolution by preferring the button commandName and explicit Dominos hotkey bindings before generic Blizzard action remaps.
  • Hooked Dominos button UpdateHotkeys refreshes so overlays reapply when Dominos rewrites native labels.
  • Replaced another taint-prone top-right anchor heuristic in keybind label discovery with a protected-safe point check.

Changed (2.5.12)

  • Modernized the in-game options panel with new Status, Compatibility, Support, and Debugging sections and removed stale compatibility claims.
  • Narrowed direct support messaging to Blizzard, AzeriteUI, and Dominos, with ElvUI kept as conflict-aware handling only.
  • Updated package ignores to exclude development-only templates, tests, and library docs from release archives.
  • Updated Retail TOCs to 110107, 110200, 120000, 120001, Mists TOC to 50500, 50501, 50503, and Vanilla TOC to 11508.
  • Bumped all TOC version metadata to 2.5.12.
  • Refreshed README and CurseForge release notes for the Dominos/options/TOC-target release.

2.5.11 - 2026-03-01

Fixed (2.5.11)

  • Added a taint-safe anchor helper in modules/Display.lua hotkey region heuristics.
  • Replaced direct GetPoint(1) anchor string comparisons with protected-safe checks to prevent taint compare errors on secure buttons (e.g., ExtraActionButton1).

Changed (2.5.11)

  • Bumped all TOC version metadata to 2.5.11.
  • Refreshed README and CurseForge release notes for the taint-fix release.

2.5.10 - 2026-02-27

Fixed (2.5.10)

  • Corrected the GitHub release workflow PowerShell invocation so tag builds no longer fail on startup.
  • Added the missing verify-version.ps1 and verify-changelog.ps1 scripts expected by the release workflow.

Changed (2.5.10)

  • Bumped all TOC version metadata to 2.5.10.
  • Refreshed README and CurseForge release notes for the packaging hotfix release.

2.5.9 - 2026-02-27

Fixed (2.5.9)

  • Restored the Retail and Mainline TOCs to WoW 12 compatibility by setting their interface target to 120000.
  • Preserved the explicit CallbackHandler-1.0, LibDataBroker-1.1, and real LibDBIcon-1.0 load order required for packaged builds.

Changed (2.5.9)

  • Bumped all TOC version metadata to 2.5.9.
  • Refreshed README and CurseForge release notes for the WoW 12 compatibility package.

2.5.8 - 2026-02-27

Fixed (2.5.8)

  • Loaded CallbackHandler-1.0 before AceConfig, AceEvent, and LibSharedMedia to stop startup failures in packaged builds.
  • Loaded LibDataBroker-1.1 and the real LibDBIcon-1.0 implementation explicitly instead of relying on a later embed entrypoint.
  • Restored addon initialization so Config, Options, and Core no longer fault after Ace library startup errors.

Changed (2.5.8)

  • Bumped all Retail, Mists, and Vanilla TOC versions to 2.5.8.
  • Refreshed release notes in README and CurseForge docs to match the current release contents.

2.5.3 - 2025-09-14

Fixed (2.5.3)

  • Locales: Prevent "attempt to index local 'addon' (a nil value)" by decoupling locale files from addon scope and using a shared global table consumed by the addon at init.
  • Retail (AzeriteUI): Filter placeholder square/bullet glyphs on unbound buttons; strengthen native hotkey suppression safeguards.

Changed (2.5.3)

  • Tooling: Replaced failing lua -p VS Code task with a robust PowerShell-based sweep using luac -p or assert(loadfile(...)) fallback. Set as default build lint task.
  • Documentation: README highlights updated for 2.5.3.

2.5.2 - 2025-09-14

Added (2.5.2)

  • Options: Font outline styles (NONE/OUTLINE/THICKOUTLINE/MONOCHROME combos) with legacy fallback retained.

Fixed (2.5.2)

  • Classic: Avoid registering PLAYER_BINDING_CHANGED; gate the event to Retail only using WOW_PROJECT_ID with build fallback.

Added

  • Retail + Classic compatibility in one build; Classic-safe keybinding resolution for ActionButton, BonusActionButton, MultiBars, Stance, Pet, and Possess.
  • Hooks to ActionButton_UpdateHotkeys and MultiActionBar_Update to keep native labels hidden while overlays are active.

Changed

  • Multiple delayed overlay refreshes after binding changes (Dominos/LibKeyBound) to avoid reload requirements.
  • Simplified in-game settings UI by removing unused modules; retained single JUI module.

Fixed

  • Dominos keybinding mode no longer causes native hotkey text to reappear until reload on Classic.

2.5.1 - 2025-09-14

Added (2.5.1)

  • Deep scan for nested hotkey FontStrings (e.g., AzeriteUI TextOverlayContainer) to ensure reliable detection and suppression.
  • New debug commands: /ahos dumphotkey and /ahos dumplayers for targeted troubleshooting.

Changed (2.5.1)

  • Overlay frame level bump to render above nested overlay containers and Masque/AzeriteUI skins.
  • Refined native hotkey suppression hooks with safer Show/SetText guards.

Fixed (2.5.1)

  • Classic: Register PLAYER_BINDING_CHANGED on Retail only to prevent errors on Classic.
  • Retail (AzeriteUI): Removed placeholder square/bullet glyphs on unbound buttons by disabling visual fallback on Retail and filtering fallback glyphs in the visual reader.
  • Dominos: Improved overlay visibility without requiring reload; ensured native labels stay hidden when Dominos keybinding mode ends.

2.4.2 - 2025-09-03

Fixed (2.4.2)

  • Prevent duplicate Blizzard options category registration by stabilizing app name and checking existing entries.
  • Avoid hard errors if AceConfigDialog loads late; /ahos always registers.

Added (2.4.2)

  • Embedded AceGUI-3.0 and wired AceConfig-3.0 Dialog when embedded libs are present.
  • /ahos version command.

Changed (2.4.2)

  • Options/About panels now read Version from TOC metadata; removed hardcoded version strings.
  • Clarified IconTexture path to media/logo.tga.

2.4.1 - 2025-06-24

Added (2.4.1)

  • Debug log window and /ahoslog command for viewing/copying all debug output.
  • /ahos inspect <ButtonName> command to print debug info for any action button.
  • Advanced profile management: export/import, auto-switch by spec, copy/reset, and print profile tools in the Profiles Management tab.

Changed (2.4.1)

  • Updated documentation and versioning for 2.4.1.
  • Polished options panel and help sections for new features.

2.4.0 - 2025-06-24

Added (2.4.0)

  • In-game changelog and version info tab
  • Debug export window and /ahos debugexport command
  • LibSerialize/LibDeflate support for profile export
  • Help & Debugging tab in options

Changed (2.4.0)

  • Updated documentation and versioning for 2.4.0
  • Many bugfixes and polish

2.3.0 - 2025-06-23

Modernization & Polish

  • Modernized and cleaned up all options panel registration and naming logic
  • No more color codes or icons in the options panel or .toc metadata
  • Only one options panel is registered, with robust error handling
  • Minimap/DataBroker icon and Blizzard options panel now always show the correct, user-friendly name
  • ElvUI compatibility and user prompt logic improved
  • Legacy and duplicate code removed for reliability
  • All overlays and minimap icon logic now robust and error-free

2.2.0 - 2025-06-22

Added (2.2.0)

  • Full Ace3 profile management UI (copy, delete, switch, robust handling).
  • Overlay settings (font, color, etc.) now update instantly on profile or option changes.
  • Lock/unlock feature: /ahos lock greys out all options and prevents changes; attempting to change settings while locked shows a high-strata popup with unlock prompt.
  • StaticPopup dialog for unlocking settings, with Yes/No options.
  • Debug-only button to delete all profiles except the current one.

Changed (2.2.0)

  • Only Ace3 profile management UI is used (custom profile UI removed).
  • Improved error handling for profile changes and minimap icon registration.
  • Versioning and documentation updated for 2.2.0.

Fixed (2.2.0)

  • No more duplicate options panel errors.
  • Profile deletion and switching is now robust and bug-free.
  • Minimap icon unregister errors resolved.
  • Settings lock now actually prevents changes in the options panel.

2.1.0 - 2025-06-22

Added (2.1.0)

  • Themed enable message with color-coded branding and version.
  • Debug messages now only appear when debug mode is enabled.
  • Improved overlay removal and Blizzard hotkey text restoration logic.
  • Consistent debug/info/error print handling across all modules.

Changed (2.1.0)

  • Minimap icon logic and event handling improved for reliability.
  • Codebase refactored for maintainability and extensibility.

Fixed (2.1.0)

  • Debug messages no longer spam chat in normal mode.
  • Overlay and hotkey text restoration now works as expected on disable and minimap toggle.

2.0.0-alpha - 2025-06-22

Major Overhaul

  • Complete rewrite and modularization of the codebase for maintainability and extensibility.
  • Robust event-driven overlay update logic restored and improved.
  • ConsolePort-style keybind abbreviation logic: condensed, customizable separator, gamepad/mouse support.
  • Overlay frame strata control and improved minimap icon handling.
  • Options panel fully revamped: professional About/Credits, version display, and live UI detection.
  • All taint, nil, and registration errors eliminated.
  • Standardized AceConfig registration and config panel references.
  • Added user option for modifier separator in abbreviations.
  • Improved debug output and troubleshooting tools.
  • Full support for Blizzard, AzeriteUI, and custom action bars.
  • Titan Panel integration removed for simplicity; minimap icon is now the sole launcher.

Fixed (2.0.0-alpha)

  • Modifier parsing and abbreviation bugs.
  • Overlay update and taint issues.
  • Nil and registration errors.
  • Keybinding detection for all supported UIs.

1.0.0 - 2024-06-17

Added (1.0.0)

  • Initial release of Advanced Hotkey Overlay System (AHOS).
  • Basic overlay system for Blizzard action bars.
  • Simple keybind abbreviation logic.
  • Minimap icon and options panel access.