Skip to content

fix: message bumpy issue#49

Merged
sirily11 merged 1 commit into
mainfrom
fix-message-list
May 22, 2026
Merged

fix: message bumpy issue#49
sirily11 merged 1 commit into
mainfrom
fix-message-list

Conversation

@sirily11

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 22, 2026 07:27
@vercel

vercel Bot commented May 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rxcode Ready Ready Preview, Comment May 22, 2026 7:27am

Request Review

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts chat scroll/pinning behavior to reduce “bumpy” motion by controlling when scroll-to-top animations run and by coalescing bottom-follow scrolling during streaming/content growth.

Changes:

  • Added an animated flag to “pin sent message to top” so initial pin can animate while subsequent re-pins can be non-animated.
  • Changed desktop MessageListView bottom-follow behavior to coalesce scroll-to-bottom calls (rate-limited) and avoid fighting layout during streaming.
  • Improved desktop “release pinned turn” detection by distinguishing direct user drags from inertial/decelerating phases.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
RxCodeMobile/Views/MobileChatView.swift Adds an animated parameter to top-pinning to reduce scroll jitter during layout/keyboard changes.
Packages/Sources/RxCodeChatKit/MessageListView.swift Coalesces bottom-follow scrolling, tracks max measured turn height to stabilize spacer sizing, and refines user-scroll detection for releasing top-pin.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +444 to +449
let delayNanoseconds = UInt64(delay * 1_000_000_000)
if delayNanoseconds > 0 {
try? await Task.sleep(nanoseconds: delayNanoseconds)
}
guard !Task.isCancelled else { return }
scrollTask = nil
@sirily11 sirily11 merged commit e30085e into main May 22, 2026
14 checks passed
@sirily11 sirily11 deleted the fix-message-list branch May 22, 2026 07:35
@sirily11

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 1.10.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

bug Something isn't working released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants