@@ -4,6 +4,59 @@ All notable changes to VecGrep are documented here.
44
55---
66
7+ ## [ 1.5.0] — 2026-02-28
8+
9+ ### Breaking Changes
10+
11+ - ** Store backend replaced** : SQLite + numpy vector store replaced with LanceDB.
12+ Existing indexes at ` ~/.vecgrep/ ` must be re-indexed after upgrading —
13+ simply run ` index_codebase ` again on your project.
14+
15+ ### Added
16+
17+ ** Performance**
18+ - ** fastembed ONNX backend** — default embedding backend switched from
19+ sentence-transformers (PyTorch) to fastembed (ONNX Runtime).
20+ MCP server startup: ~ 6.6s → ~ 1.25s. First embed call: ~ 2–3s → ~ 100ms.
21+ - ** IVF-PQ ANN index** — ` build_index() ` creates an approximate nearest
22+ neighbour index after indexing for sub-linear search on large codebases.
23+ - ** ` file_stats ` table** — O(files) change detection table. Incremental
24+ re-indexing now reads one row per file instead of scanning all chunks.
25+ - ** Auto device detection** — selects Metal (Apple Silicon), CUDA (NVIDIA),
26+ or CPU automatically for the torch backend.
27+
28+ ** Configuration**
29+ - ` VECGREP_BACKEND ` env var — ` onnx ` (default, fast) or ` torch ` (any HF model).
30+ - ` VECGREP_MODEL ` env var — override the default HuggingFace model ID.
31+ - Default model switched to [ ` isuruwijesiri/all-MiniLM-L6-v2-code-search-512 ` ] ( https://huggingface.co/isuruwijesiri/all-MiniLM-L6-v2-code-search-512 ) ,
32+ fine-tuned for semantic code search (384-dim, ~ 80MB one-time download).
33+
34+ ** MCP tools**
35+ - ` stop_watching ` — new tool to explicitly stop watching a codebase path.
36+ - Watch state persisted to ` ~/.vecgrep/watched.json ` and restored on restart.
37+ - Background startup sync via daemon thread — server starts immediately.
38+
39+ ** Developer experience**
40+ - ` .githooks/pre-commit ` lint check — run ` git config core.hooksPath .githooks `
41+ once per clone to enable.
42+
43+ ### Fixed
44+
45+ - ` build_index() ` passed ` "vector" ` as positional arg to ` create_index() ` ,
46+ mapping to ` metric ` instead of ` vector_column_name ` .
47+ - ` list_tables() ` returned ` ListTablesResponse ` instead of a plain list,
48+ causing ` set() ` to fail with an unhashable type error.
49+
50+ ### Performance summary
51+
52+ | Metric | 1.0.0 | 1.5.0 |
53+ | ---| ---| ---|
54+ | MCP server startup | ~ 6.6s | ~ 1.25s |
55+ | Model load (first embed) | ~ 2–3s | ~ 100ms |
56+ | Change detection | O(chunks) SHA-256 | O(files) mtime+size |
57+
58+ ---
59+
760## [ 1.0.0] — 2026-02-22
861
962First stable release.
0 commit comments