Git commit history (#1534)
* feat(app): add fileView preference for changes panel * feat(app): add buildDiffTree util for changed-files tree * feat(app): add changed-files tree directory row * feat(app): changed-files tree view mode in changes panel (#117) * feat(protocol): add checkout.commits.list RPC + commitsList feature flag * feat(server): list branch commits ahead of base with on-remote flags * feat(server): handle checkout.commits.list RPC and advertise capability * feat(client): checkout.commits.list method + useCommitsQuery hook * feat(app): per-commit inline view with local-vs-remote markers (#117) * feat(protocol,server): per-commit file diff RPC (checkout.commits.file_diff) * feat(app): open per-commit file diff on click (#117) * refactor: surface baseRef + commits loading/error, drop dead depth field * fix(app): flip commit local/remote dot — local hollow, remote filled * feat(app): list/tree view for expanded commit file list (#117) * fix(app): syntax-highlight per-commit file diff to match Changes view * feat(app): draggable resize between commits and diff sections * refactor(app): dedupe wrap-text helpers into diff-highlighted-text * fix(app): clean up commits resize drag on unmount + a11y label * fix(app): collapse commits section by default * fix(app): render per-commit file diff with the shared Changes line renderer * perf(app): memoize shared diff line row; drop redundant DiffLineView wrapper * refactor(app): extract shared DiffFileBody; render commit file diff through it * fix(app): hide inline-comment affordance in per-commit diffs (no reviewActions) * feat(app): move commits to a resizable bottom drawer in the Changes panel * feat(review): commitSha scoping for per-commit review drafts + attachment * feat(app): per-commit inline comments wired through to the composer (#117) * refactor(app): own commit file-diff open state in CommitFileList (drop reset effect) * refactor(app): colocate diff-render cluster under git/diff-file-body/ * feat(app): add diff tab target kind (working/commit diff tabs) * feat(app): useDiffFiles hook unifying working + commit diff targets * feat(app): diff tab panel rendering working/commit diffs * feat(app): open a commit diff tab on commit click; drop per-commit drawer/file list * feat(app): open/scroll working diff tab on changed-file click * fix(app): keep commit diff tabs ephemeral; align working diff whitespace * feat(app): collapsible file sections in the diff tab, collapsed by default * feat(app): make the on-remote commit dot more subtle Dims the filled green remote dot (row + legend) to ~0.55 opacity so the local-only ring stays the state that draws the eye. * Reshape commit diffs around the existing Changes view * Fix diff tab migration complexity after rebase * Address diff tab review findings * Clean up diff tab review interfaces * Collapse commit diffs into the existing view * Load commits when expanded --------- Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
This commit is contained in:
@@ -742,6 +742,17 @@ export const ar: TranslationResources = {
|
||||
base: "قاعدة",
|
||||
newFile: "جديد",
|
||||
deletedFile: "تم الحذف",
|
||||
commits: {
|
||||
title: "الإيداعات",
|
||||
legendLocal: "محلي",
|
||||
legendRemote: "على المستودع البعيد",
|
||||
countLabel: "{{count}} إيداعات قبل الأساس",
|
||||
fileDiffEmpty: "لا توجد تغييرات لعرضها",
|
||||
fileDiffError: "تعذّر تحميل فروق الملف",
|
||||
loading: "جارٍ تحميل الإيداعات…",
|
||||
loadError: "تعذّر تحميل الإيداعات",
|
||||
empty: "لا توجد إيداعات قبل الأساس",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "يفتح",
|
||||
@@ -1396,6 +1407,15 @@ export const ar: TranslationResources = {
|
||||
failedToLoad: "فشل تحميل الملف",
|
||||
failedToLoadPreview: "فشل تحميل معاينة الملف",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "التغييرات",
|
||||
changesSubtitle: "فروقات شجرة العمل",
|
||||
commitSubtitle: "فروقات الالتزام",
|
||||
directoryMissing: "لم يتم العثور على دليل Workspace.",
|
||||
empty: "لا توجد تغييرات",
|
||||
loadError: "فشل تحميل الفروقات",
|
||||
capabilityMissing: "حدّث المضيف لعرض فروقات الالتزامات.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "خطأ",
|
||||
|
||||
@@ -748,6 +748,17 @@ export const en = {
|
||||
base: "base",
|
||||
newFile: "New",
|
||||
deletedFile: "Deleted",
|
||||
commits: {
|
||||
title: "Commits",
|
||||
legendLocal: "local",
|
||||
legendRemote: "on remote",
|
||||
countLabel: "{{count}} commits ahead of base",
|
||||
fileDiffEmpty: "No changes to display",
|
||||
fileDiffError: "Failed to load file diff",
|
||||
loading: "Loading commits…",
|
||||
loadError: "Failed to load commits",
|
||||
empty: "No commits ahead of base",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "Open",
|
||||
@@ -1403,6 +1414,15 @@ export const en = {
|
||||
failedToLoad: "Failed to load file",
|
||||
failedToLoadPreview: "Failed to load file preview",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "Changes",
|
||||
changesSubtitle: "Working tree diff",
|
||||
commitSubtitle: "Commit diff",
|
||||
directoryMissing: "Workspace directory not found.",
|
||||
empty: "No changes",
|
||||
loadError: "Failed to load diff",
|
||||
capabilityMissing: "Update the host to view commit diffs.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "Error",
|
||||
|
||||
@@ -769,6 +769,17 @@ export const es: TranslationResources = {
|
||||
base: "base",
|
||||
newFile: "Nuevo",
|
||||
deletedFile: "Eliminado",
|
||||
commits: {
|
||||
title: "Commits",
|
||||
legendLocal: "local",
|
||||
legendRemote: "en remoto",
|
||||
countLabel: "{{count}} commits por delante de la base",
|
||||
fileDiffEmpty: "No hay cambios para mostrar",
|
||||
fileDiffError: "Error al cargar el diff del archivo",
|
||||
loading: "Cargando commits…",
|
||||
loadError: "Error al cargar los commits",
|
||||
empty: "No hay commits por delante de la base",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "Abierto",
|
||||
@@ -1435,6 +1446,15 @@ export const es: TranslationResources = {
|
||||
failedToLoad: "No se pudo cargar el archivo",
|
||||
failedToLoadPreview: "No se pudo cargar la vista previa del archivo",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "Cambios",
|
||||
changesSubtitle: "Diferencias del árbol de trabajo",
|
||||
commitSubtitle: "Diferencias del commit",
|
||||
directoryMissing: "No se encontró el directorio de Workspace.",
|
||||
empty: "Sin cambios",
|
||||
loadError: "No se pudieron cargar las diferencias",
|
||||
capabilityMissing: "Actualiza el host para ver las diferencias de los commits.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "Error",
|
||||
|
||||
@@ -767,6 +767,17 @@ export const fr: TranslationResources = {
|
||||
base: "base",
|
||||
newFile: "Nouveau",
|
||||
deletedFile: "Supprimé",
|
||||
commits: {
|
||||
title: "Commits",
|
||||
legendLocal: "local",
|
||||
legendRemote: "sur le distant",
|
||||
countLabel: "{{count}} commits en avance sur la base",
|
||||
fileDiffEmpty: "Aucune modification à afficher",
|
||||
fileDiffError: "Échec du chargement du diff du fichier",
|
||||
loading: "Chargement des commits…",
|
||||
loadError: "Échec du chargement des commits",
|
||||
empty: "Aucun commit en avance sur la base",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "Ouvrir",
|
||||
@@ -1437,6 +1448,15 @@ export const fr: TranslationResources = {
|
||||
failedToLoad: "Échec du chargement du fichier",
|
||||
failedToLoadPreview: "Échec du chargement de l'aperçu du fichier",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "Modifications",
|
||||
changesSubtitle: "Différences de l'arbre de travail",
|
||||
commitSubtitle: "Différences du commit",
|
||||
directoryMissing: "Répertoire Workspace introuvable.",
|
||||
empty: "Aucune modification",
|
||||
loadError: "Échec du chargement des différences",
|
||||
capabilityMissing: "Mettez à jour l'hôte pour voir les différences des commits.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "Erreur",
|
||||
|
||||
@@ -754,6 +754,17 @@ export const ja: TranslationResources = {
|
||||
base: "ベース",
|
||||
newFile: "新規",
|
||||
deletedFile: "削除済み",
|
||||
commits: {
|
||||
title: "コミット",
|
||||
legendLocal: "ローカル",
|
||||
legendRemote: "リモート",
|
||||
countLabel: "ベースより先のコミット数: {{count}}",
|
||||
fileDiffEmpty: "表示する変更はありません",
|
||||
fileDiffError: "ファイル差分の読み込みに失敗しました",
|
||||
loading: "コミットを読み込み中…",
|
||||
loadError: "コミットの読み込みに失敗しました",
|
||||
empty: "ベースより先のコミットはありません",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "開く",
|
||||
@@ -1413,6 +1424,15 @@ export const ja: TranslationResources = {
|
||||
failedToLoad: "ファイルの読み込みに失敗しました",
|
||||
failedToLoadPreview: "ファイルプレビューの読み込みに失敗しました",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "変更",
|
||||
changesSubtitle: "作業ツリーの差分",
|
||||
commitSubtitle: "コミット差分",
|
||||
directoryMissing: "ワークスペースディレクトリが見つかりません。",
|
||||
empty: "変更はありません",
|
||||
loadError: "差分の読み込みに失敗しました",
|
||||
capabilityMissing: "コミット差分を表示するにはホストを更新してください。",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "エラー",
|
||||
|
||||
@@ -760,6 +760,17 @@ export const ptBR: TranslationResources = {
|
||||
base: "base",
|
||||
newFile: "Novo",
|
||||
deletedFile: "Excluído",
|
||||
commits: {
|
||||
title: "Commits",
|
||||
legendLocal: "local",
|
||||
legendRemote: "no remoto",
|
||||
countLabel: "{{count}} commits à frente da base",
|
||||
fileDiffEmpty: "Nenhuma alteração para exibir",
|
||||
fileDiffError: "Falha ao carregar diff do arquivo",
|
||||
loading: "Carregando commits…",
|
||||
loadError: "Falha ao carregar commits",
|
||||
empty: "Nenhum commit à frente da base",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "Abrir",
|
||||
@@ -1421,6 +1432,15 @@ export const ptBR: TranslationResources = {
|
||||
failedToLoad: "Falha ao carregar arquivo",
|
||||
failedToLoadPreview: "Falha ao carregar prévia do arquivo",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "Alterações",
|
||||
changesSubtitle: "Diff da árvore de trabalho",
|
||||
commitSubtitle: "Diff do commit",
|
||||
directoryMissing: "Diretório do workspace não encontrado.",
|
||||
empty: "Nenhuma alteração",
|
||||
loadError: "Falha ao carregar diff",
|
||||
capabilityMissing: "Atualize o host para ver diffs de commits.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "Erro",
|
||||
|
||||
@@ -761,6 +761,17 @@ export const ru: TranslationResources = {
|
||||
base: "база",
|
||||
newFile: "Новый",
|
||||
deletedFile: "Удалено",
|
||||
commits: {
|
||||
title: "Коммиты",
|
||||
legendLocal: "локально",
|
||||
legendRemote: "на удалённом",
|
||||
countLabel: "{{count}} коммитов впереди базы",
|
||||
fileDiffEmpty: "Нет изменений для отображения",
|
||||
fileDiffError: "Не удалось загрузить различия файла",
|
||||
loading: "Загрузка коммитов…",
|
||||
loadError: "Не удалось загрузить коммиты",
|
||||
empty: "Нет коммитов впереди базы",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "Открыть",
|
||||
@@ -1427,6 +1438,15 @@ export const ru: TranslationResources = {
|
||||
failedToLoad: "Не удалось загрузить файл",
|
||||
failedToLoadPreview: "Не удалось загрузить предварительный просмотр файла.",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "Изменения",
|
||||
changesSubtitle: "Различия рабочего дерева",
|
||||
commitSubtitle: "Различия коммита",
|
||||
directoryMissing: "Каталог Workspace не найден.",
|
||||
empty: "Нет изменений",
|
||||
loadError: "Не удалось загрузить различия",
|
||||
capabilityMissing: "Обновите хост, чтобы просматривать различия коммитов.",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "Ошибка",
|
||||
|
||||
@@ -737,6 +737,17 @@ export const zhCN: TranslationResources = {
|
||||
base: "base",
|
||||
newFile: "新增",
|
||||
deletedFile: "已删除",
|
||||
commits: {
|
||||
title: "提交",
|
||||
legendLocal: "本地",
|
||||
legendRemote: "已推送",
|
||||
countLabel: "领先基线 {{count}} 个提交",
|
||||
fileDiffEmpty: "没有可显示的更改",
|
||||
fileDiffError: "加载文件差异失败",
|
||||
loading: "正在加载提交…",
|
||||
loadError: "加载提交失败",
|
||||
empty: "没有领先基线的提交",
|
||||
},
|
||||
},
|
||||
openInEditor: {
|
||||
open: "打开",
|
||||
@@ -1380,6 +1391,15 @@ export const zhCN: TranslationResources = {
|
||||
failedToLoad: "加载文件失败",
|
||||
failedToLoadPreview: "加载文件预览失败",
|
||||
},
|
||||
diff: {
|
||||
changesLabel: "更改",
|
||||
changesSubtitle: "工作区差异",
|
||||
commitSubtitle: "提交差异",
|
||||
directoryMissing: "未找到 workspace 目录。",
|
||||
empty: "没有更改",
|
||||
loadError: "加载差异失败",
|
||||
capabilityMissing: "请更新主机以查看提交差异。",
|
||||
},
|
||||
},
|
||||
toolCallDetails: {
|
||||
error: "错误",
|
||||
|
||||
Reference in New Issue
Block a user