Repository navigation
vectorgrep v0.2.0
The first public release on npm, under the new name vectorgrep — plus a long
list of search and indexing fixes found in a code audit and in an end-to-end
test against a real ~2,700-file project.
Added
- Published on npm as
vectorgrep:npm install -g vectorgrepor
npx -y vectorgrep, no clone and build needed. Releases are published with
npm trusted publishing and carry a provenance attestation.
Changed
- Renamed the project to
vectorgrep(npm package, CLI command, MCP server
name and GitHub repository, formerlycodebase-semantic-search). The storage
location~/.vectordb/and the.vectordb.jsonconfig file are unchanged. - Node.js 20 or newer is required (Node 18 is end-of-life).
embedding.modelis optional; each embedding provider uses its own default
model when none is configured.- Include/exclude patterns are matched with
minimatchin both discovery modes.
Files in dot-directories such as.github/are no longer indexed in git mode
unless an include pattern names them.
Fixed
- LanceDB filters on camelCase columns never matched, because double-quoted
identifiers are string literals:index_updateduplicated modified files and
kept deleted ones,filePatternandsymbolTypesfilters returned nothing, and
exact symbol-name matching never ran (#24). - Reused chunk vectors were stored as
NaNduring incremental updates (#24). - The default config was a shared object mutated across projects and calls, so
settings from oneinitleaked into other projects (#25). - The transformers.js fallback persisted the wrong embedding model, breaking
every search andindex_updateafterinit(#18, #25). LineChunkerlooped forever whenoverlapLines >= maxChunkLines(#26).- AST chunking dropped the bodies of long functions and all code outside
declarations, and produced duplicate chunk ids for symbols sharing a line
range (#26). - Tree-sitter WASM lookup used
require.resolve, which doesn't exist in ESM (#26). - In git mode, default exclude patterns never matched,
includewas ignored,
non-ASCII filenames were skipped, and a failinggit ls-filesproduced an empty
index instead of falling back to glob (#27). initandreindexsilently discarded the entire index while reporting success
when another MCP server process recreated the tables during indexing; searches
then returned nothing (#47).
Internal
- Community health files (
CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md,
issue/PR templates), CI on Node 20/22 and Dependabot. - Release process: a PR labeled
release:major|minor|patchpublishes to npm
on merge, tags the version and uses this changelog section as the GitHub
release notes. SeeRELEASING.md. - Removed the unused dependencies
@anthropic-ai/sdkandchokidar; bumped
dependencies to resolve security advisories, withsharpandadm-zippinned
viaoverrides. - Upgraded
vitestto v4,zodto v4,@huggingface/transformersto v4 and
globto v13. - CI and release skip onnxruntime-node's CUDA download, which repeatedly timed
out (#48).
Upgrade notes
- Run
reindexonce after upgrading. Existing indexes may contain duplicate or
stale chunks, miss code that was previously dropped, or record the wrong
embedding model.