From 91cba934f7b862329af3874982f76586d55c6c48 Mon Sep 17 00:00:00 2001 From: hannesrudolph Date: Wed, 2 Jul 2025 14:57:37 -0600 Subject: [PATCH] fix: address critical PR review feedback - Fix error classification to include 'required' keyword for configuration errors - Add localization for error type headings in CodeIndexSettings - Update all language files with appropriate translations for error types --- src/services/code-index/manager.ts | 6 +++++- .../src/components/settings/CodeIndexSettings.tsx | 14 +++++++++----- webview-ui/src/i18n/locales/ca/settings.json | 7 ++++++- webview-ui/src/i18n/locales/de/settings.json | 7 ++++++- webview-ui/src/i18n/locales/en/settings.json | 7 ++++++- webview-ui/src/i18n/locales/es/settings.json | 7 ++++++- webview-ui/src/i18n/locales/fr/settings.json | 7 ++++++- webview-ui/src/i18n/locales/hi/settings.json | 7 ++++++- webview-ui/src/i18n/locales/id/settings.json | 7 ++++++- webview-ui/src/i18n/locales/it/settings.json | 7 ++++++- webview-ui/src/i18n/locales/ja/settings.json | 7 ++++++- webview-ui/src/i18n/locales/ko/settings.json | 7 ++++++- webview-ui/src/i18n/locales/nl/settings.json | 7 ++++++- webview-ui/src/i18n/locales/pl/settings.json | 7 ++++++- webview-ui/src/i18n/locales/pt-BR/settings.json | 7 ++++++- webview-ui/src/i18n/locales/ru/settings.json | 7 ++++++- webview-ui/src/i18n/locales/tr/settings.json | 7 ++++++- webview-ui/src/i18n/locales/vi/settings.json | 7 ++++++- webview-ui/src/i18n/locales/zh-CN/settings.json | 7 ++++++- webview-ui/src/i18n/locales/zh-TW/settings.json | 7 ++++++- 20 files changed, 122 insertions(+), 24 deletions(-) diff --git a/src/services/code-index/manager.ts b/src/services/code-index/manager.ts index 8f46dbd0d6..29dcb032b7 100644 --- a/src/services/code-index/manager.ts +++ b/src/services/code-index/manager.ts @@ -264,7 +264,11 @@ export class CodeIndexManager { let errorMessage = error instanceof Error ? error.message : String(error) let suggestion: string | undefined - if (errorMessage.includes("configuration missing") || errorMessage.includes("missing for")) { + if ( + errorMessage.includes("configuration missing") || + errorMessage.includes("missing for") || + errorMessage.includes("required") + ) { errorType = "configuration" suggestion = "Please check your embedder configuration in the settings." } else if (errorMessage.includes("authentication") || errorMessage.includes("API key")) { diff --git a/webview-ui/src/components/settings/CodeIndexSettings.tsx b/webview-ui/src/components/settings/CodeIndexSettings.tsx index 5d4c833104..755236175d 100644 --- a/webview-ui/src/components/settings/CodeIndexSettings.tsx +++ b/webview-ui/src/components/settings/CodeIndexSettings.tsx @@ -272,12 +272,16 @@ export const CodeIndexSettings: React.FC = ({
- {indexingStatus.errorDetails.type === "configuration" && "Configuration Error"} + {indexingStatus.errorDetails.type === "configuration" && + t("settings:codeIndex.configurationError")} {indexingStatus.errorDetails.type === "authentication" && - "Authentication Error"} - {indexingStatus.errorDetails.type === "network" && "Network Error"} - {indexingStatus.errorDetails.type === "validation" && "Validation Error"} - {indexingStatus.errorDetails.type === "unknown" && "Unknown Error"} + t("settings:codeIndex.authenticationError")} + {indexingStatus.errorDetails.type === "network" && + t("settings:codeIndex.networkError")} + {indexingStatus.errorDetails.type === "validation" && + t("settings:codeIndex.validationError")} + {indexingStatus.errorDetails.type === "unknown" && + t("settings:codeIndex.unknownError")}
{indexingStatus.errorDetails.message} diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index 5ebe8da346..aa9e0fbfdd 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Esborrar dades" }, "testConfigButton": "Prova la configuració", - "testingButton": "Provant..." + "testingButton": "Provant...", + "configurationError": "Error de configuració", + "authenticationError": "Error d'autenticació", + "networkError": "Error de xarxa", + "validationError": "Error de validació", + "unknownError": "Error desconegut" }, "autoApprove": { "description": "Permet que Roo realitzi operacions automàticament sense requerir aprovació. Activeu aquesta configuració només si confieu plenament en la IA i enteneu els riscos de seguretat associats.", diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index 9667825b8c..66e85abb56 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Daten löschen" }, "testConfigButton": "Konfiguration testen", - "testingButton": "Testen..." + "testingButton": "Testen...", + "configurationError": "Konfigurationsfehler", + "authenticationError": "Authentifizierungsfehler", + "networkError": "Netzwerkfehler", + "validationError": "Validierungsfehler", + "unknownError": "Unbekannter Fehler" }, "autoApprove": { "description": "Erlaubt Roo, Operationen automatisch ohne Genehmigung durchzuführen. Aktiviere diese Einstellungen nur, wenn du der KI vollständig vertraust und die damit verbundenen Sicherheitsrisiken verstehst.", diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index c65206bfac..b393aee74b 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -73,7 +73,12 @@ "description": "This action cannot be undone. This will permanently delete your codebase index data.", "cancelButton": "Cancel", "confirmButton": "Clear Data" - } + }, + "configurationError": "Configuration Error", + "authenticationError": "Authentication Error", + "networkError": "Network Error", + "validationError": "Validation Error", + "unknownError": "Unknown Error" }, "autoApprove": { "description": "Allow Roo to automatically perform operations without requiring approval. Enable these settings only if you fully trust the AI and understand the associated security risks.", diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index fbfc832358..241ebf1f8f 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Borrar datos" }, "testConfigButton": "Probar configuración", - "testingButton": "Probando..." + "testingButton": "Probando...", + "configurationError": "Error de configuración", + "authenticationError": "Error de autenticación", + "networkError": "Error de red", + "validationError": "Error de validación", + "unknownError": "Error desconocido" }, "autoApprove": { "description": "Permitir que Roo realice operaciones automáticamente sin requerir aprobación. Habilite esta configuración solo si confía plenamente en la IA y comprende los riesgos de seguridad asociados.", diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index f08dd37b84..bc7e270088 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Effacer les données" }, "testConfigButton": "Tester la configuration", - "testingButton": "Test en cours..." + "testingButton": "Test en cours...", + "configurationError": "Erreur de configuration", + "authenticationError": "Erreur d'authentification", + "networkError": "Erreur réseau", + "validationError": "Erreur de validation", + "unknownError": "Erreur inconnue" }, "autoApprove": { "description": "Permettre à Roo d'effectuer automatiquement des opérations sans requérir d'approbation. Activez ces paramètres uniquement si vous faites entièrement confiance à l'IA et que vous comprenez les risques de sécurité associés.", diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 6f3521b03a..87d3bd2b5d 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -73,7 +73,12 @@ "confirmButton": "डेटा साफ़ करें" }, "testConfigButton": "कॉन्फ़िगरेशन का परीक्षण करें", - "testingButton": "परीक्षण हो रहा है..." + "testingButton": "परीक्षण हो रहा है...", + "configurationError": "कॉन्फ़िगरेशन त्रुटि", + "authenticationError": "प्रमाणीकरण त्रुटि", + "networkError": "नेटवर्क त्रुटि", + "validationError": "सत्यापन त्रुटि", + "unknownError": "अज्ञात त्रुटि" }, "autoApprove": { "description": "Roo को अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ऑपरेशन करने की अनुमति दें। इन सेटिंग्स को केवल तभी सक्षम करें जब आप AI पर पूरी तरह से भरोसा करते हों और संबंधित सुरक्षा जोखिमों को समझते हों।", diff --git a/webview-ui/src/i18n/locales/id/settings.json b/webview-ui/src/i18n/locales/id/settings.json index 34e2ed4ad4..7209d88c86 100644 --- a/webview-ui/src/i18n/locales/id/settings.json +++ b/webview-ui/src/i18n/locales/id/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Hapus Data" }, "testConfigButton": "Uji Konfigurasi", - "testingButton": "Menguji..." + "testingButton": "Menguji...", + "configurationError": "Kesalahan Konfigurasi", + "authenticationError": "Kesalahan Otentikasi", + "networkError": "Kesalahan Jaringan", + "validationError": "Kesalahan Validasi", + "unknownError": "Kesalahan Tidak Dikenal" }, "autoApprove": { "description": "Izinkan Roo untuk secara otomatis melakukan operasi tanpa memerlukan persetujuan. Aktifkan pengaturan ini hanya jika kamu sepenuhnya mempercayai AI dan memahami risiko keamanan yang terkait.", diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 78a449b5d3..643b27d04d 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Cancella dati" }, "testConfigButton": "Testa configurazione", - "testingButton": "Test in corso..." + "testingButton": "Test in corso...", + "configurationError": "Errore di configurazione", + "authenticationError": "Errore di autenticazione", + "networkError": "Errore di rete", + "validationError": "Errore di validazione", + "unknownError": "Errore sconosciuto" }, "autoApprove": { "description": "Permetti a Roo di eseguire automaticamente operazioni senza richiedere approvazione. Abilita queste impostazioni solo se ti fidi completamente dell'IA e comprendi i rischi di sicurezza associati.", diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index ae29ed4b6a..e530882413 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -73,7 +73,12 @@ "confirmButton": "データをクリア" }, "testConfigButton": "設定をテスト", - "testingButton": "テスト中..." + "testingButton": "テスト中...", + "configurationError": "設定エラー", + "authenticationError": "認証エラー", + "networkError": "ネットワークエラー", + "validationError": "検証エラー", + "unknownError": "不明なエラー" }, "autoApprove": { "description": "Rooが承認なしで自動的に操作を実行できるようにします。AIを完全に信頼し、関連するセキュリティリスクを理解している場合にのみ、これらの設定を有効にしてください。", diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index c451185cd7..41c6f18297 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -73,7 +73,12 @@ "confirmButton": "데이터 지우기" }, "testConfigButton": "구성 테스트", - "testingButton": "테스트 중..." + "testingButton": "테스트 중...", + "configurationError": "구성 오류", + "authenticationError": "인증 오류", + "networkError": "네트워크 오류", + "validationError": "유효성 검사 오류", + "unknownError": "알 수 없는 오류" }, "autoApprove": { "description": "Roo가 승인 없이 자동으로 작업을 수행할 수 있도록 허용합니다. AI를 완전히 신뢰하고 관련 보안 위험을 이해하는 경우에만 이러한 설정을 활성화하세요.", diff --git a/webview-ui/src/i18n/locales/nl/settings.json b/webview-ui/src/i18n/locales/nl/settings.json index ffaf9ead56..30f3021d4f 100644 --- a/webview-ui/src/i18n/locales/nl/settings.json +++ b/webview-ui/src/i18n/locales/nl/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Gegevens wissen" }, "testConfigButton": "Configuratie testen", - "testingButton": "Testen..." + "testingButton": "Testen...", + "configurationError": "Configuratiefout", + "authenticationError": "Authenticatiefout", + "networkError": "Netwerkfout", + "validationError": "Validatiefout", + "unknownError": "Onbekende fout" }, "autoApprove": { "description": "Sta Roo toe om automatisch handelingen uit te voeren zonder goedkeuring. Schakel deze instellingen alleen in als je de AI volledig vertrouwt en de bijbehorende beveiligingsrisico's begrijpt.", diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 8a5c0b165e..081aa58242 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Wyczyść dane" }, "testConfigButton": "Testuj konfigurację", - "testingButton": "Testowanie..." + "testingButton": "Testowanie...", + "configurationError": "Błąd konfiguracji", + "authenticationError": "Błąd uwierzytelniania", + "networkError": "Błąd sieci", + "validationError": "Błąd walidacji", + "unknownError": "Nieznany błąd" }, "autoApprove": { "description": "Pozwól Roo na automatyczne wykonywanie operacji bez wymagania zatwierdzenia. Włącz te ustawienia tylko jeśli w pełni ufasz AI i rozumiesz związane z tym zagrożenia bezpieczeństwa.", diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index 452bcc5427..050e07d2ce 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Limpar Dados" }, "testConfigButton": "Testar Configuração", - "testingButton": "Testando..." + "testingButton": "Testando...", + "configurationError": "Erro de Configuração", + "authenticationError": "Erro de Autenticação", + "networkError": "Erro de Rede", + "validationError": "Erro de Validação", + "unknownError": "Erro Desconhecido" }, "autoApprove": { "description": "Permitir que o Roo realize operações automaticamente sem exigir aprovação. Ative essas configurações apenas se confiar totalmente na IA e compreender os riscos de segurança associados.", diff --git a/webview-ui/src/i18n/locales/ru/settings.json b/webview-ui/src/i18n/locales/ru/settings.json index 72710c44e2..8c5239da48 100644 --- a/webview-ui/src/i18n/locales/ru/settings.json +++ b/webview-ui/src/i18n/locales/ru/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Очистить данные" }, "testConfigButton": "Тестировать конфигурацию", - "testingButton": "Тестирование..." + "testingButton": "Тестирование...", + "configurationError": "Ошибка конфигурации", + "authenticationError": "Ошибка аутентификации", + "networkError": "Сетевая ошибка", + "validationError": "Ошибка валидации", + "unknownError": "Неизвестная ошибка" }, "autoApprove": { "description": "Разрешить Roo автоматически выполнять операции без необходимости одобрения. Включайте эти параметры только если полностью доверяете ИИ и понимаете связанные с этим риски безопасности.", diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index d1edc1fe67..3a0833b0a4 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Verileri Temizle" }, "testConfigButton": "Yapılandırmayı Test Et", - "testingButton": "Test ediliyor..." + "testingButton": "Test ediliyor...", + "configurationError": "Yapılandırma Hatası", + "authenticationError": "Kimlik Doğrulama Hatası", + "networkError": "Ağ Hatası", + "validationError": "Doğrulama Hatası", + "unknownError": "Bilinmeyen Hata" }, "autoApprove": { "description": "Roo'nun onay gerektirmeden otomatik olarak işlemler gerçekleştirmesine izin verin. Bu ayarları yalnızca yapay zekaya tamamen güveniyorsanız ve ilgili güvenlik risklerini anlıyorsanız etkinleştirin.", diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 5d79e5abba..84cec9417c 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -73,7 +73,12 @@ "confirmButton": "Xóa dữ liệu" }, "testConfigButton": "Kiểm tra cấu hình", - "testingButton": "Đang kiểm tra..." + "testingButton": "Đang kiểm tra...", + "configurationError": "Lỗi cấu hình", + "authenticationError": "Lỗi xác thực", + "networkError": "Lỗi mạng", + "validationError": "Lỗi xác thực", + "unknownError": "Lỗi không xác định" }, "autoApprove": { "description": "Cho phép Roo tự động thực hiện các hoạt động mà không cần phê duyệt. Chỉ bật những cài đặt này nếu bạn hoàn toàn tin tưởng AI và hiểu rõ các rủi ro bảo mật liên quan.", diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index e4eed1cf9b..2ae5079ef0 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -73,7 +73,12 @@ "confirmButton": "清除数据" }, "testConfigButton": "测试配置", - "testingButton": "测试中..." + "testingButton": "测试中...", + "configurationError": "配置错误", + "authenticationError": "身份验证错误", + "networkError": "网络错误", + "validationError": "验证错误", + "unknownError": "未知错误" }, "autoApprove": { "description": "允许 Roo 自动执行操作而无需批准。只有在您完全信任 AI 并了解相关安全风险的情况下才启用这些设置。", diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index b1305f3b16..7f6359a80f 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -73,7 +73,12 @@ "confirmButton": "清除資料" }, "testConfigButton": "測試配置", - "testingButton": "測試中..." + "testingButton": "測試中...", + "configurationError": "設定錯誤", + "authenticationError": "驗證錯誤", + "networkError": "網路錯誤", + "validationError": "驗證錯誤", + "unknownError": "未知錯誤" }, "autoApprove": { "description": "允許 Roo 無需核准即執行操作。僅在您完全信任 AI 並了解相關安全風險時啟用這些設定。",