fix(mobile): the thread no longer bounces when a reply finishes#28334

draft2
main
GitHub fork: fix/mobile-reply-end-bounce
opened7d agobyHhryhoriiK97
View on GitHubTwo-way sync enabledPR last imported 7d ago

Stacked on #28333. I can't push a branch upstream, so this targets main and also shows that PR's commit. Review only the top commit, fix(mobile): the thread no longer bounces when a reply finishes.

When a turn ends in the mobile app, the thread bounces. The list scrolls down with the shrinking floating status inset, then jumps back up as the reply's footer row appears.

The fix holds the list in place while that inset collapses, then pins to the end once. It skips the freeze while the keyboard is up or moving, because a frozen list misses keyboard inset events.

Evidence

iOS simulator, iPhone 18 Pro, slowed 4x. On the left is #28333 alone, and on the right is this commit on top. On the left the reply's last row overshoots and comes back down. On the right it only moves up.

End of a reply, before and after

Real-time clips, each a send and a full reply: main, #28333 alone, this commit. They ran on an isolated server with a scripted provider.

What I checked

  • vp run check:changed passes.
  • On iOS, the end of one paced reply in a long thread. This is the clip above.
  • There is no automated test. This is a visual fix, so the capture is the proof.

Why this is a draft

  • Unsolved race: the freeze only checks that the keyboard is idle when the inset starts collapsing. A keyboard that starts moving during the 180 ms collapse is missed, which could leave a wrong inset. I haven't reproduced this.
  • Android: this code has not run on Android.
  • Remaining motion: the reply's last row still sits under the status pill for a few frames, then the list takes one step up with a tiny settle.
  • Overlap: draft #28125 rewrites this list code.

Model: Claude Opus 5.5. Harness: Claude Code in T3 Code.

🤖 Generated with Claude Code

Checks

20 successful · 7 skipped
All checks passed
f1f3f06

Added 2 commits

  • fix(mobile): sent messages no longer flicker as the keyboard closes1dd4f41
  • fix(mobile): the thread no longer bounces when a reply finishesf1f3f06