e8e9969f91
The bar's icon, count and consumable getters, its aura notifies and GameTooltip:SetAction read a copy a feed resolved once a frame, so a call between two packets read the frame's last state. **Reference** - GetActionTexture, GetActionCount and IsConsumableAction read at the call (`0x4e6a50`, `0x4e6c70`, `0x4e5250`), with the counts at `0xbc6390` zeroed at game entry (`0x4e4f50`). - An item answer runs the bar's callback (`0x4e5b80` → `0x4e5c70`), firing ACTIONBAR_SLOT_CHANGED per slot. - An aura add or removal notifies its slot around its log line (`0x4e5de0`). - SetAction runs the cooldown query and attack test at the call (`0x5323a6`, `0x5323b4`). **Changed** - The getters and SetAction read through the host. - The callback rides the item cache's list. - The aura handlers notify in place. - `feed_actions` keeps only the engine's refusals and a new VM's seed. **Tests:** an item answer's slot event between its packets, the seed's counts, the aura notifies, SetAction inside its packet. Part of #2168. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>