[codex] Upgrade Legend List chat scrolling (#3545)#124
Conversation
Co-authored-by: Julius Marminge <julius@mac.lan>
|
Warning Review limit reached
More reviews will be available in 42 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (20)
📝 WalkthroughWalkthroughThe PR adds shared chat list anchoring utilities, rewires mobile and web thread flows to return message IDs and anchor timelines around sent messages, updates composer and inset handling, and adjusts branch/model list interactions to the updated LegendList API. ChangesChat anchoring and composer flow
LegendList picker updates
Sequence Diagram(s)sequenceDiagram
participant ChatView
participant ChatComposer
participant MessagesTimeline
participant LegendList
ChatView->>ChatComposer: render composer overlay
ChatComposer-->>ChatView: ResizeObserver reports height
ChatView->>MessagesTimeline: anchorMessageId and contentInsetEndAdjustment
MessagesTimeline->>LegendList: anchoredEndSpace and adjusted inset
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/mobile/src/features/threads/ThreadComposer.tsx`:
- Around line 450-452: The handleSend callback in ThreadComposer currently
discards the promise from onSendMessage, which can leave send failures
unhandled. Update handleSend to explicitly handle rejections from onSendMessage,
either by attaching a catch for logging/cleanup or by ensuring the onSendMessage
contract cannot reject. Use the existing handleSend and onSendMessage symbols to
locate the change.
In `@apps/web/src/components/ChatView.tsx`:
- Around line 3731-3740: The new message anchoring is only applied in the main
send flow, so plan follow-up sends still bypass the anchored timeline behavior.
Update the plan follow-up send path in ChatView.tsx, alongside the existing
onSend logic that sets timelineAnchor, so the optimistic message created for
“implement/refine plan” also sets the same anchored target using threadKey and
messageId. Keep the behavior consistent with the main send path so follow-up
sends land in the reserved anchored space instead of using the old bottom-scroll
flow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 0f7fd6b1-f6af-4619-a9e6-5a380ddfbe90
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (20)
apps/mobile/package.jsonapps/mobile/src/features/threads/ThreadComposer.tsxapps/mobile/src/features/threads/ThreadDetailScreen.tsxapps/mobile/src/features/threads/ThreadFeed.tsxapps/mobile/src/lib/threadActivity.test.tsapps/mobile/src/lib/threadActivity.tsapps/mobile/src/lib/threadFeedLayout.test.tsapps/mobile/src/lib/threadFeedLayout.tsapps/mobile/src/state/use-thread-composer-state.tsapps/web/package.jsonapps/web/src/components/BranchToolbarBranchSelector.tsxapps/web/src/components/ChatView.tsxapps/web/src/components/chat/ChatComposer.tsxapps/web/src/components/chat/MessagesTimeline.test.tsxapps/web/src/components/chat/MessagesTimeline.tsxapps/web/src/components/chat/ModelPickerContent.tsxapps/web/src/index.csspackages/shared/package.jsonpackages/shared/src/chatList.test.tspackages/shared/src/chatList.ts
💤 Files with no reviewable changes (2)
- apps/mobile/src/lib/threadFeedLayout.ts
- apps/mobile/src/lib/threadFeedLayout.test.ts
b89ca56 to
8a89796
Compare
Merge activity
|

What Changed
Why
UI Changes
Checklist
Summary by CodeRabbit
New Features
Bug Fixes