Files
flynn/docs/plans/2026-02-16-qmd-backend-checklist.md
T
2026-02-15 19:33:43 -08:00

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`