Skip to content

[BUG] Desktop app: chat window auto-scrolls to bottom during streaming even when user has scrolled up #53382

Description

@mvgx

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

This affects the Claude Code Desktop app on Windows (not the CLI / terminal version).

While Claude is streaming a response (token-by-token / phrase-by-phrase), the
chat window force-scrolls to the bottom on every update. This happens even when
I have explicitly scrolled up to read earlier content — including scrolling all
the way to the top of the conversation. The viewport is yanked back down on
every new chunk, making it impossible to read previous messages while a
response is being generated.

This started in recent versions; older builds of the desktop app did not behave
this way.

What Should Happen?

Standard "sticky bottom" behavior used in terminals, chat apps and IDE chat
panels:

  • If the user is at the bottom of the scroll
    container, auto-scroll to follow new streaming content.
  • If the user has scrolled up beyond that threshold, do NOT auto-scroll. Leave
    the viewport exactly where the user put it.
  • Optional: show a "jump to bottom" button / new-message indicator so the user
    can opt back in with a single click.

This is the same UX that was already shipped for the VSCode extension via
issue #11092 ("Auto-scroll should pause when user scrolls up in chat",
closed completed on 2025-11-12). The desktop app appears to be missing that
fix (or has regressed it).

Error Messages/Logs

Steps to Reproduce

  1. Open Claude Code Desktop app on Windows.
  2. Send a prompt that produces a long streamed response (e.g. ask for a
    detailed explanation, or run an agent task that emits a lot of streaming
    output).
  3. While the response is still streaming, scroll up to read an earlier part
    of the conversation — even all the way to the top.
  4. Observe: the viewport jumps back toward the bottom on every new chunk the
    model emits. There is no way to keep the viewport stationary until
    streaming finishes.

Expected: viewport stays where the user put it.
Actual: viewport is yanked down on every streaming update.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

app-1.3561.0

Claude Code Version

app-1.4758.0

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions