FloatingTile.onUp read tile positions from ctx.tiles (stale render-snapshot), causing snap-back to pre-drag positions. Fixed by exposing getLiveTile/getLiveTiles on TileContextActions backed by getCurrentTiles(). SNAP_TOL bumped 9→15px.