From a13a7302fa1fd37a8e211662e8c33b93d44774f5 Mon Sep 17 00:00:00 2001 From: Guoyu Su Date: Thu, 3 Sep 2026 01:12:25 +0800 Subject: [PATCH] feat(sql-file): show all execution failures --- .../export/ExportProgressPopover.vue | 40 +++++-- .../__tests__/ExportProgressPopover.spec.ts | 39 ++++++ .../SqlFileExecutionDialog.retry.spec.ts | 82 ++++++++++++- .../sql-file/SqlFileExecutionDialog.vue | 52 +++++++- .../__tests__/useExportTracker.spec.ts | 108 ++++++++++++++++- .../src/composables/useExportTracker.ts | 113 +++++++++++++++++- 6 files changed, 414 insertions(+), 20 deletions(-) diff --git a/apps/desktop/src/components/export/ExportProgressPopover.vue b/apps/desktop/src/components/export/ExportProgressPopover.vue index d25dfe548d..6327000b8a 100644 --- a/apps/desktop/src/components/export/ExportProgressPopover.vue +++ b/apps/desktop/src/components/export/ExportProgressPopover.vue @@ -232,9 +232,17 @@ function toggleFailureDetails(exportId: string) { } function failureDetailCount(task: ExportTask) { + if (task.kind === "sql-file") return (task.sqlFileFailures?.length ?? 0) + (task.sqlFileFailuresOmitted ?? 0); return (task.transferFailures?.length ?? 0) + (task.transferFailuresOmitted ?? 0); } +function hasUnlistedTaskError(task: ExportTask) { + if (task.status !== "Error" || !task.errorMessage) return false; + if (task.kind === "sql-file") return !(task.sqlFileFailures ?? []).some((failure) => failure.error === task.errorMessage); + if (task.kind === "data-transfer") return !(task.transferFailures ?? []).some((failure) => failure.error === task.errorMessage); + return true; +} + function openTask(task: ExportTask): void { task.onOpen?.(); } @@ -288,21 +296,35 @@ function openTask(task: ExportTask): void { {{ rowsText(task) }} {{ elapsedText(task) }} {{ taskStatusText(task) }} - - {{ translateBackendError(t, task.errorMessage) }} + + {{ translateBackendError(t, task.errorMessage!) }} -