Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
8e00687
fix: boot under Bun and auto-index on first search
AdityaVG13 Aug 18, 2026
4205dd7
chore: prune campaign scripts and rename leftover v1/v2 surfaces
AdityaVG13 Aug 18, 2026
1f90903
chore: liquidate inherited tests and keep compile-only proof
AdityaVG13 Aug 18, 2026
d7d42ca
test: restore search, index, and Pi behavior suites
AdityaVG13 Aug 18, 2026
a31ead1
test: keep all tests under tests/ via testkit
AdityaVG13 Aug 18, 2026
ab3bdc3
fix: canonicalize --lang aliases before SQL filter
AdityaVG13 Aug 18, 2026
27080ab
fix: refresh stale search indexes and share lang aliases
AdityaVG13 Aug 18, 2026
c0b39f9
ci: run GitHub Actions only on workflow_dispatch
AdityaVG13 Aug 18, 2026
66848c6
feat(search): add repository-scoped file filters
AdityaVG13 Aug 21, 2026
7ff723f
fix(index): handle untyped files during filtered refresh
AdityaVG13 Aug 21, 2026
19e988e
fix(index): honor re-included root directories
AdityaVG13 Aug 23, 2026
ebfaace
perf(search): cut trigram sort materialization and lexical join cost
AdityaVG13 Aug 23, 2026
6b5e2cc
fix(search): word-mode LIMIT window and regex class literal harvesting
AdityaVG13 Aug 23, 2026
f87b75c
style(search): drop unneeded mut on lexical ident bind (clippy)
AdityaVG13 Aug 23, 2026
96b8b8e
docs(progress): restore campaign ledgers (pruned in 4205dd75) and rec…
AdityaVG13 Aug 23, 2026
3beeda1
docs(bench): record warm distinct-query lever results with reproduce …
AdityaVG13 Aug 23, 2026
7dd5fa3
fix(search): quote-aware conjunction splitting for quoted payloads
AdityaVG13 Aug 24, 2026
5917e49
fix(search): fold PRAGMA data_version into SemanticCache identity
AdityaVG13 Aug 24, 2026
c5c1ef0
fix(search): qualify FTS MATCH with the table name, not an alias
AdityaVG13 Aug 24, 2026
b84ddb5
fix(codemode): serve fails once and stops after budget exhaustion
AdityaVG13 Aug 24, 2026
1be70c9
docs(progress): record finish.rs coverage-memoization negative result
AdityaVG13 Aug 24, 2026
cc4ac31
docs(progress): record trigram posting-cap negative result
AdityaVG13 Aug 24, 2026
4bf5d74
docs(progress): record lever-3 scope reclassification and stale lever…
AdityaVG13 Aug 24, 2026
6e9fc96
docs(progress): trigram scan attribution — joins are free, cost is FT…
AdityaVG13 Aug 24, 2026
b87d315
docs(bench): record warm-path floor decomposition
AdityaVG13 Aug 24, 2026
6651cd7
docs(validation): land both previously-truncated audit scopes
AdityaVG13 Aug 24, 2026
6c44dca
fix(codemod): close symlink-swap and mid-swap-crash windows
AdityaVG13 Aug 24, 2026
b0fd6e2
perf(search): rarest-trigram MATCH via ephemeral fts5vocab df (br-umh)
AdityaVG13 Aug 24, 2026
ba7f85c
fix(search): total-order ranking tail for cross-process byte stabilit…
AdityaVG13 Aug 24, 2026
a160e30
fix(codemod): re-verify sources at swap time; refusal paths roll back…
AdityaVG13 Aug 24, 2026
17fbec2
test(search): pin trigram routing contract; record fixed-cost memoiza…
AdityaVG13 Aug 24, 2026
c2082af
docs(progress): record callers-FTS and ORDER BY removal negative results
AdityaVG13 Aug 24, 2026
80c08b3
Merge remote-tracking branch 'origin/main' into fix/bun-sqlite-and-au…
AdityaVG13 Aug 24, 2026
96c95c8
perf(pattern): prune gitignored dirs in walk; index-narrowed candidat…
AdityaVG13 Aug 24, 2026
e87c583
docs(bench): record pattern walk-prune results
AdityaVG13 Aug 24, 2026
762df53
perf(pattern): serve native scan from indexed file list
AdityaVG13 Aug 24, 2026
4e42a7e
docs(bench): record indexed-list native scan results
AdityaVG13 Aug 24, 2026
0f8fc6a
Revert "perf(pattern): serve native scan from indexed file list"
AdityaVG13 Aug 24, 2026
0dd47f5
perf(pattern): two-phase parallel filesystem walk
AdityaVG13 Aug 24, 2026
530ee8f
docs(bench): record parallel walk results
AdityaVG13 Aug 24, 2026
9524e08
perf(pattern): depth-2 subroot partitioning for balanced parallel walk
AdityaVG13 Aug 24, 2026
3bffdbe
perf(pattern): BFS parallel walk with capped walker pool
AdityaVG13 Aug 24, 2026
b06cdd4
docs(bench): record BFS walk results
AdityaVG13 Aug 24, 2026
1b04f91
docs(ledger): close depth-3 frontier candidate with measured verdict
AdityaVG13 Aug 24, 2026
0a08adc
perf(tail): vocab bulk-preload, IN-list buckets, resident read cache
AdityaVG13 Aug 24, 2026
d59380a
docs(ledger): close hybrid-cold-needle-tail-sub1ms with honest verdict
AdityaVG13 Aug 24, 2026
251446f
perf(hybrid): lazy structural excerpts — attach after fusion, not per…
AdityaVG13 Aug 24, 2026
8bc467c
docs(ledger): record lazy-excerpt keep
AdityaVG13 Aug 24, 2026
3d3e701
feat(store): schema 13 callers lower() indexes
AdityaVG13 Aug 27, 2026
bb31f09
perf(search): stamp memo, empty-embed guard, batched fetch, SQL GLOB …
AdityaVG13 Aug 27, 2026
5161c56
perf(index): keep IVF centroids on delta reassign
AdityaVG13 Aug 27, 2026
5875be0
docs(ledger): record round-11 keeps and Door A IVF reassign
AdityaVG13 Aug 27, 2026
4bafc66
docs(ledger): record Door A 54k delta keep-gate
AdityaVG13 Aug 27, 2026
657a77c
perf(search): rank IVF from mmap, fetch only top-N field columns
AdityaVG13 Aug 27, 2026
0ca21fa
docs(ledger): record Door B/C unique-query keep-gate
AdityaVG13 Aug 27, 2026
efaa491
chore(docs): stop tracking campaign ledgers
AdityaVG13 Aug 27, 2026
817a7d9
perf(search): mmap hybrid, cap nprobe at 8, skip short-token LIKE
AdityaVG13 Aug 27, 2026
69ebbee
chore(docs): stop tracking local AGENTS.md
AdityaVG13 Aug 27, 2026
bd20dd2
perf(search): cascade-file pattern seek, skip conceptual structure
AdityaVG13 Aug 27, 2026
97e741b
chore(docs): ignore local docs/internal
AdityaVG13 Aug 27, 2026
13fe10a
feat(codemode): in-process vm and four-command API
AdityaVG13 Aug 27, 2026
613d6bf
perf(search): unique-hybrid Code Mode path, skip unused stamps
AdityaVG13 Aug 27, 2026
9b05c80
fix(search): key embed backend memo on index generation
AdityaVG13 Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 0 additions & 37 deletions .github/workflows/bakeoff.yml

