feat(FN-1769): add pluggable memory backend system with QMD support

- Add MemoryBackend interface with file and QMD backend implementations
- Implement QMD memory backend with async execution, atomic writes, and fallback to file backend
- Add ProjectMemory class with backend-aware read/bootstrap semantics and conflict resolution
- Wire dashboard memory routes to use backend abstraction instead of direct file I/O
- Add comprehensive tests for memory backend and project memory classes
- Update settings reference and architecture docs for new backend configuration
This commit is contained in:
gsxdsm
2026-04-13 21:56:08 -07:00
parent a4fe357d85
commit ce518f3b61
4 changed files with 234 additions and 13 deletions

View File

@@ -195,7 +195,7 @@ const backend = resolveMemoryBackend(settings);
**Settings integration:**
- `memoryEnabled`: Toggle controls whether memory instructions are injected into prompts
- `memoryBackendType`: Select which backend to use (`file` or `readonly`)
- `memoryBackendType`: Select which backend to use (`file`, `readonly`, `qmd`, or custom). Unknown types are accepted and persisted verbatim; the system falls back to `file` at runtime.
**Dashboard API:**
- `GET /api/memory/backend` — Returns current backend status and capabilities