Improve workspace/chat diff viewer with syntax highlighting & per-file view

Replace the raw single-blob diff dump (Monaco, language=diff) and the plain
<pre> file diffs in chat with @git-diff-view/react:
- Parse the unified git diff into structured per-file entries (status,
  +/- counts, binary detection) via parseDiffFiles()
- Workspace Diff tab: collapsible per-file cards with status badges, line
  counts, syntax highlighting, and a Unified/Split toggle
- Agent chat: render each change's diff highlighted instead of plain text
- Theme follows next-themes resolvedTheme (light/dark)
This commit is contained in:
Gabriel Brown
2026-06-24 07:08:43 -04:00
parent 40a6dd78e4
commit bb471a0917
6 changed files with 420 additions and 91 deletions
+2
View File
@@ -21,6 +21,7 @@
},
"dependencies": {
"@convex-dev/auth": "catalog:convex",
"@git-diff-view/react": "^0.1.6",
"@monaco-editor/react": "latest",
"@sentry/nextjs": "^10.46.0",
"@spoon/backend": "workspace:*",
@@ -31,6 +32,7 @@
"monaco-vim": "latest",
"next": "^16.2.1",
"next-plausible": "^3.12.5",
"next-themes": "^0.4.6",
"react": "catalog:react19",
"react-dom": "catalog:react19",
"require-in-the-middle": "^7.5.2",