Skip to content
This repository was archived by the owner on Sep 21, 2026. It is now read-only.

v1.2.0: FTS5 & sqlite-vec (Cirugía Vía Negativa)

Choose a tag to compare

@Rogercode97 Rogercode97 released this 05 Jun 18:25
· 61 commits to main since this release

⚔️ Cirugía Vía Negativa: Fase 4

This release represents a major architectural milestone for Scouter, drastically reducing cognitive debt and CGO overhead while introducing powerful native vector search.

🚀 Highlights

  • Bleve Extirpation: Completely removed github.com/blevesearch/bleve/v2 and its ~30 transitive dependencies. In-memory BM25 has been replaced with SQLite's native FTS5 extension.
  • SQLite-Vec Integration: Embedded vec0 natively via ncruces bindings (float[384]), allowing completely local semantic search without exposing CGO memory leaks.
  • RRF in SQL: Hybrid search now merges FTS5 and Vector distances purely inside SQLite using a FULL OUTER JOIN CTE. The Go runtime is protected from heavy in-memory sorting.
  • El Escudo de Hash: Semantic indexing now strictly skips embedding generation if the AST symbol hash remains unchanged, saving local LLM CPU cycles.
  • Graceful Degradation: Failed embeddings (timeouts/local errors) gracefully fallback to FTS5 search without crashing or aborting the indexing pipeline.
  • Operación Torniquete: Sealed critical CGO memory leaks in the gotreesitter integration by introducing explicit .Close() defers and parser sync.Pool.