P3: Ephemeral Memory Architecture (No Persistence)
Status: OPEN Priority: P3 (Feature/Architecture Gap) Found By: Codebase Investigation Date: 2025-11-29
Description
The current EmbeddingService (src/services/embeddings.py) initializes an in-memory ChromaDB client (chromadb.Client()) and creates a random UUID-based collection for every new session.
While src/utils/config.py defines a chroma_db_path for persistence, it is currently ignored.
Impact
- No Long-Term Learning: The agent cannot "remember" research from previous runs. Every time you restart the app, it starts from zero.
- Redundant Costs: If a user researches "Diabetes" twice, the agent re-searches and re-embeds the same papers, wasting tokens and compute time.
Technical Details
- Current:
self._client = chromadb.Client()(In-Memory) - Required:
self._client = chromadb.PersistentClient(path=settings.chroma_db_path)
Recommendation
For a "Hackathon Demo," this is low priority (ephemeral is fine). For a "Real Product," this is critical (users expect a library of research).