Skip to content

Commit bc4d991

Browse files
committed
feat: add error handling for rules folder deletion and localize error messages
1 parent d8d390b commit bc4d991

File tree

20 files changed

+33
-1
lines changed

20 files changed

+33
-1
lines changed

src/core/webview/__tests__/webviewMessageHandler.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,13 @@ describe("webviewMessageHandler - deleteCustomMode", () => {
466466

467467
expect(mockClineProvider.customModesManager.deleteCustomMode).toHaveBeenCalledWith(slug)
468468
expect(fs.rm).toHaveBeenCalledWith(rulesFolderPath, { recursive: true, force: true })
469+
// Verify error message is shown to the user
470+
expect(vscode.window.showErrorMessage).toHaveBeenCalledWith(
471+
t("common:errors.delete_rules_folder_failed", {
472+
rulesFolderPath,
473+
error: error.message,
474+
}),
475+
)
469476
// No error response is sent anymore - we just continue with deletion
470477
expect(mockClineProvider.postMessageToWebview).not.toHaveBeenCalled()
471478
})

src/core/webview/webviewMessageHandler.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1546,6 +1546,13 @@ export const webviewMessageHandler = async (
15461546
provider.log(`Deleted rules folder for mode ${message.slug}: ${rulesFolderPath}`)
15471547
} catch (error) {
15481548
provider.log(`Failed to delete rules folder for mode ${message.slug}: ${error}`)
1549+
// Notify the user about the failure
1550+
vscode.window.showErrorMessage(
1551+
t("common:errors.delete_rules_folder_failed", {
1552+
rulesFolderPath,
1553+
error: error instanceof Error ? error.message : String(error),
1554+
}),
1555+
)
15491556
// Continue with mode deletion even if folder deletion fails
15501557
}
15511558
}

src/i18n/locales/ca/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
"share_auth_required": "Es requereix autenticació. Si us plau, inicia sessió per compartir tasques.",
7575
"share_not_enabled": "La compartició de tasques no està habilitada per a aquesta organització.",
7676
"share_task_not_found": "Tasca no trobada o accés denegat.",
77+
"delete_rules_folder_failed": "Error en eliminar la carpeta de regles: {{rulesFolderPath}}. Error: {{error}}",
7778
"claudeCode": {
7879
"processExited": "El procés Claude Code ha sortit amb codi {{exitCode}}.",
7980
"errorOutput": "Sortida d'error: {{output}}",

src/i18n/locales/de/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "Aufgabenfreigabe ist für diese Organisation nicht aktiviert.",
7272
"share_task_not_found": "Aufgabe nicht gefunden oder Zugriff verweigert.",
7373
"mode_import_failed": "Fehler beim Importieren des Modus: {{error}}",
74+
"delete_rules_folder_failed": "Fehler beim Löschen des Regelordners: {{rulesFolderPath}}. Fehler: {{error}}",
7475
"claudeCode": {
7576
"processExited": "Claude Code Prozess wurde mit Code {{exitCode}} beendet.",
7677
"errorOutput": "Fehlerausgabe: {{output}}",

src/i18n/locales/en/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "Task sharing is not enabled for this organization.",
7272
"share_task_not_found": "Task not found or access denied.",
7373
"mode_import_failed": "Failed to import mode: {{error}}",
74+
"delete_rules_folder_failed": "Failed to delete rules folder: {{rulesFolderPath}}. Error: {{error}}",
7475
"claudeCode": {
7576
"processExited": "Claude Code process exited with code {{exitCode}}.",
7677
"errorOutput": "Error output: {{output}}",

src/i18n/locales/es/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "La compartición de tareas no está habilitada para esta organización.",
7272
"share_task_not_found": "Tarea no encontrada o acceso denegado.",
7373
"mode_import_failed": "Error al importar el modo: {{error}}",
74+
"delete_rules_folder_failed": "Error al eliminar la carpeta de reglas: {{rulesFolderPath}}. Error: {{error}}",
7475
"claudeCode": {
7576
"processExited": "El proceso de Claude Code terminó con código {{exitCode}}.",
7677
"errorOutput": "Salida de error: {{output}}",

src/i18n/locales/fr/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "Le partage de tâches n'est pas activé pour cette organisation.",
7272
"share_task_not_found": "Tâche non trouvée ou accès refusé.",
7373
"mode_import_failed": "Échec de l'importation du mode : {{error}}",
74+
"delete_rules_folder_failed": "Échec de la suppression du dossier de règles : {{rulesFolderPath}}. Erreur : {{error}}",
7475
"claudeCode": {
7576
"processExited": "Le processus Claude Code s'est terminé avec le code {{exitCode}}.",
7677
"errorOutput": "Sortie d'erreur : {{output}}",

src/i18n/locales/hi/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "इस संगठन के लिए कार्य साझाकरण सक्षम नहीं है।",
7272
"share_task_not_found": "कार्य नहीं मिला या पहुंच अस्वीकृत।",
7373
"mode_import_failed": "मोड आयात करने में विफल: {{error}}",
74+
"delete_rules_folder_failed": "नियम फ़ोल्डर हटाने में विफल: {{rulesFolderPath}}। त्रुटि: {{error}}",
7475
"claudeCode": {
7576
"processExited": "Claude Code प्रक्रिया कोड {{exitCode}} के साथ समाप्त हुई।",
7677
"errorOutput": "त्रुटि आउटपुट: {{output}}",

src/i18n/locales/id/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "Berbagi tugas tidak diaktifkan untuk organisasi ini.",
7272
"share_task_not_found": "Tugas tidak ditemukan atau akses ditolak.",
7373
"mode_import_failed": "Gagal mengimpor mode: {{error}}",
74+
"delete_rules_folder_failed": "Gagal menghapus folder aturan: {{rulesFolderPath}}. Error: {{error}}",
7475
"claudeCode": {
7576
"processExited": "Proses Claude Code keluar dengan kode {{exitCode}}.",
7677
"errorOutput": "Output error: {{output}}",

src/i18n/locales/it/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"share_not_enabled": "La condivisione delle attività non è abilitata per questa organizzazione.",
7272
"share_task_not_found": "Attività non trovata o accesso negato.",
7373
"mode_import_failed": "Importazione della modalità non riuscita: {{error}}",
74+
"delete_rules_folder_failed": "Impossibile eliminare la cartella delle regole: {{rulesFolderPath}}. Errore: {{error}}",
7475
"claudeCode": {
7576
"processExited": "Il processo Claude Code è terminato con codice {{exitCode}}.",
7677
"errorOutput": "Output di errore: {{output}}",

0 commit comments

Comments
 (0)