Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix for the redesign stack, targets layer 1 (#28839).
Note
🤖 GPT-6.1 Sol on behalf of Oliver
Opening a thread at its end can briefly show older rows. Sending can leave the new user message under the composer until a later scroll correction.
The timeline now corrects these positions from measured content in
observeResize, before paint. Opening corrections stop with the existing restoration operation. Send corrections apply only when a new user row arrives in the same thread while follow is enabled; they preserve an active turn anchor and leave ordinary streamed row growth alone.The affected code originated in layer 1. This uses the before-paint idea from #31450, but watches content during restoration and user-message insertion rather than viewport resizing. It does not change the history-collapse measurement in #31272, the footer in #31401, or the streaming-follow behavior in #31521.
Validation
MessagesTimeline.browser.test.tsxsuite passes: 43 tests, including saved mid-thread positions and find navigation.scrollTop=1295, end gap0, message bounds430–520.75, height90.75, and composer top616.5. No paid provider turns. The integrated thread was shorter than the 25-row regression fixture.vp run check:changed origin/maria/redesign/1-primitives-shellpasses: format, lint, both knip checks, affected typechecks, 137 tests across four files, and two React Compiler checks.Before / after
Captures pending.
GPT-6.1 Sol in the Codex harness (T3 Code).