Skip to content

Make chat repository changes reviewable with file diffs #310

Description

@davidtaylor6130

Problem

The repository-changes summary at the end of a chat is not a dependable, durable record of what that specific chat changed. It also exposes only aggregate file and line counts, so reviewing the AI's work requires leaving the chat and using another Git client.

This is especially limiting on a phone, where a compact in-chat review flow would be much more useful than the desktop commit panel.

Requested behavior

  1. Scope the repository change summary to the selected chat, excluding changes that existed before that chat began.
  2. Make changed files selectable and show the actual patch for the selected file in a responsive difference viewer.

UX requirements

  • Keep the existing compact summary at the end of the transcript.
  • Clearly identify the summary as changes from the current chat.
  • Treat every changed file as an obvious, keyboard-accessible control.
  • Open file details progressively without losing the transcript context.
  • Use a single-column, horizontally scrollable unified diff on narrow screens.
  • Show loading, empty, binary-file, and error states.
  • Preserve the existing aggregate additions/deletions counts.

Acceptance criteria

  • Pre-existing workspace changes are excluded from the current chat's summary.
  • Files modified during the chat remain included even when their line totals do not change.
  • Selecting a file displays only changes attributable to the current chat's baseline.
  • Added, modified, deleted, renamed, staged, and untracked files are handled safely.
  • The review surface works with touch, keyboard navigation, Escape, and narrow viewports.
  • Existing provider implementations and terminal fallback behavior are unchanged.
  • Frontend tests and production build pass with exact test counts reported.

Implementation note

Prefer extending the existing VCS status bridge and chat summary flow rather than adding a second repository-change subsystem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions