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
@@ -1257,6 +1257,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': '변경 사항 로드 중…',
@@ -1266,6 +1267,7 @@ export const dict: Record<I18nKey, string> = {
'diffView.summary.changedFilesPlural': '파일 {count}개 변경됨',
"diffView.scope.changed": "Changed",
"diffView.scope.staged": "Staged",
"diffView.scope.lastTurn": "마지막 턴",
"diffView.scope.selectorAria": "변경 모드 선택",
'diffView.actions.retry': '다시 시도',
'diffView.actions.renderAnyway': '그래도 렌더링',