Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,59 @@ All notable changes to VecGrep are documented here.

---

## [1.5.0] β€” 2026-02-28

### Breaking Changes

- **Store backend replaced**: SQLite + numpy vector store replaced with LanceDB.
Existing indexes at `~/.vecgrep/` must be re-indexed after upgrading β€”
simply run `index_codebase` again on your project.

### Added

**Performance**
- **fastembed ONNX backend** β€” default embedding backend switched from
sentence-transformers (PyTorch) to fastembed (ONNX Runtime).
MCP server startup: ~6.6s β†’ ~1.25s. First embed call: ~2–3s β†’ ~100ms.
- **IVF-PQ ANN index** β€” `build_index()` creates an approximate nearest
neighbour index after indexing for sub-linear search on large codebases.
- **`file_stats` table** β€” O(files) change detection table. Incremental
re-indexing now reads one row per file instead of scanning all chunks.
- **Auto device detection** β€” selects Metal (Apple Silicon), CUDA (NVIDIA),
or CPU automatically for the torch backend.

**Configuration**
- `VECGREP_BACKEND` env var β€” `onnx` (default, fast) or `torch` (any HF model).
- `VECGREP_MODEL` env var β€” override the default HuggingFace model ID.
- Default model switched to [`isuruwijesiri/all-MiniLM-L6-v2-code-search-512`](https://huggingface.co/isuruwijesiri/all-MiniLM-L6-v2-code-search-512),
fine-tuned for semantic code search (384-dim, ~80MB one-time download).

**MCP tools**
- `stop_watching` β€” new tool to explicitly stop watching a codebase path.
- Watch state persisted to `~/.vecgrep/watched.json` and restored on restart.
- Background startup sync via daemon thread β€” server starts immediately.

**Developer experience**
- `.githooks/pre-commit` lint check β€” run `git config core.hooksPath .githooks`
once per clone to enable.

### Fixed

- `build_index()` passed `"vector"` as positional arg to `create_index()`,
mapping to `metric` instead of `vector_column_name`.
- `list_tables()` returned `ListTablesResponse` instead of a plain list,
causing `set()` to fail with an unhashable type error.

### Performance summary

| Metric | 1.0.0 | 1.5.0 |
|---|---|---|
| MCP server startup | ~6.6s | ~1.25s |
| Model load (first embed) | ~2–3s | ~100ms |
| Change detection | O(chunks) SHA-256 | O(files) mtime+size |

---

## [1.0.0] β€” 2026-02-22

First stable release.
Expand Down