85feb2c865
A cast's refusal line, `SPELLCAST_FAILED`, `CURRENT_SPELL_CAST_CHANGED` and `IsCurrentAction` answered after the verb returned, and in-flight state was cleared from many places, each by its own rule. 1.12.1 keeps one in-flight slot and one saved strike (`0xceca88`, `0xcecaa8`). The attempt pushes it, the cancel (`0x6e4940`) and the cast result (`0x6e741a`) pop it, and the report runs inside the call (`0x6e1a00`). benilla now has that slot, and every cancel goes through it: - auto-repeat sends its cast before ATTACKSTOP; - a right-click skin casts through the attempt; - a click the cursor cannot bind deselects; - a second Esc re-sends a strike's cancel, the old deviation removed; - a channel's button unchecks as it begins. Tests: each behaviour, failing without it; a live trace shows the cast, its cancel and a refusal's cancel in the reference's order. Fixes #1985, #1990, #1989, #295, #1325, #1986, #1585, #2012, #2015, #1695, #2014, #2021 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>