diff --git a/packages/app/src/agent-stream/strategy-native.tsx b/packages/app/src/agent-stream/strategy-native.tsx index a28c611e5..629f63fa0 100644 --- a/packages/app/src/agent-stream/strategy-native.tsx +++ b/packages/app/src/agent-stream/strategy-native.tsx @@ -359,6 +359,11 @@ function NativeStreamViewport(props: StreamRenderInput & { strategy: StreamStrat const handleMomentumScrollEnd = useStableEvent( (event: NativeSyntheticEvent) => { + // Android can emit momentum-end after a programmatic anchor correction. + // Only momentum that still owns the user gesture may settle scroll intent. + if (!isUserScrollActiveRef.current) { + return; + } const isNearBottom = isScrollEventNearBottom(event); clearPendingUserScrollEnd(); isUserScrollActiveRef.current = false;