feat(browser): staged delivery keeps progressive renders visible - #175
Merged
Conversation
The web preview delivers a progressive render as a sequence of frames (a fast first paint, then refinements, then the final). Every frame went through Deliver, which cleared loading and reset the scroll — so the first frame made the page read as "done" (the progress indicator vanished) and each frame snapped the view back to the top, hiding the progression. - Add DeliverStage(..., final bool): an intermediate frame (final=false) updates content but keeps loading on, so the progress indicator keeps animating until the render truly completes; the final frame clears it. Deliver is now DeliverStage(final=true). - Move the scroll reset to navigation start (startLoad) instead of every delivery, matching a browser: a new page opens at the top, but staged frames refine in place and a user scrolling during a long load is not yanked back. 100% coverage; the existing Deliver behaviour (final render, page opened at the top via the preceding navigation) is unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
The web preview delivers a progressive render as a sequence of frames (fast first paint → refinements → final). Every frame went through
Deliver, which cleared loading and reset scroll — so the first frame made the page read as "done" (progress indicator gone) and each frame snapped the view to the top, hiding the progression.DeliverStage(..., final bool): an intermediate frame (final=false) updates content but keeps loading on, so the progress indicator keeps animating until the render completes; the final frame clears it.Deliveris nowDeliverStage(final=true).startLoad) instead of every delivery, matching a browser: a new page opens at the top, but staged frames refine in place and a user scrolling during a long load isn't yanked back.100% coverage; existing
Deliverbehaviour (final render, page opened at top via the preceding navigation) unchanged. Tag a release after merge for the reader bump.🤖 Generated with Claude Code