- Shipped
- August 26, 2026 at 9:14 PM UTC
- Author
- kamo
- Commit
- 46bd67e
Right-clicking a head and choosing Close, or putting one in the goal — thrown in or carried in and dropped — now plays a 500ms exit: a counter-clockwise three-quarter turn while shrinking to nothing and fading out, then unmount. The head leaves every piece of engine bookkeeping the instant it is closed (cluster, motion values, throw physics), so its cluster reflows immediately and nothing can collide with a corpse. What survives the 500ms is an inert visual ghost frozen at the head's last position, in its own list, unmounted by a timer. The animation is opt-in per removal rather than universal, because hexheads:remove is not only fired by closes: restoring a minimized window fires it, and FloatingNotesContext fires it to re-dress a sticky note's head on a colour change. Spinning a head away in those cases would be wrong. Also drops the head from throwsRef on removal. A head can be right-clicked and closed mid-flight, and without that the throw RAF keeps a dead entry forever — it never drains, so the goal zone never hides again. prefers-reduced-motion gets a plain fade over the same 500ms.