1.2 KiB
1.2 KiB
Tasks — Memory v2
Prerequisites
- v2.8.0 on main (v1 memory module shipped)
Tasks
1. BM25 ranker
- 1.1 Write
bm25.ts— pure function, no deps. BM25Okapi formula:sum over terms of IDF * (tf * (k1 + 1)) / (tf + k1 * (1 - b + b * docLen / avgDocLen)) - 1.2 Unit tests with known corpus
2. Embedding module
- 2.1 Write
embeddings.ts— load ONNX model,embed(texts: string[]): number[][] - 2.2 Write
ranker.ts— cosine similarity + BM25 weighted merge - 2.3 Fallback to BM25-only when model unavailable
3. Hybrid recall
- 3.1 Refactor
recall.ts—rankByRelevance→rankByHybridusing BM25 + embedding when available - 3.2 Keep keyword-only path as
MEMORY_SEARCH=keywordenv fallback - 3.3 Server tests pass
4. Agent tools
- 4.1 Create
extract_memorytool — persists entry, returns path - 4.2 Create
search_memorytool — replaces raw injection when used - 4.3 Tool tests pass
5. Smoke
- 5.1 Create
.boocode/memory/project/style.mdwith "Use two-space indentation" - 5.2
search_memory("what spacing convention")returns the entry - 5.3
extract_memory("project", "Naming", "PascalCase for components")creates the file