This file was deleted.

43 changes: 8 additions & 35 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: CI

on:
pull_request:
workflow_dispatch:

jobs:
Expand All @@ -23,19 +22,6 @@ jobs:
- name: cargo check workspace
run: cargo check --workspace -j1

neural-embed-e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Provision pinned neural model
run: bash scripts/fetch-neural-e2e-model "$RUNNER_TEMP/neural-models"
- name: Run real neural index and search
env:
ASGREP_NEURAL_E2E_CACHE_DIR: ${{ runner.temp }}/neural-models
run: cargo test -p ast-sgrep-cli --features neural-embed --test neural_embed_e2e -j1

test:
runs-on: ubuntu-latest
steps:
Expand All @@ -48,10 +34,18 @@ jobs:
echo "#[test] must not live in crates/*/src; put tests under tests/" >&2
exit 1
fi
if grep -R --include='*.rs' -n '#\[path =' crates/*/src; then
echo "#[path] test stubs must not live in crates/*/src; use [[test]] under tests/" >&2
exit 1
fi
if ls -d crates/*/tests 2>/dev/null; then
echo "crates/*/tests must not exist; use tests/<crate>/" >&2
exit 1
fi
if [ -d tests/unit ]; then
echo "tests/unit is crate-private wiring; keep intent suites under tests/<crate>/" >&2
exit 1
fi
- name: test workspace
env:
# Compare-only. Never set ASGREP_UPDATE_GOLDENS=1 under .github/.
Expand Down Expand Up @@ -222,13 +216,6 @@ jobs:
- name: cargo audit
run: cargo audit

