feat: add last-turn diff view

Adds a Last turn scope to DiffView that renders OpenCode snapshot diffs from the latest user message summary without re-fetching git contents. The view hides Review in that mode and carries the selected diff scope through main and context-panel navigation.

Connects latest-turn changed-file chips in chat to the snapshot diff view on desktop and mobile, while keeping older turn chips static/read-only to avoid misleading affordances and extra subscriptions. Updates localized labels and empty states plus changelog.

Validation: bun run type-check (packages/ui); bun run lint (packages/ui).
This commit is contained in:
Bohdan Triapitsyn
2026-07-07 14:44:20 +03:00
parent 1c44146a4f
commit 292e78f067
19 changed files with 269 additions and 84 deletions
+2
View File
@@ -1250,6 +1250,7 @@ export const dict: Record<I18nKey, string> = {
'diffView.state.loadingRepositoryStatus': 'リポジトリステータスを読み込み中...',
'diffView.state.notGitRepository': 'Gitリポジトリではありません。Gitタブを使用して初期化するかディレクトリを変更してください。',
'diffView.state.cleanWorkingTree': 'ワーキングツリーはクリーンで、表示する変更はありません',
'diffView.state.noLastTurnChanges': '表示する最後のターンの変更はありません',
'diffView.state.failedToLoadDiff': '差分の読み込みに失敗しました',
'diffView.state.loadingDiff': '差分を読み込み中...',
'diffView.state.loadingChanges': '変更を読み込み中...',
@@ -1259,6 +1260,7 @@ export const dict: Record<I18nKey, string> = {
'diffView.summary.changedFilesPlural': '{count}ファイルが変更されました',
'diffView.scope.changed': '変更済み',
'diffView.scope.staged': 'ステージ済み',
'diffView.scope.lastTurn': '最後のターン',
'diffView.scope.selectorAria': '変更モードを選択',
'diffView.actions.retry': '再試行',
'diffView.actions.renderAnyway': 'とにかくレンダリング',