- Gate the tree/diff/status loads (and 5s poll) on workspaceStatus being
active/idle, so we no longer hammer the 'workspace is not active' endpoint
while a worker is still picking up the job
- Show a 'Setting up your workspace…' pending state instead of surfacing
startup as a console error / stale-workspace recovery box; escalate to a
softer 'still waiting' hint after 90s if no worker picks it up
- Auto-reload the diff and file tree (debounced) whenever the agent records a
workspace change or a turn starts/ends, so diffs appear without a manual
Refresh
- The recovery box now only appears for a genuinely lost workspace (Convex
reports active but the worker can't reach it)
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)