Drop firmly in place — tail-only throw + jump() to clear velocity

Fixkamo-internal
Shipped
lúc 03:00 30 tháng 4, 2026 UTC
Author
kamo
Commit
14bc9d8

The previous fix still let heads drift on release because: 1. Throw detection averaged velocity across the full 110ms window. A user who flicked then decelerated to a slow crawl before release still averaged > 650 px/s over that window and got a false-positive throw. Now we look only at the last RELEASE_TAIL_MS (60ms) of pointer samples, so a decelerating release with slow tail velocity is correctly read as a deliberate drop. Pause guard widened to 60ms to match. 2. animate(mx, fx, { velocity: 0 }) doesn't actually clear MotionValue's internally-tracked velocity from the rapid mx.set() chain — it just starts a new spring with 0 initial velocity. Switched to mx.jump(fx), which is purpose-built for this: it stops active animations, zeros tracked velocity, and sets the value in one call. 3. For the mega-cluster path, rewireCluster now runs BEFORE the anchor jump so follower change subscriptions are reattached cleanly before the jump fires its anchor-change event — the new subs see velocity-0 targets unchanged from where they just sprung to.

All changes

Như những gì anh thấy vận chuyển?

Mỗi một bản cập nhật này đều được tự động cập nhật trong không gian làm việc của bạn. Bắt đầu tự do và xem nó lớn lên tuần này qua tuần khác.

Bắt đầu tự do mãi mãiXem truy cập