Skip to content

[Feature]: Add per-commit views to the Diff pane #5881

Description

@dain

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/web

Problem or use case

The Diff pane currently lets me inspect Working tree, Branch changes, Latest turn, or individual Turns.

Branch changes is cumulative, while Turns are based on T3 checkpoints. Neither option lets me review the actual Git commits on the current branch one at a time.

When an agent creates several commits, I want to inspect the exact diff introduced by each commit without leaving T3. Today I have to use git show, GitHub, or another Git client, losing the integrated Diff pane workflow.

Proposed solution

Add a “Commits” submenu to the existing diff-source picker, parallel to the existing “Turns” submenu. This is similar to the design in Codex.

The submenu should list the commits included in the current Branch changes range, showing at least each commit’s subject and age. Selecting a commit should display only the changes introduced by that commit — its parent-to-commit diff — using the existing Diff pane renderer and controls.

The other sources, such as Working tree, Branch changes, Latest turn, and Turns, should remain available as they are today.

Why this matters

Agents frequently produce a stack of commits, and reviewing only the cumulative branch diff can hide whether changes were divided into coherent commits.

A commit-by-commit view would make it easier to review history before opening a PR, understand why a change was introduced, and catch commits that contain unrelated or incomplete work. Codex has a similar view, and it is especially useful when reviewing agent-generated changes.

Smallest useful scope

List the commits in the existing Branch changes range and allow selecting one to view its parent-to-commit diff in the web Diff pane and desktop wrapper.

It should fetch the selected commit’s patch on demand rather than loading every commit’s patch up front.

Alternatives considered

The only alternative is to use an external tool.

Risks or tradeoffs

  • The commit list should be limited to the relevant branch range so large repository histories are not loaded unnecessarily. Maybe cap the commit list to not consume too much memory if there is a massive list.
  • Merge commits need a defined comparison parent; using the first parent would match common git show behavior.
  • Rebasing or otherwise rewriting the branch can invalidate the selected commit, so the pane should fall back gracefully.
  • Commit patches should be loaded only when selected to avoid unnecessary server, WebSocket, and rendering cost.

Examples or references

Codex provides a commit-by-commit diff view with a commit selector.

Related but not duplicate T3 work:

Contribution

  • I would be open to helping implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequested improvement or new capability.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions