- CategorizeItems() keeps each item's category unless something it was
based on changed (item, bag/slot, bag type, count, charges, stock
state, tooltip). A full pass runs on window open, forced resort,
rebuilt lookup tables, character switch and any non-bag event.
- ActiveQuestItems: raise BAGSHUI_ACTIVE_QUEST_ITEM_UPDATE only when the
quest item list or counts changed, not after every QUEST_LOG_UPDATE.
- Item buttons: OnUpdate is set on mouse enter and removes itself after
the mouse leaves; the base template OnUpdate is cleared. Stock badges
are refreshed once a minute from the window's OnUpdate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH