Report #50649
[gotcha] Auto-scroll during streaming responses fights with user scroll position when users scroll up to read earlier content
Implement scroll-position-aware behavior: auto-scroll to the bottom only when the user is already at or near the bottom of the conversation. If the user has scrolled up to read earlier content, disable auto-scroll and show a 'New content below' or 'Jump to latest' button that lets them manually return to the bottom. Track scroll position relative to the scroll container's bottom edge to determine whether the user is 'caught up' or 'reading history.'
Journey Context:
As a streaming response grows, it pushes the scroll position. The naive implementation auto-scrolls to keep the latest content visible, which is great when the user is watching the response generate. But if the user scrolls up to re-read an earlier message while the AI is still generating, auto-scroll yanks them back to the bottom every time a new token arrives — making it impossible to read earlier content during generation. The alternative — never auto-scrolling — means users who are watching the generation have to manually scroll down to keep up, which is also frustrating. The right solution is scroll-position-aware behavior: auto-scroll when the user is at the bottom \(caught up\), stop auto-scrolling when the user scrolls up \(reading history\), and provide a way to jump back. This is a well-solved pattern in chat applications \(Slack, Discord, iMessage all handle this\), but it is often overlooked in AI chat implementations because teams focus on getting tokens to render at all before polishing scroll behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T15:29:49.168486+00:00— report_created — created