fix(flow-chat): stabilize streamed layout transitions - #1861
Merged
Conversation
- Retain semantic collapse anchors through delayed virtualizer measurements. - Reconcile sticky-pin, tail-follow, and footer reservations atomically. - Move runtime wait indicators out of FlowItems into fixed session slots. - Expand scroll stability tests and documentation.
- Constrain explore groups to the centered 900px assistant content width. - Align main footer runtime status with model rounds and tool cards. - Apply the same runtime status width constraint in BTW sessions. - Reuse responsive FlowChat padding tokens across auxiliary content.
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.
Summary
modelRounds.itemsinto fixed-height, session-scoped UI slots.Fixes #
Type and Areas
Type:
Regression fix / UI/UX / refactor / test / docs
Areas:
Web UI, FlowChat virtualization, viewport coordination, runtime status
Motivation / Impact
Streaming tool-card collapses and delayed Virtuoso compensation could cause
visible flashes, downward jumps, lost pinned positions, or excess tail space.
Runtime status was also represented as a pseudo
FlowItem, so showing orremoving it changed the virtualized list structure and triggered additional
measurement and compensation work.
This change preserves semantic anchors through delayed layout settlement,
bounds pin-owned tail space, and renders runtime status in fixed slots whose
visibility does not affect list height.
Verification
pnpm run type-check:web— passedpnpm run lint:web— passedSubagent projection, persistence, dispatch, text chunks, and FlowTextBlock
— 9 files and 108 tests passed
git diff --check— passedReviewer Notes
RuntimeStatusSlotoccupies the first 24px of the existing main Footer;it does not increase the Footer's total height.
It is no longer persisted, exported, or included in assistant output.
intentionally not capped because large or cumulative collapses may require
more range to preserve a semantic anchor.
and drains through measured growth, navigation, or quiet settlement.
Checklist