diff --git a/frontend/src/components/Chat/ChatPanel.tsx b/frontend/src/components/Chat/ChatPanel.tsx index 63ef012..dc46e40 100644 --- a/frontend/src/components/Chat/ChatPanel.tsx +++ b/frontend/src/components/Chat/ChatPanel.tsx @@ -179,7 +179,10 @@ export function ChatPanel() { const tailLength = tail && "text" in tail ? tail.text.length : 0 // biome-ignore lint/correctness/useExhaustiveDependencies: scroll when the list or a streamed answer grows, not on every render. useEffect(() => { - bottom.current?.scrollIntoView({ block: "end" }) + // Only the panel's body moves: `scrollIntoView` would scroll every + // ancestor too, which is how the logs panel slid the code editor away. + const body = bottom.current?.closest("[data-slot=side-panel-body]") + body?.scrollTo({ top: body.scrollHeight }) }, [shown.length, tailLength, waiting]) const send = async () => { diff --git a/frontend/src/components/Flow/SidePanel.tsx b/frontend/src/components/Flow/SidePanel.tsx index c2636ea..78703b2 100644 --- a/frontend/src/components/Flow/SidePanel.tsx +++ b/frontend/src/components/Flow/SidePanel.tsx @@ -252,6 +252,7 @@ export function SidePanel({