Frontmatter
| id | 9719 |
| title | Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Apr 5, 2026, 11:41 AM |
| updatedAt | Apr 5, 2026, 11:43 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9719 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Apr 5, 2026, 11:42 AM |
Hybrid Vector DB: Decouple TextEmbeddingService and Eliminate Provider Fallbacks
Closedenhancementai
tobiu assigned to @tobiu on Apr 5, 2026, 11:42 AM

tobiu
Apr 5, 2026, 11:42 AM
Fix committed locally and pushed to the repository. The implementation removes the global fallback and enforces rigorous provider configurations in , ensuring deterministic routing in engine setups.
tobiu closed this issue on Apr 5, 2026, 11:42 AM

tobiu
Apr 5, 2026, 11:43 AM
Fix committed locally and pushed to the repository. The implementation removes the global embeddingProvider fallback and enforces rigorous provider configurations in TextEmbeddingService, ensuring deterministic routing in both engine setups.
Problem
The
TextEmbeddingServicerelied on a global fallbackaiConfig.embeddingProvideralongside engine-specific configs (chromaEmbeddingProviderandneoEmbeddingProvider). This created ambiguity, caused potential API key requirement issues (GEMINI_API_KEYbeing required even if local embeddings are preferred), and prevented a cleanbothengine mode setup from operating correctly since both storage managers shared the same fallback context.Solution
embeddingProviderfromconfig.mjsto eliminate fallback ambiguity.TextEmbeddingServiceto require explicit provider declaration viaembedText(text, explicitProvider).ChromaManagerandSQLiteVectorManagerto strictly supply their respective embedding engine requirements to theTextEmbeddingService.HealthServiceAPI key checks to properly identifychromavsneoengine requirements without assuminggeminibased on a global fallback.