Skip to content

bug(mobile): feed scrolls the reader away from their position while a turn is running #17

Description

@nohat

Problem

On both the iPad and the iPhone, while a thread has a running turn and I am reading earlier content, the feed scrolls me away from where I was. Reported 2026-10-04 around 18:30 UTC, same build as #16 (Release archive of feat/ios-fork-build, includes 7345a87552). Exact thread, scroll position before and after, and whether it needs a tool result or only text to be appended: not recorded. Whether web has the same behavior: not reported.

What the code shows

Not yet known. The mobile feed in apps/mobile/src/features/threads/ThreadFeed.tsx rests at the newest message with maintainScrollAtEnd and a live-follow latch (described in docs/fork/README.md under the pull-to-reload design). Unverified: whether the latch releases when I scroll up, and whether row height changes from streamed content move the viewport.

Likely trigger

Not yet known. Same family as #16, where a live thread's feed also lays out wrong on the iPhone and blocks the iPad. Treat as one suspected area, not one cause.

Proposed fixes

  1. Reproduce deterministically on a simulator by replaying a recorded event stream into a seeded thread while holding a scroll position, and log the scroll offset over time (the harness proposed under feat(mobile): instrumentable iPad simulator for reproducing and profiling iPad-only defects #4).
  2. Then fix the cause in the feed. Expected acceptance: a scroll position I set stays put while appends arrive, and following the bottom resumes only when I scroll back to it. That intended behavior is not recorded in docs/fork/; the default is standard chat behavior (follow only when at the bottom).

Surfaces: mobile (iPad and iPhone). Web and desktop need a check, not an assumed fix.

Diagnostic for next time

Thread id, UTC time, whether a turn was running, and whether the scroll jump happened on text-only appends or on tool rows.

Related

#16 (live-thread feed failure), #4 (simulator harness), #3. No fix branch.

Severity: Medium (recoverable, but it makes reading a running thread on the main surface unreliable).

Activity

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions