M3-007: Add periodic health check scheduler to — runs on all registered adapters at a configurable interval ( env, default 60s), caches results per provider, and exposes returning .
M3-009: Refactor to be provider-agnostic: defaults to Ollama native with model (768 dims); falls back to OpenAI-compatible API when or is set; respects , , env vars; logs a dimension mismatch warning when switching from 1536-dim OpenAI vectors.
Test plan
typecheck: pass
lint: pass
format:check: pass
Verify GET /api/providers/health returns provider list with status fields
Verify EmbeddingService uses Ollama when OLLAMA_BASE_URL is set
Verify EmbeddingService falls back to OpenAI when OPENAI_API_KEY is set and no Ollama URL
Verify dimension mismatch warning logged when dimensions differ from pgvector schema
## Summary
- **M3-007**: Add periodic health check scheduler to — runs on all registered adapters at a configurable interval ( env, default 60s), caches results per provider, and exposes returning .
- **M3-009**: Refactor to be provider-agnostic: defaults to Ollama native with model (768 dims); falls back to OpenAI-compatible API when or is set; respects , , env vars; logs a dimension mismatch warning when switching from 1536-dim OpenAI vectors.
## Test plan
- [x] typecheck: pass
- [x] lint: pass
- [x] format:check: pass
- [ ] Verify GET /api/providers/health returns provider list with status fields
- [ ] Verify EmbeddingService uses Ollama when OLLAMA_BASE_URL is set
- [ ] Verify EmbeddingService falls back to OpenAI when OPENAI_API_KEY is set and no Ollama URL
- [ ] Verify dimension mismatch warning logged when dimensions differ from pgvector schema
M3-007: Add periodic health check scheduler to ProviderService (configurable
via PROVIDER_HEALTH_INTERVAL env, default 60s) with cached status per adapter,
and expose GET /api/providers/health endpoint returning { providers: [...] }.
M3-009: Refactor EmbeddingService to default to Ollama (nomic-embed-text, 768
dims) with OpenAI-compatible fallback when EMBEDDING_PROVIDER=openai or
OPENAI_API_KEY is set; add dimension mismatch warning for pgvector schema.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Test plan
M3-007: Add periodic health check scheduler to ProviderService (configurable via PROVIDER_HEALTH_INTERVAL env, default 60s) with cached status per adapter, and expose GET /api/providers/health endpoint returning { providers: [...] }. M3-009: Refactor EmbeddingService to default to Ollama (nomic-embed-text, 768 dims) with OpenAI-compatible fallback when EMBEDDING_PROVIDER=openai or OPENAI_API_KEY is set; add dimension mismatch warning for pgvector schema. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>