40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# 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`
|