Skip to content

fix: message list to revert previous change#43

Merged
sirily11 merged 1 commit into
mainfrom
fix-performance-list
May 21, 2026
Merged

fix: message list to revert previous change#43
sirily11 merged 1 commit into
mainfrom
fix-performance-list

Conversation

@sirily11

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings May 21, 2026 13:55
@vercel

vercel Bot commented May 21, 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 21, 2026 1:55pm

Request Review

@autopilot-project-manager autopilot-project-manager Bot added the bug Something isn't working label May 21, 2026
@sirily11 sirily11 merged commit 12336f5 into main May 21, 2026
11 checks passed
@sirily11 sirily11 deleted the fix-performance-list branch May 21, 2026 14:00

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 reworks the macOS chat transcript scrolling behavior in RxCodeChatKit to keep the message list anchored to the bottom (including across session open, disk-load completion, and streaming→settled handoffs), effectively reverting the prior “pin latest user message / dynamic tail spacer” approach.

Changes:

  • Removes the dynamic tail spacer + “pin latest user message to top” tracking logic.
  • Introduces a fixed 1pt bottom sentinel row as the universal scroll-to-bottom target.
  • Adds scroll-phase gating plus a multi-frame “settle at bottom” sweep to reduce offset snaps during List reload/layout.

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

Comment on lines +271 to 279
/// Debounced scroll-to-bottom for content growth. Re-armed on every geometry
/// change, so a burst of streaming deltas collapses into a single scroll.
private func scrollToBottomDebounced(_ proxy: ScrollViewProxy) {
scrollTask?.cancel()
scrollTask = Task { @MainActor in
try? await Task.sleep(for: .milliseconds(50))
guard !Task.isCancelled else { return }
guard !Task.isCancelled, !isUserDrivenScroll else { return }
scrollToBottom(proxy)
}
switch scrollPhase {
case .interacting, .tracking, .decelerating: return true
case .idle, .animating: return false
@unknown default: return false
@sirily11

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 1.9.2 🎉

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