Skip to content

fix(runtime): respect user scroll position in chat area - #1

Open
watanabefam wants to merge 2 commits into
minicoursegenerator:mainfrom
watanabefam:main
Open

fix(runtime): respect user scroll position in chat area#1
watanabefam wants to merge 2 commits into
minicoursegenerator:mainfrom
watanabefam:main

Conversation

@watanabefam

Copy link
Copy Markdown

Problem

The chat area auto-scrolled to the bottom on every renderMessages() call, making it impossible for learners to scroll up and read earlier conversation history while the role-play was ongoing. This was especially noticeable in longer sessions where users wanted to review the AI persona's earlier responses.

Fix

Added a shouldAutoScroll() check that only scrolls to the bottom if the user is within 60px of the bottom of the chat area. If the user has scrolled up to read earlier messages, their scroll position is preserved when new messages arrive.

Applied the same fix to renderTyping() which had the same issue.

Testing

  • New messages still auto-scroll when user is at the bottom
  • User can scroll up during conversation without being yanked back
  • Typing indicator respects scroll position
  • Existing messages and layout unaffected

The chat auto-scrolled to the bottom on every message render,
making it impossible to scroll up and read earlier messages
while the conversation was ongoing.

Now only auto-scrolls if the user is within 60px of the bottom.
If they've scrolled up to read history, their position is respected.
…or reliable scroll

justify-content: flex-end causes inconsistent scrollTop behavior across
browsers when combined with overflow-y: auto. Replaced it with
margin-top: auto on the inner container, which pushes messages to the
bottom naturally while keeping scroll position math consistent.

Also added overflow-x: hidden, overscroll-behavior: contain, and
scroll-behavior: smooth for a more reliable scroll experience.
@watanabefam
watanabefam force-pushed the main branch 2 times, most recently from c758447 to b148f61 Compare July 21, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant