Skip to content

[Bug]: Opening a remote thread renders at the top, then animates a scroll all the way to the bottom #14224

Description

@josephv123

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Related: #5903, #14051, and #13601 are about threads settling in the wrong place. In this case the thread does reach the bottom. The problem is how it gets there: it renders at the top and then plays a long animated scroll through the whole transcript.

Area

apps/web

Steps to reproduce

  1. On machine A (Linux), run T3 Code with a long-running thread. The agent makes many long tool calls, so the transcript gets long.
  2. On machine B (macOS desktop app), connect to machine A's environment over the tunnel.
  3. Open that thread from machine B.

Expected behavior

The thread opens already pinned to the latest message, with no visible scrolling. I check on long agent runs every ~15 minutes and only want to see the bottom.

Actual behavior

The thread first renders at the top of the transcript. Then it plays a smooth-scroll animation all the way down to the latest message. In a long thread, with lots of tool calls, the animation is slow and distracting, and it plays every time I open the thread to check on it.

Impact

Minor bug or occasional failure

Version or commit

v0.0.42 (desktop client and server)

Environment

Client: T3 Code (Alpha) desktop app 0.0.42 on macOS 26.2 (25C56), Apple M5, Electron 44.1 / Chrome 152. Server: t3 serve v0.0.42 on Linux (kernel 7.0.0), reached through the built-in cloudflared tunnel.

Logs or stack traces

No response

Screenshots, recordings, or supporting files

No response

Workaround

None. Waiting for the animation to finish, or pressing End, gets to the bottom.

Activity

  1. josephv123 commented on Oct 6, 2026

    @josephv123
    Author

    Root cause, from reading the code on main at 8f75697. I haven't reproduced it in a live client.

    Possible fix (~10-15 lines): keep the instant variant until the thread detail finishes syncing (threadSyncPhase === null), and restart the settling window when that changes. Streaming after load keeps its glide. I'm happy to send a PR with a recording if this direction works.

    Interim workaround: turning on macOS Reduce Motion makes it snap instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions