Skip to content

v2.0.0 - Local-first

Latest

Choose a tag to compare

@AdityaVG13 AdityaVG13 released this 15 Aug 21:55
· 92 commits to main since this release

ast-sgrep 2.0.0 — Local-first

2.0 is a breaking, stable major: embeddings are in-process only, Pi results reach the model, and five PRs land on top of v1.4.0 (#27, #29, #30, #31, #32).

Breaking

Cloud (--cloud-embed, ASGREP_EMBED_API_KEY) and Ollama (--ollama-embed, ASGREP_OLLAMA_URL) embedding clients are gone. Hashed semantic stays the default; optional ONNX neural stays in-process. Indexes that still store embed_backend=cloud|ollama fail closed until asgrep reindex.

This cut is GitHub + npm. It is not published to crates.io.

Install

pi install npm:pi-ast-sgrep

Standalone CLI binaries are attached to this release (asgrep, asgrep_darwin_x64, asgrep_linux_arm64, asgrep_linux_x64, asgrep_windows_amd64.exe). Build from source with cargo build --release -p ast-sgrep-cli.

What landed

  • Two-channel queries: callers:process_request AND pattern:fn $NAME($$$) joins by span; AND NOT subtracts. Plain English and stays hybrid.
  • Critic + follow-ups: deterministic post-fusion critic; agent JSON why and causal follow_up_queries.
  • SCIP overlay: asgrep index . --scip path/to/index.json degrades, never fails the index.
  • call-path and indexed codemod (dry-run then transactional apply).
  • Pi: hits in content; native search off the Node event loop; auto-registered tools.
  • Index schema 12: atomic generations; .git and .asgrep are the only unconditional directory skips.
  • Per-field semantic vectors, repository-learned vocabulary, watch freshness bounds, native nested pattern: templates.

Full notes: CHANGELOG.