[4/4] TUI: reconcile streaming transcript heights - #14586
Draft
kevinyang372 wants to merge 1 commit into
Draft
Conversation
kevinyang372
force-pushed
the
oz/tui-retained-frame-overhead
branch
from
July 31, 2026 15:00
3fc0958 to
ef8aa9b
Compare
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 15:00
2eb9591 to
af8a03a
Compare
This was referenced Jul 31, 2026
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 15:20
af8a03a to
787451e
Compare
kevinyang372
force-pushed
the
oz/tui-retained-frame-overhead
branch
from
July 31, 2026 15:20
ef8aa9b to
b177932
Compare
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 15:23
787451e to
7d0ea2c
Compare
kevinyang372
force-pushed
the
oz/tui-retained-frame-overhead
branch
from
July 31, 2026 15:23
b177932 to
e28b54b
Compare
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 15:44
7d0ea2c to
13c2a7a
Compare
kevinyang372
force-pushed
the
oz/tui-retained-frame-overhead
branch
2 times, most recently
from
July 31, 2026 16:28
d96944a to
ef90a56
Compare
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 16:28
13c2a7a to
c8a7436
Compare
kevinyang372
force-pushed
the
oz/tui-retained-frame-overhead
branch
from
July 31, 2026 16:32
ef90a56 to
bdcbe6f
Compare
kevinyang372
force-pushed
the
oz/tui-streaming-height-reconciliation
branch
from
July 31, 2026 16:32
c8a7436 to
7870296
Compare
harryalbert
changed the base branch from
oz/tui-retained-frame-overhead
to
graphite-base/14586
July 31, 2026 16:49
This was referenced Jul 31, 2026
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.

Description
Stack 4 of 4. Fixes two remaining long-transcript streaming costs and the auto-scroll regression exposed by retained viewport layout.
LayoutInvalidated, so actual content changes still trigger measurement.TuiViewportedListinitially queries the end viewport withcontent_height = 0. Dirty streaming blocks beyond that provisional band are now carried into the next end-clamped query instead of consuming their dirty IDs too early.This restores smooth streaming and ensures the streaming tail is painted and auto-scrolled when the final viewport band becomes known.
Release benchmark at 120×50 versus stack PR 3:
Unoptimized absolute costs:
Stack: #14575 ← #14582 ← #14585 ← 4/4.
Agent conversation: https://staging.warp.dev/conversation/2b6af7be-b227-4b20-aaf4-23c9a8494b81
Stack plan: https://staging.warp.dev/drive/notebook/yM2YcQsILFsFzwixBDbD9p
Performance plan: https://staging.warp.dev/drive/notebook/LHzsFd1B8XbQ8AnUqB88LS
Linked Issue
N/A — Warp Agent CLI long-transcript streaming performance and auto-scroll regression.
ready-to-specorready-to-implement.Testing
Added deterministic coverage that animation-only streaming frames reuse height until output is dirty.
Added deterministic coverage that offscreen dirty streaming height is deferred until the end-clamped viewport band reaches it.
cargo nextest run -p warp_tui— 903 passed; Nextest reported one unrelated leaky model-menu snapshot test.cargo clippy -p warp_tui --all-targets --features test-util -- -D warningscargo bench -p warp_tui --features test-util --bench transcript_bench -- --noplotcargo bench --profile dev -p warp_tui --features test-util --bench transcript_bench -- offscreen_streaming_tail --noplot./script/formatSigned-in live
./script/run-tui: content remained clipped above the input; unsentrender-checkpainted correctly; the UI remained responsive.I have manually tested my changes locally with
./script/run-tuiAgent Mode
CHANGELOG-BUG-FIX: Fixed choppy streaming and unreliable auto-scrolling in long Warp Agent CLI conversations.