Skip to content

Commit 607a72d

Browse files
committed
feat: add error handling for rules folder deletion and localize error messages
1 parent 2075bd9 commit 607a72d

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
@@ -1537,6 +1537,13 @@ export const webviewMessageHandler = async (
15371537
provider.log(`Deleted rules folder for mode ${message.slug}: ${rulesFolderPath}`)
15381538
} catch (error) {
15391539
provider.log(`Failed to delete rules folder for mode ${message.slug}: ${error}`)
1540+
// Notify the user about the failure
1541+
vscode.window.showErrorMessage(
1542+
t("common:errors.delete_rules_folder_failed", {
1543+
rulesFolderPath,
1544+
error: error instanceof Error ? error.message : String(error),
1545+
}),
1546+
)
15401547
// Continue with mode deletion even if folder deletion fails
15411548
}
15421549
}

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
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Authentifizierung erforderlich. Bitte melde dich an, um Aufgaben zu teilen.",
7171
"share_not_enabled": "Aufgabenfreigabe ist für diese Organisation nicht aktiviert.",
7272
"share_task_not_found": "Aufgabe nicht gefunden oder Zugriff verweigert.",
73+
"delete_rules_folder_failed": "Fehler beim Löschen des Regelordners: {{rulesFolderPath}}. Fehler: {{error}}",
7374
"claudeCode": {
7475
"processExited": "Claude Code Prozess wurde mit Code {{exitCode}} beendet.",
7576
"errorOutput": "Fehlerausgabe: {{output}}",

src/i18n/locales/en/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Authentication required. Please sign in to share tasks.",
7171
"share_not_enabled": "Task sharing is not enabled for this organization.",
7272
"share_task_not_found": "Task not found or access denied.",
73+
"delete_rules_folder_failed": "Failed to delete rules folder: {{rulesFolderPath}}. Error: {{error}}",
7374
"claudeCode": {
7475
"processExited": "Claude Code process exited with code {{exitCode}}.",
7576
"errorOutput": "Error output: {{output}}",

src/i18n/locales/es/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Se requiere autenticación. Por favor, inicia sesión para compartir tareas.",
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.",
73+
"delete_rules_folder_failed": "Error al eliminar la carpeta de reglas: {{rulesFolderPath}}. Error: {{error}}",
7374
"claudeCode": {
7475
"processExited": "El proceso de Claude Code terminó con código {{exitCode}}.",
7576
"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
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Authentification requise. Veuillez vous connecter pour partager des tâches.",
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é.",
73+
"delete_rules_folder_failed": "Échec de la suppression du dossier de règles : {{rulesFolderPath}}. Erreur : {{error}}",
7374
"claudeCode": {
7475
"processExited": "Le processus Claude Code s'est terminé avec le code {{exitCode}}.",
7576
"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
@@ -70,6 +70,7 @@
7070
"share_auth_required": "प्रमाणीकरण आवश्यक है। कार्य साझा करने के लिए कृपया साइन इन करें।",
7171
"share_not_enabled": "इस संगठन के लिए कार्य साझाकरण सक्षम नहीं है।",
7272
"share_task_not_found": "कार्य नहीं मिला या पहुंच अस्वीकृत।",
73+
"delete_rules_folder_failed": "नियम फ़ोल्डर हटाने में विफल: {{rulesFolderPath}}। त्रुटि: {{error}}",
7374
"claudeCode": {
7475
"processExited": "Claude Code प्रक्रिया कोड {{exitCode}} के साथ समाप्त हुई।",
7576
"errorOutput": "त्रुटि आउटपुट: {{output}}",

src/i18n/locales/id/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Autentikasi diperlukan. Silakan masuk untuk berbagi tugas.",
7171
"share_not_enabled": "Berbagi tugas tidak diaktifkan untuk organisasi ini.",
7272
"share_task_not_found": "Tugas tidak ditemukan atau akses ditolak.",
73+
"delete_rules_folder_failed": "Gagal menghapus folder aturan: {{rulesFolderPath}}. Error: {{error}}",
7374
"claudeCode": {
7475
"processExited": "Proses Claude Code keluar dengan kode {{exitCode}}.",
7576
"errorOutput": "Output error: {{output}}",

src/i18n/locales/it/common.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"share_auth_required": "Autenticazione richiesta. Accedi per condividere le attività.",
7171
"share_not_enabled": "La condivisione delle attività non è abilitata per questa organizzazione.",
7272
"share_task_not_found": "Attività non trovata o accesso negato.",
73+
"delete_rules_folder_failed": "Impossibile eliminare la cartella delle regole: {{rulesFolderPath}}. Errore: {{error}}",
7374
"claudeCode": {
7475
"processExited": "Il processo Claude Code è terminato con codice {{exitCode}}.",
7576
"errorOutput": "Output di errore: {{output}}",

0 commit comments

Comments
 (0)