feat(memory): add experimental qmd search backend
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# QMD Backend Checklist
|
||||
|
||||
Date: 2026-02-16
|
||||
Status: completed
|
||||
|
||||
## Scope
|
||||
|
||||
- Add an experimental QMD (query markdown database) backend for `memory.search`.
|
||||
- Enable config-driven backend selection between hybrid embeddings, QMD, and keyword fallback.
|
||||
- Update docs and plan state.
|
||||
|
||||
## Completed
|
||||
|
||||
- Added `memory.qmd` config schema in `src/config/schema.ts`:
|
||||
- `enabled` (default `false`)
|
||||
- `top_k` (default `8`)
|
||||
- `min_score` (default `0.15`)
|
||||
- Implemented `QmdSearch` backend in `src/memory/qmd-search.ts`:
|
||||
- heading-aware scoring
|
||||
- token overlap + phrase bonus ranking
|
||||
- session namespace recency boost
|
||||
- Wired backend selection in `src/daemon/memory.ts`:
|
||||
- embedding enabled -> hybrid backend
|
||||
- else if qmd enabled -> QMD backend
|
||||
- else keyword-only search
|
||||
- Generalized memory search tool wiring:
|
||||
- introduced shared backend interface for `memory.search`
|
||||
- updated memory tool factory to accept any backend implementing `search(query, topK?)`
|
||||
- Updated docs:
|
||||
- README memory section now documents QMD config and backend precedence.
|
||||
- OpenClaw gap docs updated to mark QMD backend as implemented.
|
||||
- Added tests:
|
||||
- `src/memory/qmd-search.test.ts`
|
||||
- `src/config/schema.test.ts` coverage for `memory.qmd`
|
||||
|
||||
## Verification
|
||||
|
||||
- `pnpm test:run src/config/schema.test.ts src/memory/qmd-search.test.ts`
|
||||
- `pnpm typecheck`
|
||||
Reference in New Issue
Block a user