You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Swipe-to-switch-agent feel - mobile agent swipe now commits on a fast flick even below the distance threshold, plays an entrance slide as the incoming agent settles in from the side it arrives from, and gives a light haptic tick the moment the arm indicator appears (a visible indicator now always means "release will switch").
Fixed
Swipe vs horizontal scroll - a swipe that starts on a wide code block already at its scroll edge is no longer eaten by the scroll container; the gesture only yields to ancestors that can actually scroll further in that direction, decided on the first directional move.
Multi-touch and rotation robustness - the gesture tracks a single touch by id, yields cleanly when a second finger lands, and re-checks the mobile layout per gesture so rotating or resizing while mounted never leaves stale bindings; committed horizontal drags no longer cancel on natural vertical thumb-arc.
Technical Details
useSwipeGesture rewrite: velocity sampling (~100ms window) for flick-to-commit (FLICK_VELOCITY 0.5 px/ms, FLICK_MIN_DISTANCE 28px), touchId tracking with second-finger yield, deferred scrollable-ancestor yield decision (only overflow-x auto/scroll/overlay ancestors that can still scroll in the drag direction), settleToZero entrance slide, per-gesture window.innerWidth mobile check, arm indicator gated at the commit threshold with a haptic tick.
useSwipeNavigation clarifies the crossed onSwipeLeft/onSwipeRight wiring.