Skip to content

[Feature]: Stop auto-scrolling when the user reads earlier streamed output #3925

Description

@gutierrezje

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/desktop

Problem or use case

While an agent is generating a response, each new output update scrolls the conversation back toward the bottom. I often want to read earlier parts of the response while the agent continues working, but streamed updates repeatedly pull the viewport away from what I am reading.

Proposed solution

Only follow new streamed output while the viewport is already at or near the bottom. If the user scrolls upward, detach auto-scroll and preserve their current reading position as new output arrives. Show a small “Jump to latest” or “New output” control, and resume automatic following after the user returns to the bottom.

Why this matters

Long-running agent tasks produce useful intermediate explanations, logs, and partial results. Being able to read those while generation continues makes the waiting time useful and prevents the interface from fighting deliberate user navigation.

Smallest useful scope

During active generation, detect a manual upward scroll and stop moving the viewport until the user scrolls back to the bottom or clicks a “Jump to latest” button.

Alternatives considered

Waiting for generation to finish avoids the problem but prevents reading and reviewing output concurrently. Manually scrolling upward after every streamed update is frustrating and unreliable.

Risks or tradeoffs

The bottom-proximity threshold should tolerate small layout shifts and avoid detaching when the user has not intentionally scrolled. The UI should make it clear that newer output exists while auto-follow is paused.

Examples or references

Many chat and log-streaming interfaces distinguish between “following” the latest output and a reader who has intentionally scrolled away from the bottom.

Contribution

  • I would be open to helping implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions