v0.4.1
Quiver
v0.4.1 (2026-06-01)
Full Changelog Previous Releases
- v0.4.1: Bug fixes, sound alerts, and tracking indicator
- Fix ghost clicks on hidden orbit buttons (blocker frame was incorrectly hidden)
- Fix aspect badge not hiding when no badge icon is set
- Fix right-click macro firing alongside Revive Pet when pet is dead
- Fix orphaned tracking call on sphere rebuild
- Add sound alerts for low ammo and unhappy pet (configurable in settings)
- Add tracking indicator icon on tracking orbit button
- Add busted test suite (35 tests across Ammo, Aspects, Pet, Traps)
- Add busted test suite: 35 tests across Ammo, Aspects, Pet, Traps modules
Includes wow_stubs.lua and loader.lua for sandboxed WoW API simulation.
All global overrides use _G.X to work correctly under busted's setfenv sandboxing.
Co-Authored-By: Lawrence Rabbets lrabbets@gmail.com - Sounds, tracking indicator, and config panel toggles
Sounds:- Ammo low: plays sound kit 8959 (raid warning bell) when crossing threshold
- Pet unhappy: plays sound kit 618 when happiness drops to 1
- Both gated behind db.profile.sounds.* so the setting actually works
- Add PlaySound/SOUNDKIT to luacheckrc
Config panel: - Add "Sound alert when ammo is low" checkbox
- Add "Sound alert when pet is unhappy" checkbox
- Expand panel height to fit three notification rows
Tracking indicator: - Tracking:UpdateTracking() now calls Sphere:UpdateTrackingIndicator()
- UpdateTrackingIndicator() updates QuiverBtn_tracking icon with the
texture path from GetTrackingTexture() so the orbit button always
reflects the active tracking type at a glance - Falls back to Track Beasts hint icon when no tracking is active
- Add luacheck, fix four code-review bugs, clean up warnings
luacheck setup:- Add flake.nix dev shell (lua5_1 + luacheck)
- Add .luacheckrc with full WoW API globals list
Code review bug fixes: - Sphere: add /stopmacro guard before user rightMacro in pet-emergency
macro so it doesn't fire alongside Revive Pet when pet is dead - Menus: restore blocker:Show() in PopulateMenu and HideAll so alpha=0
orbit buttons don't ghost-fire their macros (blocker at DIALOG strata
intercepts clicks; alpha=0 alone does not) - Menus: hide swap badge when GetSpellInfo returns nil icon to prevent
stale texture from a previous aspect pair staying visible - Menus: call UpdateOnClick() after RebuildAll() in the rebuildPending
path, matching the non-combat SPELLS_CHANGED handler
Luacheck warning cleanup (0 warnings / 0 errors): - Remove empty if shells around commented-out sound calls (Ammo, Pet)
- Remove unused INDICATOR_SIZE constant (Sphere)
- Rename unused castGUID arg to _ (AutoShot)
- Rename self in SetScript callbacks to frame/_ to eliminate shadowing
- Fix post-flight pet feed icon, sphere right-click macro, and orphaned tracking call
- Feed orbit button now shows Feed Pet icon when no pet is summoned
- Sphere right-click macro rebuilt on SPELLS_CHANGED so Call Pet guard
is set after spell book populates (fixes wrong action firing after landing) - Pet PLAYER_ENTERING_WORLD moved to raw frame to avoid AceEvent collision
with Menus overwriting the handler - Remove orphaned UpdateTrackingIndicator call in Tracking.lua