bounded-fuzz:
if: github.event_name == 'workflow_dispatch'
name: Bounded parser fuzzing
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Install nightly Rust
uses: dtolnay/rust-toolchain@nightly
Expand Down Expand Up @@ -258,17 +245,3 @@ jobs:
working-directory: fuzz
run: cargo +nightly fuzz run rank -- -max_total_time=30 -timeout=5

ann-ivf-scale:
if: github.event_name == 'workflow_dispatch'
name: ANN IVF scale quality (release, ignored)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: adaptive IVF tradeoff at 2048 and 10000
run: |
cargo test -p ast-sgrep-core --release --test semantic_ivf_roundtrip \
adaptive_ivf_tradeoff_at_2048_and_10000_vectors -- --ignored --nocapture
# Fail hard. Do not --skip. Do not treat timeout as pass.
44 changes: 0 additions & 44 deletions .github/workflows/graph-scale.yml

This file was deleted.

37 changes: 0 additions & 37 deletions .github/workflows/speed.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,8 @@ fuzz/corpus/
.rotational-code-analysis
*.rotational-code-analysis/
.code-upgrade-enterprise/
# Internal campaign ledgers (local-only; not curated product docs)
/docs/progress/
# Local internal notes and prompts (not curated product docs)
/docs/internal/

127 changes: 0 additions & 127 deletions AGENTS.md

This file was deleted.

15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[CHANGELOG.md#C07C]
# Changelog

All notable changes to **ast-sgrep** — hybrid code search that understands intent (lexical FTS + AST graph + offline semantic ranking).
Expand All @@ -8,6 +9,18 @@ This changelog follows [Keep a Changelog](https://keepachangelog.com/) conventio

## Unreleased

### Fixed

- `pi-ast-sgrep` no longer imports `node:sqlite` at load time, so Pi/OMP/ZMP can boot under Bun via `bun:sqlite`.
- `asgrep search` indexes an empty checkout on first use, and incrementally refreshes a non-empty index, instead of returning stale or empty hits. Pass `--no-auto-index` to keep the old fail-closed empty-index error and skip refresh.
- `--lang` aliases include every indexed source extension (`ts`, `h`, `hpp`, `py`, `rs`, …) so SQL filters match stored language ids.

### Changed

- GitHub Actions `CI` no longer runs on `pull_request`; dispatch it from the Actions tab. Other workflows were already `workflow_dispatch` only.
- Repository hygiene: drop campaign scripts and process docs; keep only clone-required `scripts/` (`rustc-capped`, `cpu-limit-exec.py`, `verify-forbid-soundness`).
- Keep search, index, and Pi behavior tests under `tests/`. Drop campaign fuzz, benches, keep-gates, process suites, and crate-source `#[cfg(test)]` stubs.

## Version Timeline

| Version | Date | Summary |
Expand Down Expand Up @@ -226,4 +239,4 @@ Durable workstream anchors live in the project tracker (`.beads/issues.jsonl`, m

- PR bodies cite **bead ids** (`ast-sgrep-<slug>`) that map to records in `.beads/issues.jsonl`; the bead ids above are the durable workstream anchors.
- The seven v1.4.0 PRs are open at the time of writing and reference the pre-merge branch state; representative commits are from each PR's head branch.
- Research memo: [`CHANGELOG_RESEARCH.md`](CHANGELOG_RESEARCH.md).
- Research memo: [`CHANGELOG_RESEARCH.md`](CHANGELOG_RESEARCH.md).
Loading