From bc765cf81af08274aa9c5337b975a3456f6345c3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 04:07:32 +0000 Subject: [PATCH] fix: isolate typing indicator animation with geometryGroup to prevent position jumping Co-Authored-By: ashlee@vellum.ai --- clients/shared/Features/Chat/TypingIndicatorView.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/clients/shared/Features/Chat/TypingIndicatorView.swift b/clients/shared/Features/Chat/TypingIndicatorView.swift index 14382aa5d6f..1b2785d1e46 100644 --- a/clients/shared/Features/Chat/TypingIndicatorView.swift +++ b/clients/shared/Features/Chat/TypingIndicatorView.swift @@ -28,6 +28,12 @@ public struct TypingIndicatorView: View { RoundedRectangle(cornerRadius: VRadius.lg) .fill(VColor.surfaceOverlay) ) + // Isolate the repeatForever scale animation from parent geometry + // changes. Without this barrier, LazyVStack repositioning or outer + // .frame(width:) resize (containerWidth 0→actual) gets captured by + // the persistent animation context, causing the dots to bounce in + // position instead of just pulsing in scale. + .geometryGroup() .onAppear { animate = true }