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:
@@ -1254,6 +1254,7 @@ export const dict = {
|
||||
'diffView.state.loadingRepositoryStatus': 'Loading repository status...',
|
||||
'diffView.state.notGitRepository': 'Not a git repository. Use the Git tab to initialize or change directories.',
|
||||
'diffView.state.cleanWorkingTree': 'Working tree clean, no changes to display',
|
||||
'diffView.state.noLastTurnChanges': 'No last turn changes to display',
|
||||
'diffView.state.failedToLoadDiff': 'Failed to load diff',
|
||||
'diffView.state.loadingDiff': 'Loading diff...',
|
||||
'diffView.state.loadingChanges': 'Loading changes...',
|
||||
@@ -1263,6 +1264,7 @@ export const dict = {
|
||||
'diffView.summary.changedFilesPlural': '{count} files changed',
|
||||
'diffView.scope.changed': 'Changed',
|
||||
'diffView.scope.staged': 'Staged',
|
||||
'diffView.scope.lastTurn': 'Last turn',
|
||||
'diffView.scope.selectorAria': 'Select change mode',
|
||||
'diffView.actions.retry': 'Retry',
|
||||
'diffView.actions.renderAnyway': 'Render anyway',
|
||||
|
||||
@@ -1220,6 +1220,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"diffView.state.loadingRepositoryStatus": "Cargando estado del repositorio...",
|
||||
"diffView.state.notGitRepository": "No es un repositorio Git. Usa la pestaña Git para inicializar o cambiar de directorio.",
|
||||
"diffView.state.cleanWorkingTree": "Worktree limpio, no hay cambios para mostrar",
|
||||
"diffView.state.noLastTurnChanges": "No hay cambios del último turno para mostrar",
|
||||
"diffView.state.failedToLoadDiff": "No se pudo cargar la diferencia",
|
||||
"diffView.state.loadingDiff": "Cargando diff...",
|
||||
"diffView.state.loadingChanges": "Cargando cambios...",
|
||||
@@ -1229,6 +1230,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"diffView.summary.changedFilesPlural": "{count} archivos modificados",
|
||||
"diffView.scope.changed": "Cambiados",
|
||||
"diffView.scope.staged": "Staged",
|
||||
"diffView.scope.lastTurn": "Último turno",
|
||||
"diffView.scope.selectorAria": "Seleccionar modo de cambios",
|
||||
"diffView.actions.retry": "Volver a intentar",
|
||||
"diffView.actions.renderAnyway": "Renderizar de todos modos",
|
||||
|
||||
@@ -1088,6 +1088,7 @@ export const dict = {
|
||||
'diffView.state.loadingRepositoryStatus': 'Chargement de l\'état du dépôt...',
|
||||
'diffView.state.notGitRepository': 'Pas un dépôt git. Utilisez l\'onglet Git pour initialiser ou modifier des répertoires.',
|
||||
'diffView.state.cleanWorkingTree': 'Worktree sans modifications, rien à afficher',
|
||||
'diffView.state.noLastTurnChanges': 'Aucun changement du dernier tour à afficher',
|
||||
'diffView.state.failedToLoadDiff': 'Échec du chargement du différentiel',
|
||||
'diffView.state.loadingDiff': 'Chargement du différentiel...',
|
||||
'diffView.state.loadingChanges': 'Chargement des modifications...',
|
||||
@@ -1097,6 +1098,7 @@ export const dict = {
|
||||
'diffView.summary.changedFilesPlural': 'Fichiers {count} modifiés',
|
||||
"diffView.scope.changed": "Modifiés",
|
||||
"diffView.scope.staged": "Staged",
|
||||
"diffView.scope.lastTurn": "Dernier tour",
|
||||
"diffView.scope.selectorAria": "Sélectionner le mode de changements",
|
||||
'diffView.actions.retry': 'Réessayer',
|
||||
'diffView.actions.renderAnyway': 'Afficher quand même',
|
||||
|
||||
@@ -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': 'とにかくレンダリング',
|
||||
|
||||
@@ -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': '그래도 렌더링',
|
||||
|
||||
@@ -1537,6 +1537,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'diffView.section.files': 'Pliki',
|
||||
'diffView.selector.selectFile': 'Wybierz plik',
|
||||
'diffView.state.cleanWorkingTree': 'Drzewo robocze jest czyste, brak zmian do wyświetlenia',
|
||||
'diffView.state.noLastTurnChanges': 'Brak zmian z ostatniej tury do wyświetlenia',
|
||||
'diffView.state.failedToLoadDiff': 'Nie udało się wczytać diffu',
|
||||
'diffView.state.largeDiff': 'Duży diff ({count} zmienionych linii)',
|
||||
'diffView.state.largeDiffDescription': 'Renderowanie może być wolne. Nadal możesz wyświetlić diff przyciskiem poniżej.',
|
||||
@@ -1548,6 +1549,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'diffView.summary.changedFilesPlural': 'Zmieniono {count} plików',
|
||||
"diffView.scope.changed": "Zmienione",
|
||||
"diffView.scope.staged": "Staged",
|
||||
"diffView.scope.lastTurn": "Ostatnia tura",
|
||||
"diffView.scope.selectorAria": "Wybierz tryb zmian",
|
||||
'diffView.summary.changedFilesSingle': 'Zmieniono {count} plik',
|
||||
'directoryExplorerDialog.actions.addProject': 'Dodaj projekt',
|
||||
|
||||
@@ -1220,6 +1220,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"diffView.state.loadingRepositoryStatus": "Carregando status do repositório...",
|
||||
"diffView.state.notGitRepository": "Não é um repositório Git. Use a aba Git para inicializar ou mudar de diretório.",
|
||||
"diffView.state.cleanWorkingTree": "Worktree limpo, não há alterações para mostrar",
|
||||
"diffView.state.noLastTurnChanges": "Não há alterações do último turno para exibir",
|
||||
"diffView.state.failedToLoadDiff": "Não foi possível carregar a diferencia",
|
||||
"diffView.state.loadingDiff": "Carregando diff...",
|
||||
"diffView.state.loadingChanges": "Carregando alterações...",
|
||||
@@ -1229,6 +1230,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"diffView.summary.changedFilesPlural": "{count} arquivos modificados",
|
||||
"diffView.scope.changed": "Alteradas",
|
||||
"diffView.scope.staged": "Staged",
|
||||
"diffView.scope.lastTurn": "Último turno",
|
||||
"diffView.scope.selectorAria": "Selecionar modo de alterações",
|
||||
"diffView.actions.retry": "Tentar novamente",
|
||||
"diffView.actions.renderAnyway": "Renderizar mesmo assim",
|
||||
|
||||
@@ -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": "Все одно відрендерити",
|
||||
|
||||
@@ -1220,6 +1220,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': '正在加载变更...',
|
||||
@@ -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': '仍然渲染',
|
||||
|
||||
@@ -1230,6 +1230,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': '正在載入變更...',
|
||||
@@ -1239,6 +1240,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': '仍然渲染',
|
||||
|
||||
Reference in New Issue
Block a user