fix(tui): keep review-diff tool rows terse

When tool.complete already carries inline_diff, the assistant message owns the full diff block. Suppress the tool-row summary/detail in that case so the turn shows one detailed diff surface instead of a rich diff plus a duplicated tool-detail payload.
This commit is contained in:
Brooklyn Nicholson 2026-04-21 19:13:15 -05:00
parent 9654c9fb10
commit e684afa151
2 changed files with 33 additions and 5 deletions

View file

@ -263,19 +263,27 @@ export function createGatewayEventHandler(ctx: GatewayEventHandlerContext): (ev:
return
case 'tool.complete':
turnController.recordToolComplete(ev.payload.tool_id, ev.payload.name, ev.payload.error, ev.payload.summary)
{
const inlineDiffText =
ev.payload.inline_diff && getUiState().inlineDiffs ? stripAnsi(String(ev.payload.inline_diff)).trim() : ''
if (ev.payload.inline_diff && getUiState().inlineDiffs) {
const diffText = stripAnsi(String(ev.payload.inline_diff))
turnController.recordToolComplete(
ev.payload.tool_id,
ev.payload.name,
ev.payload.error,
inlineDiffText ? '' : ev.payload.summary
)
if (!diffText.trim()) {
if (!inlineDiffText) {
return
}
// Keep inline diffs attached to the assistant completion body so
// they render in the same message flow, not as a standalone system
// artifact that can look out-of-place around tool rows.
turnController.queueInlineDiff(diffText)
turnController.queueInlineDiff(inlineDiffText)
return
}
return