Clarify changed and deleted files in the file viewer (#2670)

* fix(app): distinguish changed and deleted files

Successful reads now reconcile transient missing events without letting stale
cached data mask a deletion. File notices expose only actions valid for the
current buffer state.

* fix(app): preserve file state ordering

* fix(app): allow retrying file checks

* fix(app): clear unchanged file conflicts

* fix(app): keep file conflict recovery consistent

Own disk observation and read ordering in one model so stale reads and failed subscriptions cannot produce contradictory actions.

* fix(app): allow retrying file preview errors

Preserve daemon read errors and expose retry for initial and non-editable file loads.
This commit is contained in:
Mohamed Boudra
2026-07-30 22:50:58 +02:00
committed by GitHub
parent 240d7f366d
commit b6f1274f47
19 changed files with 1282 additions and 194 deletions
+3 -1
View File
@@ -1491,7 +1491,9 @@ export const ar: TranslationResources = {
cursor: "السطر {{line}}، العمود {{column}}",
preview: "معاينة",
source: "المصدر",
unavailableTitle: "الملف غير متاح على القرص",
deletedTitle: "تم حذف الملف من القرص",
checkFailedTitle: "تعذّر التحقق من الملف على القرص",
preservedDescription: "تم الاحتفاظ بالنسخة المفتوحة.",
conflictDescription: "تم الاحتفاظ بالمحتوى المحلي. اختر الإصدار الذي تريد إبقاءه.",
overwrite: "استبدال",
reload: "إعادة تحميل",
+3 -1
View File
@@ -1502,7 +1502,9 @@ export const en = {
cursor: "Line {{line}}, column {{column}}",
preview: "Preview",
source: "Source",
unavailableTitle: "File unavailable on disk",
deletedTitle: "File deleted on disk",
checkFailedTitle: "Couldn't check file on disk",
preservedDescription: "The open copy is preserved.",
conflictDescription: "The local buffer was preserved. Choose which version to keep.",
overwrite: "Overwrite",
reload: "Reload",
+3 -1
View File
@@ -1534,7 +1534,9 @@ export const es: TranslationResources = {
cursor: "Línea {{line}}, columna {{column}}",
preview: "Vista previa",
source: "Código fuente",
unavailableTitle: "Archivo no disponible en disco",
deletedTitle: "Archivo eliminado del disco",
checkFailedTitle: "No se pudo comprobar el archivo en disco",
preservedDescription: "La copia abierta se ha conservado.",
conflictDescription: "Se conservó el búfer local. Elige qué versión mantener.",
overwrite: "Sobrescribir",
reload: "Recargar",
+3 -1
View File
@@ -1537,7 +1537,9 @@ export const fr: TranslationResources = {
cursor: "Ligne {{line}}, colonne {{column}}",
preview: "Aperçu",
source: "Source",
unavailableTitle: "Fichier indisponible sur le disque",
deletedTitle: "Fichier supprimé du disque",
checkFailedTitle: "Impossible de vérifier le fichier sur le disque",
preservedDescription: "La copie ouverte est conservée.",
conflictDescription: "Le contenu local a été conservé. Choisissez la version à garder.",
overwrite: "Écraser",
reload: "Recharger",
+3 -1
View File
@@ -1507,7 +1507,9 @@ export const ja: TranslationResources = {
cursor: "{{line}} 行、{{column}} 列",
preview: "プレビュー",
source: "ソース",
unavailableTitle: "ディスク上のファイルを利用できません",
deletedTitle: "ファイルはディスク上から削除されました",
checkFailedTitle: "ディスク上のファイルを確認できませんでした",
preservedDescription: "開いているコピーは保持されています。",
conflictDescription: "ローカルの内容は保持されています。残すバージョンを選択してください。",
overwrite: "上書き",
reload: "再読み込み",
+3 -1
View File
@@ -1520,7 +1520,9 @@ export const ptBR: TranslationResources = {
cursor: "Linha {{line}}, coluna {{column}}",
preview: "Prévia",
source: "Fonte",
unavailableTitle: "Arquivo indisponível no disco",
deletedTitle: "Arquivo excluído do disco",
checkFailedTitle: "Não foi possível verificar o arquivo no disco",
preservedDescription: "A cópia aberta foi preservada.",
conflictDescription: "O conteúdo local foi preservado. Escolha qual versão manter.",
overwrite: "Sobrescrever",
reload: "Recarregar",
+3 -1
View File
@@ -1525,7 +1525,9 @@ export const ru: TranslationResources = {
cursor: "Строка {{line}}, столбец {{column}}",
preview: "Просмотр",
source: "Исходник",
unavailableTitle: "Файл недоступен на диске",
deletedTitle: "Файл удалён с диска",
checkFailedTitle: "Не удалось проверить файл на диске",
preservedDescription: "Открытая копия сохранена.",
conflictDescription: "Локальный буфер сохранён. Выберите версию, которую нужно оставить.",
overwrite: "Перезаписать",
reload: "Перезагрузить",
+3 -1
View File
@@ -1472,7 +1472,9 @@ export const zhCN: TranslationResources = {
cursor: "第 {{line}} 行,第 {{column}} 列",
preview: "预览",
source: "源代码",
unavailableTitle: "磁盘上的文件不可用",
deletedTitle: "文件已从磁盘删除",
checkFailedTitle: "无法检查磁盘上的文件",
preservedDescription: "打开的副本已保留。",
conflictDescription: "本地内容已保留。请选择要保留的版本。",
overwrite: "覆盖",
reload: "重新加载",