TUI: syntax-highlighted diff view for write/edit tool output#455
Merged
TUI: syntax-highlighted diff view for write/edit tool output#455
Conversation
36c7831 to
3d922cd
Compare
Add diff rendering to TUI chat panel for write and edit tool results. FileExecutor captures old content before modifications, propagates DiffData through agent events to TUI where it renders with green/red backgrounds for added/removed lines, word-level change highlighting, and syntax coloring via tree-sitter. Compact/expanded toggle reuses existing 'e' key binding. Closes #451
2a9f4ba to
21405cb
Compare
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
DiffDataonToolOutputwidgets/diff.rsrenders with diff-colored backgroundsekey bindingChanges
crates/zeph-core/src/diff.rs—DiffDatastruct for cross-crate sharingcrates/zeph-tui/src/widgets/diff.rs— diff computation (similarcrate) + renderingcrates/zeph-tools/src/file.rs— capture old content before write/editcrates/zeph-tui/src/widgets/chat.rs— integrate diff rendering in tool messagesDependencies
similar2.7.0 — pure Rust line/word diff (MIT, no unsafe, no transitive deps)Follow-up issues
Test plan
cargo build --features tuicargo clippy --workspace -- -D warningscargo +nightly fmt --checkcargo nextest run --workspace --lib --bins(1563 tests pass)cargo run -- --tui, trigger write/edit tool, verify diff renderingCloses #451