Skip to content

Stop secret cooldown errors from remaining action-bar broadcasts - #2112

Open
dfrisone wants to merge 1 commit into
EllesmereGaming:mainfrom
dfrisone:fix/actionbar-secret-empower-review
Open

dfrisone wants to merge 1 commit into
EllesmereGaming:mainfrom
dfrisone:fix/actionbar-secret-empower-review

Conversation

@dfrisone

@dfrisone dfrisone commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Stops the remaining action-bar broadcaster events while cooldowns are secret. The existing full-to-press-and-hold fallback still permits ACTIONBAR_SLOT_CHANGED and PLAYER_ENTERING_WORLD to reach Blizzard's cooldown update path under addon taint, producing repeated secret-value SetCooldown errors. The guard now selects off for both active broadcaster modes.

This ports the runtime behavior of the user-confirmed actionbar-secret-cooldown test ZIP (original commit 0569cb3) onto current main. One file only; no new settings, APIs, timers, or polling.

How was it tested?

  • User confirmed the original ZIP fixed the reported cooldown error in game. Exact client build and test coverage were not recorded.
  • Extracted action-bar source matches original commit 0569cb3 after line-ending normalization. Full file compiles under Lua 5.1; diff-scoped style gate and git diff --check pass.
  • Draft: unresolved Evoker regression risk. Turning off the press-and-hold subset also removes native-button initialization events. Standard-bar empower keys still use native bindings; EUI's attribute reassertion updates its own buttons. Reloading or changing slots/talents in restricted content could leave native pressAndHoldAction stale. This is a source-review risk, not a reproduced client failure, and has not been fixed.
  • Before ready for review: test Evoker keyboard hold-and-release with Press and Hold Casting off, after restricted-content reload, slot/talent changes, and queued casts; compare mouse casts. Recheck original errors plus extra-action and vehicle cooldowns. Re-enabling tainted cooldown dispatch or switching to the previously problematic queued click path is not a verified solution.
  • Distribution ZIP was separately cleaned of repository metadata, with all retained files byte-identical. No ZIP or packaging changes are included in this source PR.

Screenshots

N/A: no intended visual change. No new in-game captures supplied.

Checklist

  • New settings default OFF (no behavior change without opt-in) - N/A: existing error-path correction; no setting added.
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built - no new registrations, hooks or frames; changes an existing guard.
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations) - same existing predicate call; removes event dispatch under secrecy.
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames - existing broadcaster registration changes operate on Blizzard-owned frames; this patch extends when they are unregistered. No new custom frame fields or script replacement, but full taint/regression acceptance remains unverified.
  • Tested in-game on live; no version gates or pre-Midnight APIs added - original error fix confirmed by user; exact build/live status and Evoker regression coverage unverified. No new APIs or version gates; Midnight 12.1+ scope retained.

@dfrisone
dfrisone marked this pull request as ready for review September 17, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant