9923962378
A loot close a packet owed was made at the frame's end (`drain_loot`), so a listener between two packets saw the window open, and the release went out late. 1.12.1 closes it inside the packet, at `EndLootWindow` (`0x48f200`). **Changed** - A precast end, a GO, a cast result, a move start and the server's stand state each close the window inside their packet. Each release goes ahead of the handler's later sends. - Every close cancels the rows' pending record fetches (`0x4c1cb0`). A move or a sit closes only while a loot target is latched (`0x6126b0`). - A chest's GO arms its loot target after the close (`0x6e831b`). - `drain_loot` is gone. With it, the last frame-end write a listener could read is placed. **Tests:** each close inside its packet, the release order, the latch gate, the fetch cancel. Each fails on main. Fixes #2217 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>