feat(workspace): tool-call output + Edit/Write diff preview in transcript #565

Closed
opened 2026-04-30 16:52:58 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As an operator, I want to see what each tool call actually returned (and a diff for Edit / Write), so I can audit the foreman's work without leaving the chat.

Acceptance criteria

Tool output

  • tool_summary events (already broadcast) render inline under the matching tool_call pill — collapsed by default, click to expand.
  • tool_progress events (currently dropped client-side) render as a live status line under the active tool pill.
  • Tool pill name falls back to a useful label when tool_name is missing (e.g. parse from summary); never raw "tool call".

Diff preview

  • When the tool is Edit or Write, the expanded pill renders a monospace unified diff (server already exposes the input; UI computes diff client-side from the input args).
  • Diff is collapsed by default; expand on click; respects prefers-reduced-motion.

A11y

  • Pill expand/collapse uses aria-expanded; keyboard accessible.

Out of scope

  • Live tail of long tool execution (separate concern; covered if we later want shell-tool stdout streaming).

References

  • apps/web/src/components/planner/transcript.tsx:113 (ToolCallPill).
  • Spec: specs/workspace-chat-overhaul.md § P2.
## User story As an operator, I want to see what each tool call actually returned (and a diff for `Edit` / `Write`), so I can audit the foreman's work without leaving the chat. ## Acceptance criteria ### Tool output - [ ] `tool_summary` events (already broadcast) render inline under the matching `tool_call` pill — collapsed by default, click to expand. - [ ] `tool_progress` events (currently dropped client-side) render as a live status line under the active tool pill. - [ ] Tool pill name falls back to a useful label when `tool_name` is missing (e.g. parse from `summary`); never raw "tool call". ### Diff preview - [ ] When the tool is `Edit` or `Write`, the expanded pill renders a monospace unified diff (server already exposes the input; UI computes diff client-side from the input args). - [ ] Diff is collapsed by default; expand on click; respects `prefers-reduced-motion`. ### A11y - [ ] Pill expand/collapse uses `aria-expanded`; keyboard accessible. ## Out of scope - Live tail of long tool execution (separate concern; covered if we later want shell-tool stdout streaming). ## References - `apps/web/src/components/planner/transcript.tsx:113` (`ToolCallPill`). - Spec: `specs/workspace-chat-overhaul.md` § P2.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
charles/claude-hooks#565
No description provided.