- Split FileDiff into FileDiff (metadata-only) and FileDiffDetail (with hunks)
so the phase branch diff no longer requires client-side diff parsing
- ReviewTab now reads diffQuery.data.files (FileStatEntry[]) and maps
path → newPath for sidebar and DiffViewer; no parseUnifiedDiff call
in the phase branch view path
- Commit view still parses rawDiff via parseUnifiedDiff → FileDiffDetail[]
- Pass phaseId, commitMode, comments, expandAll to DiffViewer
- Pass totalAdditions/totalDeletions from server to ReviewHeader stats bar
- Wire Expand all button in ReviewHeader to expandAll toggle state
- Update FileCard to use FileDiffDetail and status (replaces changeType)
- Update ReviewSidebar to use file.status instead of file.changeType
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>