Why
DiffGraph must analyze the exact Git state the user requested. The current paths do not consistently resolve immutable pre/post blobs across staged, unstaged, commit-range, rename, deletion, and merge-base semantics.
Direction
Git object identity is the source of truth. AI must never choose files, symbols, or graph edges.
Acceptance criteria
- Resolve exact pre/post object IDs, paths, modes, and refs for unstaged, staged, two-dot, and three-dot comparisons.
- Correctly handle added, deleted, renamed, binary, missing, and undecodable files.
- Preserve old/new paths and immutable blob/content identities in artifact provenance.
- Respect pathspec/file scope without silently widening it.
- Return structured warnings rather than converting resolver/parser failures into false changes.
- Add deterministic fixtures covering every comparison mode and edge case.
Enables
Tree-sitter extraction, reproducible schema fixtures, fast caching, extension compatibility, and credible benchmarks.
Why
DiffGraph must analyze the exact Git state the user requested. The current paths do not consistently resolve immutable pre/post blobs across staged, unstaged, commit-range, rename, deletion, and merge-base semantics.
Direction
Git object identity is the source of truth. AI must never choose files, symbols, or graph edges.
Acceptance criteria
Enables
Tree-sitter extraction, reproducible schema fixtures, fast caching, extension compatibility, and credible benchmarks.