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-sgrepStandalone 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 NOTsubtracts. Plain Englishandstays hybrid. - Critic + follow-ups: deterministic post-fusion critic; agent JSON
whyand causalfollow_up_queries. - SCIP overlay:
asgrep index . --scip path/to/index.jsondegrades, never fails the index. call-pathand indexedcodemod(dry-run then transactional apply).- Pi: hits in
content; native search off the Node event loop; auto-registered tools. - Index schema 12: atomic generations;
.gitand.asgrepare the only unconditional directory skips. - Per-field semantic vectors, repository-learned vocabulary, watch freshness bounds, native nested
pattern:templates.
Full notes: CHANGELOG.