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
@@ -1220,6 +1220,7 @@ export const dict: Record<I18nKey, string> = {
"diffView.state.loadingRepositoryStatus": "Завантаження статусу сховища...",
"diffView.state.notGitRepository": "Це не Git-репозиторій. Скористайтеся вкладкою Git, щоб ініціалізувати або змінити каталог.",
"diffView.state.cleanWorkingTree": "Worktree чистий, без змін для відображення",
"diffView.state.noLastTurnChanges": "Немає змін останнього ходу для відображення",
"diffView.state.failedToLoadDiff": "Не вдалося завантажити diff",
"diffView.state.loadingDiff": "Завантаження diff...",
"diffView.state.loadingChanges": "Завантаження змін...",
@@ -1229,6 +1230,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": "Все одно відрендерити",