Wire up tui input, transcript view, into full TUI app#13104
Merged
Conversation
Contributor
Author
2 tasks
28284a7 to
baa75cd
Compare
adad88f to
976ddc0
Compare
baa75cd to
0f3fda0
Compare
976ddc0 to
5aa2c63
Compare
0f3fda0 to
c51741c
Compare
2 tasks
728f81d to
f215f8d
Compare
0c090af to
a821c3d
Compare
40dbb8a to
f2ab35d
Compare
a68ed8f to
f58624f
Compare
707ebfa to
d914567
Compare
ce6a94e to
e6ff47e
Compare
a2a99b5 to
9547813
Compare
a63c188 to
29f6709
Compare
9193694 to
8a0cd37
Compare
8a0cd37 to
11132a4
Compare
60d414b to
06f2e6b
Compare
kevinyang372
approved these changes
Jul 1, 2026
75088b8 to
850e552
Compare
2 tasks
This was referenced Jul 1, 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
This PR replaces the old TUI prompt-stream/stdout path with the first production-shaped TUI transcript session. The ownership split is clear:

RootTuiViewonly gates login,TuiTerminalSessionViewowns the authenticated terminal surface + prompt path, andTuiTranscriptViewadapts the canonicalTerminalModel::BlockListinto TUI viewport content.The most important model invariant is that TUI terminal blocks and TUI agent blocks are still ordered by the shared

TerminalModel::BlockList, not a TUI-only transcript list.What to review
crates/warp_tui/src/terminal_session_view.rsis the root renderer and handler for the transcript and input. It also handles sending prompts (was previously handled by the now deleted tui conversation model, but that model was just a thin wrapper around prompt submission and is now unnecessary)crates/warp_tui/src/transcript_view.rsis effectively the blocklist element, using the viewported list to render the blocklist. This view also owns history event handling, which I think is reasonable but curious on your take.crates/warp_tui/src/tui_block_list_viewport_source.rsis used by the transcript view to adapt the block list into viewport items, specifically terminal_blocks (crates/warp_tui/src/terminal_block.rs) and agent_blocks (crates/warp_tui/src/agent_block.rs)contentfield)crates/warpui_core/src/elements/tui/container.rs— this PR adds per-axis padding but this is pretty schematicNote: test-util flags were added in a bunch of places because
warp_tuitests live in a separate crate, where warp’s#[cfg(test)]helpers are not compiled, so the feature explicitly exposes those test-only terminal helpers to downstream tests without making them part of normal builds. Apparently, cfg(test) is only enabled for the crate whose tests Cargo is currently compiling, not for that crate’s dependencies.Testing
./script/runAgent Mode