You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix: add embedder validation to prevent misleading status indicators (RooCodeInc#4398)
* fix: address PR feedback and fix critical issues
- Fixed settings-save flow to save before validation
- Fixed Error constructor usage in scanner.ts
- Fixed segment identification in file-watcher.ts
- Added missing translation keys for embedder validation errors
* fix: add missing Ollama translation keys
- Added missing ollama.title, description, and settings keys
- Fixed translation check failure in CI/CD pipeline
- Synchronized all 17 non-English locale files
* feat: add proactive embedder validation on provider switch
- Validate embedder connection when switching providers
- Prevent misleading 'Indexed' status when embedder is unavailable
- Show immediate error feedback for invalid configurations
- Add comprehensive test coverage for validation flow
This ensures users get immediate feedback when configuring embedders,
preventing confusion when providers like Ollama are not accessible.
* fix: improve error handling and validation in code indexing process
* refactor: extract common embedder validation and error handling logic
- Created shared/validation-helpers.ts with centralized error handling utilities
- Refactored OpenAI, OpenAI-Compatible, and Ollama embedders to use shared helpers
- Eliminated duplicate error handling code across embedders
- Improved maintainability and consistency of error handling
- Fixed test compatibility in manager.spec.ts
- All 2721 tests passing
* refactor: simplify validation helpers by removing unnecessary wrapper functions
- Removed getErrorMessageForConnectionError and inlined logic into handleValidationError
- Removed isRateLimitError, logRateLimitRetry, and logEmbeddingError wrapper functions
- Updated openai.ts and openai-compatible.ts to inline rate limit checking and logging
- Reduced code complexity while maintaining all functionality
- All 311 tests continue to pass
* fix: add missing invalidResponse i18n key and fix French translation
- Added missing 'invalidResponse' key to all locale files
- Fixed French translation: changed 'and accessible' to 'et accessible'
- Ensures proper error messages are displayed when embedder returns invalid responses
* fix: restore removed score settings in webviewMessageHandler
- Restored codebaseIndexSearchMaxResults and codebaseIndexSearchMinScore settings that were unintentionally removed
- Keep embedder validation related changes
* fix: revert unintended changes to file-watcher and scanner
- Reverted point ID generation back to using line numbers instead of segmentHash
- Restored { cause: deleteError } parameter in scanner error handling
- These changes were unrelated to the embedder validation feature
---------
Co-authored-by: Daniel Riccio <[email protected]>
Copy file name to clipboardExpand all lines: src/i18n/locales/ca/embeddings.json
+19-1Lines changed: 19 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,12 @@
10
10
"couldNotReadErrorBody": "No s'ha pogut llegir el cos de l'error",
11
11
"requestFailed": "La sol·licitud de l'API d'Ollama ha fallat amb l'estat {{status}} {{statusText}}: {{errorBody}}",
12
12
"invalidResponseStructure": "Estructura de resposta no vàlida de l'API d'Ollama: no s'ha trobat la matriu \"embeddings\" o no és una matriu.",
13
-
"embeddingFailed": "La incrustació d'Ollama ha fallat: {{message}}"
13
+
"embeddingFailed": "La incrustació d'Ollama ha fallat: {{message}}",
14
+
"serviceNotRunning": "El servei d'Ollama no s'està executant a {{baseUrl}}",
15
+
"serviceUnavailable": "El servei d'Ollama no està disponible (estat: {{status}})",
16
+
"modelNotFound": "No s'ha trobat el model d'Ollama: {{modelId}}",
17
+
"modelNotEmbeddingCapable": "El model d'Ollama no és capaç de fer incrustacions: {{modelId}}",
18
+
"hostNotFound": "No s'ha trobat l'amfitrió d'Ollama: {{baseUrl}}"
14
19
},
15
20
"scanner": {
16
21
"unknownErrorProcessingFile": "Error desconegut en processar el fitxer {{filePath}}",
@@ -19,5 +24,18 @@
19
24
},
20
25
"vectorStore": {
21
26
"qdrantConnectionFailed": "No s'ha pogut connectar a la base de dades vectorial Qdrant. Assegura't que Qdrant estigui funcionant i sigui accessible a {{qdrantUrl}}. Error: {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "Ha fallat l'autenticació. Comproveu la vostra clau d'API a la configuració.",
30
+
"connectionFailed": "No s'ha pogut connectar al servei d'incrustació. Comproveu la vostra configuració de connexió i assegureu-vos que el servei estigui funcionant.",
31
+
"modelNotAvailable": "El model especificat no està disponible. Comproveu la vostra configuració de model.",
32
+
"configurationError": "Configuració d'incrustació no vàlida. Reviseu la vostra configuració.",
33
+
"serviceUnavailable": "El servei d'incrustació no està disponible. Assegureu-vos que estigui funcionant i sigui accessible.",
34
+
"invalidEndpoint": "Punt final d'API no vàlid. Comproveu la vostra configuració d'URL.",
35
+
"invalidEmbedderConfig": "Configuració d'incrustació no vàlida. Comproveu la vostra configuració.",
36
+
"invalidApiKey": "Clau d'API no vàlida. Comproveu la vostra configuració de clau d'API.",
37
+
"invalidBaseUrl": "URL base no vàlida. Comproveu la vostra configuració d'URL.",
38
+
"invalidModel": "Model no vàlid. Comproveu la vostra configuració de model.",
39
+
"invalidResponse": "Resposta no vàlida del servei d'incrustació. Comproveu la vostra configuració."
"serviceNotRunning": "Ollama-Dienst wird unter {{baseUrl}} nicht ausgeführt",
15
+
"serviceUnavailable": "Ollama-Dienst ist nicht verfügbar (Status: {{status}})",
16
+
"modelNotFound": "Ollama-Modell nicht gefunden: {{modelId}}",
17
+
"modelNotEmbeddingCapable": "Ollama-Modell ist nicht für Einbettungen geeignet: {{modelId}}",
18
+
"hostNotFound": "Ollama-Host nicht gefunden: {{baseUrl}}"
14
19
},
15
20
"scanner": {
16
21
"unknownErrorProcessingFile": "Unbekannter Fehler beim Verarbeiten der Datei {{filePath}}",
@@ -19,5 +24,18 @@
19
24
},
20
25
"vectorStore": {
21
26
"qdrantConnectionFailed": "Verbindung zur Qdrant-Vektordatenbank fehlgeschlagen. Stelle sicher, dass Qdrant läuft und unter {{qdrantUrl}} erreichbar ist. Fehler: {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "Authentifizierung fehlgeschlagen. Bitte überprüfe deinen API-Schlüssel in den Einstellungen.",
30
+
"connectionFailed": "Verbindung zum Embedder-Dienst fehlgeschlagen. Bitte überprüfe deine Verbindungseinstellungen und stelle sicher, dass der Dienst läuft.",
31
+
"modelNotAvailable": "Das angegebene Modell ist nicht verfügbar. Bitte überprüfe deine Modellkonfiguration.",
"qdrantConnectionFailed": "Failed to connect to Qdrant vector database. Please ensure Qdrant is running and accessible at {{qdrantUrl}}. Error: {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "Authentication failed. Please check your API key in the settings.",
30
+
"connectionFailed": "Failed to connect to the embedder service. Please check your connection settings and ensure the service is running.",
31
+
"modelNotAvailable": "The specified model is not available. Please check your model configuration.",
32
+
"configurationError": "Invalid embedder configuration. Please review your settings.",
33
+
"serviceUnavailable": "The embedder service is not available. Please ensure it is running and accessible.",
34
+
"invalidEndpoint": "Invalid API endpoint. Please check your URL configuration.",
35
+
"invalidEmbedderConfig": "Invalid embedder configuration. Please check your settings.",
36
+
"invalidApiKey": "Invalid API key. Please check your API key configuration.",
37
+
"invalidBaseUrl": "Invalid base URL. Please check your URL configuration.",
38
+
"invalidModel": "Invalid model. Please check your model configuration.",
39
+
"invalidResponse": "Invalid response from embedder service. Please check your configuration."
"qdrantConnectionFailed": "Error al conectar con la base de datos vectorial Qdrant. Asegúrate de que Qdrant esté funcionando y sea accesible en {{qdrantUrl}}. Error: {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "Error de autenticación. Comprueba tu clave de API en los ajustes.",
30
+
"connectionFailed": "Error al conectar con el servicio de embedder. Comprueba los ajustes de conexión y asegúrate de que el servicio esté funcionando.",
31
+
"modelNotAvailable": "El modelo especificado no está disponible. Comprueba la configuración de tu modelo.",
32
+
"configurationError": "Configuración de embedder no válida. Revisa tus ajustes.",
33
+
"serviceUnavailable": "El servicio de embedder no está disponible. Asegúrate de que esté funcionando y sea accesible.",
34
+
"invalidEndpoint": "Punto de conexión de API no válido. Comprueba la configuración de tu URL.",
35
+
"invalidEmbedderConfig": "Configuración de embedder no válida. Comprueba tus ajustes.",
36
+
"invalidApiKey": "Clave de API no válida. Comprueba la configuración de tu clave de API.",
37
+
"invalidBaseUrl": "URL base no válida. Comprueba la configuración de tu URL.",
38
+
"invalidModel": "Modelo no válido. Comprueba la configuración de tu modelo.",
39
+
"invalidResponse": "Respuesta no válida del servicio de embedder. Comprueba tu configuración."
"unknownErrorProcessingFile": "Erreur inconnue lors du traitement du fichier {{filePath}}",
@@ -19,5 +24,18 @@
19
24
},
20
25
"vectorStore": {
21
26
"qdrantConnectionFailed": "Échec de la connexion à la base de données vectorielle Qdrant. Veuillez vous assurer que Qdrant fonctionne et est accessible à {{qdrantUrl}}. Erreur : {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "Échec de l'authentification. Veuillez vérifier votre clé API dans les paramètres.",
30
+
"connectionFailed": "Échec de la connexion au service d'embedding. Veuillez vérifier vos paramètres de connexion et vous assurer que le service est en cours d'exécution.",
31
+
"modelNotAvailable": "Le modèle spécifié n'est pas disponible. Veuillez vérifier la configuration de votre modèle.",
32
+
"configurationError": "Configuration de l'embedder invalide. Veuillez vérifier vos paramètres.",
33
+
"serviceUnavailable": "Le service d'embedding n'est pas disponible. Veuillez vous assurer qu'il est en cours d'exécution et accessible.",
"serviceNotRunning": "ओलामा सेवा {{baseUrl}} पर नहीं चल रही है",
15
+
"serviceUnavailable": "ओलामा सेवा अनुपलब्ध है (स्थिति: {{status}})",
16
+
"modelNotFound": "ओलामा मॉडल नहीं मिला: {{modelId}}",
17
+
"modelNotEmbeddingCapable": "ओलामा मॉडल एम्बेडिंग में सक्षम नहीं है: {{modelId}}",
18
+
"hostNotFound": "ओलामा होस्ट नहीं मिला: {{baseUrl}}"
14
19
},
15
20
"scanner": {
16
21
"unknownErrorProcessingFile": "फ़ाइल {{filePath}} प्रसंस्करण में अज्ञात त्रुटि",
@@ -19,5 +24,18 @@
19
24
},
20
25
"vectorStore": {
21
26
"qdrantConnectionFailed": "Qdrant वेक्टर डेटाबेस से कनेक्ट करने में विफल। कृपया सुनिश्चित करें कि Qdrant चल रहा है और {{qdrantUrl}} पर पहुंच योग्य है। त्रुटि: {{errorMessage}}"
27
+
},
28
+
"validation": {
29
+
"authenticationFailed": "प्रमाणीकरण विफल। कृपया सेटिंग्स में अपनी एपीआई कुंजी जांचें।",
30
+
"connectionFailed": "एम्बेडर सेवा से कनेक्ट करने में विफल। कृपया अपनी कनेक्शन सेटिंग्स जांचें और सुनिश्चित करें कि सेवा चल रही है।",
31
+
"modelNotAvailable": "निर्दिष्ट मॉडल उपलब्ध नहीं है। कृपया अपनी मॉडल कॉन्फ़िगरेशन जांचें।",
32
+
"configurationError": "अमान्य एम्बेडर कॉन्फ़िगरेशन। कृपया अपनी सेटिंग्स की समीक्षा करें।",
33
+
"serviceUnavailable": "एम्बेडर सेवा उपलब्ध नहीं है। कृपया सुनिश्चित करें कि यह चल रहा है और पहुंच योग्य है।",
34
+
"invalidEndpoint": "अमान्य एपीआई एंडपॉइंट। कृपया अपनी यूआरएल कॉन्फ़िगरेशन जांचें।",
35
+
"invalidEmbedderConfig": "अमान्य एम्बेडर कॉन्फ़िगरेशन। कृपया अपनी सेटिंग्स जांचें।",
36
+
"invalidApiKey": "अमान्य एपीआई कुंजी। कृपया अपनी एपीआई कुंजी कॉन्फ़िगरेशन जांचें।",
37
+
"invalidBaseUrl": "अमान्य बेस यूआरएल। कृपया अपनी यूआरएल कॉन्फ़िगरेशन जांचें।",
38
+
"invalidModel": "अमान्य मॉडल। कृपया अपनी मॉडल कॉन्फ़िगरेशन जांचें।",
39
+
"invalidResponse": "एम्बेडर सेवा से अमान्य प्रतिक्रिया। कृपया अपनी कॉन्फ़िगरेशन जांचें।"
0 commit comments