Skip to content

Release 0.2.5

Latest

Choose a tag to compare

@kbrattli kbrattli released this 30 Jul 04:40
a5d19b5

0.2.5 (2026-07-30)

Bug Fixes

  • align android begininteraction 'inherit' history with ios (f980ff2)

Code Refactoring

  • rename the shared native driver to drivers.native (f889630)

A second adversarial review of the 0.2.3/0.2.4 handoff stack re-confirmed the
architecture end to end and left two things worth shipping:

  1. Android beginInteraction() no longer resets the 'inherit' velocity
    history.
    It now records the frozen presentation as a plain sample —
    exactly what iOS has always done in smoothClipFreezePresentation — so a
    grab-and-instant-refling inherits bounded recent momentum instead of
    launching a dead spring. An unchanged value dedupes to a no-op whose
    timestamps keep aging, so a stale pair still inherits zero through the
    100 ms staleness guard. resetVelocitySamples had no remaining production
    call site and was removed from cpp/SmoothClipVelocityTracker.h; this only
    affects code that includes that header directly. Pinned by a new
    injected-timestamp XCTest covering the grab-record pairing both platforms
    execute.

  2. The shared native driver is now src/drivers.native.ts. The
    implementation Metro resolves on both platforms previously lived in
    drivers.ios.ts (with Android re-exporting it), inviting "iOS-only" edits
    to land in shared code. drivers.ios.ts and drivers.android.ts are now
    one-line re-exports; resolution, the public API, and behavior are
    unchanged.

Does 0.2.5 affect iOS? No — the velocity-history fix is Android-only C++
(iOS already had these semantics), and the rename is resolution-neutral.
iOS pixels are bit-identical to 0.2.4.

Also included: documentation corrections — the publishing checklist reflects
that 0.2.4 is on npm as latest, the driver's rejection-rollback comment now
matches the README contract (reachable 0-return cases deliver no completion),
the from JSDoc scopes its presentation.value claim to the native drivers,
kMaxFrameLeadS is documented as refresh-rate-independent latency slack, and
the README states the multi-host finished semantics and that keyframes
deliberately encode their own curve.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com