grove

Diff view

Grove has no standalone diff editor. Review happens inside the ordinary file viewer: the editor shows the worktree's live file, and the active workspace's changes are painted over it as an overlay in the workspace's color. You're reading the real file with full context — and it stays fully editable while you review it.

What you see

  • Added and modified lines are tinted whole-line in the workspace's color.
  • Deleted lines render inline at the spot they were removed, so you can see what used to be there without leaving the file.
  • Overview-ruler ticks mark changes so you can scan a long file at a glance.
  • The rest of the file is just… the file. No +/- hunks floating in space, no truncated three-line patches.

The Changes tab in the project panel lists every changed file for the active workspace — or, with no workspace active, the project's own working-tree changes, exactly as git sees them.

What counts as changed

  • Diffs are computed against the point where the workspace forked from the base branch — commits that land on main afterward don't pollute the diff until you rebase.
  • Uncommitted working-tree edits are included, and untracked files count as added. The overlay reflects what the agent is doing right now, not just what it committed.
  • An unmaterialized (note-only) workspace shows no overlay — see Workspaces and worktrees.

Live refresh

Grove watches each worktree's diff in the background — carefully, so it never takes git's index lock and never fights the agent. When the diff actually changes, the open file updates its overlay. A burst of agent writes coalesces into one smooth update instead of flickering.

Comments

The comment layer mounts on the same editor. Select a line range, leave a comment, and it's anchored to the content — surviving rewrites, relocating when lines move, flagged when stale. The full protocol is in Comments.

Diffs in your notes

The same live diff renders inside notes via the ::grove-diff directive — a status doc can carry the actual changed-file list, with per-file diffs expandable inline.

Current limitations

  • The overlay is single-color (workspace-tinted), not a red/green word-level diff.
  • One base per workspace — no multi-base or N-way diffs.