5d1f7ad395
The action bar's state getters and cooldown queries answered from a copy the feed refreshed once a frame, so a call made between feeds read the last frame's state. Reference: each getter reads its slot at the call. A cooldown query that misses the item cache registers a callback on the record (`0x6e2f70`) and answers when the record arrives. A pet spell list derives its macros where it loads (`0x4bdae0` → `0x4f0ce0`). The go handler sweeps both cooldown lists every 120 s (`0x6e1910`); the insert sweeps nothing. Changed: the bar getters (IsUsableAction, GetActionCooldown and the rest) resolve and read live. The cooldown query uses the record's callback list. The pet list derives its macros in its place. The sweep moves to the go. Tests: each getter read between two feeds, the callback answered at the record, the macros derived after UPDATE_MACROS, and the swept GCD. Part of #2168. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>