Commit Graph
1 Commits
Author SHA1 Message Date
Vasanth T f9a26e7148 feat(tools): show red/green diff preview on write_file and edit_file (#318)
write_file/edit_file only reported "Created X (8462 bytes)" / "edited X",
so the user never saw WHAT changed — no code preview, no red/green. The
TUI already renders a colored diff card whenever a tool's output looks
like a unified diff (diffFirstToolBodyRenderer + looksLikeDiff), so the
fix is purely tool-side: emit a diff.

- edit_file appends a unified diff (old vs new) after its summary line →
  red/green change preview.
- write_file appends a unified diff of prior vs new content: a fresh
  create previews as all-green additions, an overwrite as red/green. It
  reads the prior bytes before writing only when the file existed.
- boundedUnifiedDiff (via the already-vendored go-udiff, now a direct
  require) caps the emitted diff at 48KB so a large generated file can't
  flood the transcript or balloon persisted session events; past the cap
  only the summary shows. The summary stays the first output line so any
  consumer that reads it (swarm/Task result bubbling) is unaffected.

Tests: edit emits @@/-/+ ; new-file emits additions-only; overwrite emits
red/green. Full tools/tui/agent/swarm suites green.
2026-06-25 19:24:27 +05:30