v1.2.0 — Hybrid search + pipeline hardening
v1.2.0 — Hybrid search + pipeline hardening
New
- Hybrid retrieval across all five search tools: RRF reranking over the
ingest-built FTS index + dense vectors, with transparent fallback to pure
vector where no FTS index exists. (make evalreports recall@k for vector vs
FTS vs hybrid on a golden set.)
Fixed (ingestion / data correctness)
.luafiles are now AST-chunked (were forced through the TypeScript grammar).file_pathstored POSIX-normalized;repo_urlkeyed byowner/reposlug
(unique, no.git-strip collisions) with a one-time migration of old keys.- Per-file dedup (store-wide dedup had collapsed distinct files sharing content).
- Orphan reconcile on file rename/delete; idempotent no-op re-ingest.
- Token-correct, prefix-aware chunk cap (≤510 incl. context prefix); multi-line
import-aware AST coverage.
Fixed (server)
- Escaped SQL
LIKEfilters (%/_/\+ESCAPE) for plugin/repo scoping. ensure_databasesextracts only missing stores (never clobbers a localdata/).
Quality
- Permanent chunk-health gate (
ChunkAuditor) + a measure-once--dry-run
mode; 64 offline tests incl. gate-first invariants; validated by a 46-agent
code review (1 high + 7 medium findings, all fixed).
The bundled LanceDB stores (factorio_lancedb.zip) were rebuilt for this release.
Existing installs keep their local data/; delete a store dir to pull the refresh.