AI/Tasks/MemoryUpgrades/Memory_Phase09_RetreivalAPI.txt

Add a ranked retrieval API to the memory subsystem.
Apply changes ONLY within memory subsystem files and memory tests.
 
Concrete scope:
- src/TechToolbox.Agent/Memory/MemoryStore.cs
- src/TechToolbox.Agent/Memory/MemoryModels.cs
- src/TechToolbox.Agent/Memory/MemoryLearner.cs (only if needed for provenance fields)
- src/TechToolbox.Agent/Tests/*Memory*.cs
 
Requirements:
- Add a read-only query API that returns ranked memory matches.
- Ranking signals must include: exact match, keyword overlap, confidence, recency, source category/type.
- Include provenance and concise match reasoning per result.
- Enforce max-result cap and avoid large prompt-memory injection patterns.
- Keep session memory, user preferences, and system facts logically separable in results/filtering.
- Do not modify unrelated subsystems.
 
Acceptance criteria:
- Deterministic ordering for equal-score ties (stable tie-breaker).
- API supports caller-provided max results with safe default cap.
- Tests cover relevance ordering and separation/filter rules.
 
Validation:
- dotnet build src/TechToolbox.Agent/TechToolbox.Agent.csproj -c Release
- dotnet test src/TechToolbox.Agent/Tests/TechToolbox.Agent.Tests.csproj -c Release --filter "Memory|Retriev|Query|Rank"
 
Output results in markdown using this structure:
1) Summary
2) Files changed
3) Retrieval API surface
4) Ranking formula/signals
5) Tests added/updated
6) Validation results