feat(ai): semantic-search backfill worker + Ollama compose profile (RECOMMENDATIONS #4a)
CI / backend (pull_request) Successful in 49s
CI / frontend (pull_request) Successful in 12s
CI / format (pull_request) Successful in 50s
CI / db-tests (pull_request) Successful in 51s
Security / secrets (pull_request) Successful in 4s
Security / dependencies (pull_request) Successful in 52s
CI / backend (pull_request) Successful in 49s
CI / frontend (pull_request) Successful in 12s
CI / format (pull_request) Successful in 50s
CI / db-tests (pull_request) Successful in 51s
Security / secrets (pull_request) Successful in 4s
Security / dependencies (pull_request) Successful in 52s
First activation slice of semantic search (docs/discovery/05+06): - EmbeddingBackfillWorker: fills Email.Embedding in small batches (32, 2s pause, newest first; subject+snippet, truncated) so interactive load is never starved. Exits immediately when the embedding provider is unavailable — AI-off deployments are untouched, Ollama hiccups back off instead of crashing the host. - compose: optional 'ollama' service under the 'ai' profile (persistent model volume, commented GPU passthrough for the RTX 3080); api gets Ai__OllamaBaseUrl pointing at it. - LiveDb test proves the worker persists 768-dim vectors against real pgvector (deterministic fake provider); LiveDb classes serialised into one xUnit collection (concurrent MigrateAsync on a fresh DB races — found while testing). Verified against REAL Ollama locally: pulled nomic-embed-text in a container and confirmed the /api/embeddings contract the provider uses returns 768-dim vectors. Full suite 55 green (4 LiveDb vs real pgvector); format clean. Next slice: hybrid RRF ranking in SearchService once embeddings exist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ namespace InboxIntel.IntegrationTests;
|
||||
/// InMemory test run is unaffected.
|
||||
/// </summary>
|
||||
[Trait("Category", "LiveDb")]
|
||||
[Collection("LiveDb")] // serialise LiveDb classes: concurrent MigrateAsync on a fresh DB races
|
||||
public class LiveDbSearchTests
|
||||
{
|
||||
private static string? Conn => Environment.GetEnvironmentVariable("LIVEDB_CONNECTION");
|
||||
|
||||
Reference in New Issue
Block a user