diff --git a/web/src/editor/AssistantTab.tsx b/web/src/editor/AssistantTab.tsx index d42faf5..42ce553 100644 --- a/web/src/editor/AssistantTab.tsx +++ b/web/src/editor/AssistantTab.tsx @@ -40,8 +40,12 @@ export function AssistantTab({ gardenId, canEdit, undo, large = false }: { garde // Deliberately NOT aborted on unmount: selecting a bed switches the rail to // the inspector, and that must not kill a turn mid-flight. The request runs // on; the exchange is persisted server-side; coming back shows it. + // Instant, not smooth: Chrome left the thread at the top with + // `behavior: 'smooth'` — a smooth scrollIntoView into this nested scroller + // never moved it, so every new reply landed out of view below a long + // conversation (found live, 2026-08-23). The instant form scrolls. useEffect(() => { - bottom.current?.scrollIntoView({ behavior: 'smooth', block: 'end' }) + bottom.current?.scrollIntoView({ block: 'end' }) }, [history.data, pending]) const send = () => {