notes v0.3.0
·
12 commits
to main
since this release
@abhishekmcp/notes v0.3.0 — local semantic search
Adds meaning-based search alongside the existing keyword search — all still pure-JS, no native deps, no API keys, nothing leaves your machine.
Added
semantic_search— ranks notes by meaning using local embeddings, so it finds related notes even with no shared keywords (e.g. "puppy" matches a note about "canine companions"). Optionalhybridmode fuses semantic + keyword ranking via Reciprocal Rank Fusion.- Runs all-MiniLM-L6-v2 (ONNX) on onnxruntime-web (WebAssembly — no native modules). The quantized model (~23 MB) is downloaded once at runtime to
~/.cache/mcp-notes/models(override withNOTES_MODEL_DIR); per-note vectors are cached in.notes-embeddings.jsonand incrementally synced. - Hand-rolled BERT WordPiece tokenizer — same no-dependency spirit as the frontmatter parser.
Notes
- Lazy by design: startup, offline use, and keyword search are completely unchanged for anyone who never calls
semantic_search. The first call needs network for the one-time model download and embeds the whole vault; everything after is offline and fast. A model download/load failure returns a clean error and never takes the server down. - npm audit clean (0 vulnerabilities, no native binaries). Published with provenance via OIDC.