Adolfo Delorenzo
45b957377f
feat(02-01): wire two-layer memory into orchestrator pipeline
- builder.py: add build_messages_with_memory() — injects pgvector context as
system message + sliding window history before current user turn
- runner.py: accept optional messages parameter; fallback to simple build for
backward compat (existing tests unaffected)
- tasks.py: memory pipeline in _process_message — load short-term + retrieve
long-term before LLM call; append turns to Redis + dispatch embed_and_store
fire-and-forget after response
- tasks.py: add embed_and_store Celery task (sync def + asyncio.run()) for
async pgvector backfill — never blocks the LLM response pipeline
- memory/embedder.py: lazy singleton SentenceTransformer (all-MiniLM-L6-v2)
with embed_text() / embed_texts() helpers
- All 202 tests pass (196 existing + 6 new memory integration tests)