Releases: jafreck/Lore
v0.4.0
Lore v0.4.0
Full migration to SCIP-first indexing architecture. Tree-sitter is completely removed.
Highlights
- SCIP+LSP architecture — Single-pass SCIP indexing for 23 languages, LSP enrichment overlay
- C symbol directionality fix — Header forward declarations correctly resolve to implementations
- Macro name extraction — Preprocessor macros indexed with real
#definenames via SCIP occurrence ranges - Test coverage at 92% — 1,664 tests, suite rewritten from scratch
Breaking Changes
- Tree-sitter dependencies removed — no native grammar builds required
- Minimum Node.js 22 (unchanged)
Features
- SCIP+LSP architecture replaces tree-sitter extraction (#458)
- Parent symbol tracking from SCIP descriptor chains (#249)
- Virtual dispatch edge materialization (#221)
Fixes
- Forward declaration → definition directionality for C headers (#460)
- Preprocessor macro name recovery from SCIP ranges (#460)
- SCIP backtick-quoted identifiers handled as atomic names (#460)
- Call-graph resolution scoped by layer (#397)
- TOML array parsing handles quoted commas (#446)
- 20+ additional bug fixes
Refactoring
Full Changelog
v0.3.9
v0.3.9
Features
- Virtual dispatch materialization —
lore_graphnow materializes virtual dispatch edges, enabling polymorphic call resolution through the call graph (#221) - Automatic transitive traversal —
lore_graphandlore_dependentsnow automatically follow edges up to 5 hops; user-facingdepthandlimitparameters removed in favor of sensible internal defaults (#221) - Truncation flag —
lore_graphandlore_dependentsresults include atruncatedfield when results hit the internal limit
Fixes
- Virtual dispatch follow-up — corrected edge cases in SCIP virtual dispatch resolution (#222)
- Tree-sitter
end_line— fixed end-line calculation in tree-sitter source indexing (#219)
Benchmarks & Tests
- Expanded Postgres benchmark question set with corrected expected answers (#217, #218)
- Call-graph focused benchmark suite (#219)
- Structured benchmark report output (#223)
Docs
- Updated
lore_graphandlore_dependentstool descriptions in README and architecture docs to reflect automatic transitive traversal and virtual dispatch materialization
Full changelog: v0.3.8...v0.3.9
v0.3.8
v0.3.8
Features
- Incremental indexing — baseline + overlay architecture for fast file-level re-indexing without full rebuilds (#213)
- SCIP auto-install — auto-install SCIP indexers and generate
compile_commands.jsonfor C/C++ (#211) - Auto-generate tsconfig — broad tsconfig generation for TypeScript SCIP indexing (#205)
- New MCP tools —
lore_trace(execution path tracing),lore_diff(API surface diffing),lore_cohesion(module cohesion metrics),lore_dependents(unified reverse-dependency queries) (#198, #201, #202, #204) - Auto-index on MCP start —
mcp --rootnow indexes automatically (#182) - Benchmark overhaul — Gson + Postgres repos, per-test coverage infra, ground truth updates (#206)
Refactors
- Pre-release consolidation — removed ~850 lines of dead code, backward-compat shims, and code duplication (#215):
createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -cray -creat(DDL -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpng -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() ark -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreth -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -createLoreMcpServer() -cray -creat(DDL -createLoreMcpServer() -createLoreMcpServer() -createLoacO -createLoreMcpServer() -createLoreMcpServer() - `createLoreMcpServer)
-
-
-
-
-
-
-
-
-
- -path
storage (#20- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -pathstorage eferences; added new tools to tool table and mermaid diagram
-
-
-
-
-
-
-
-
- Added
CLAUDE.mdproject instructions (#214) - Added
docs/incremental-index-design.mdanddocs/complex-codebase-questions.md - README refresh with current tools and architecture (#207)
Full changelog: v0.3.7...v0.3.8
v0.3.7
v0.3.7
Features
- Benchmark suite overhaul — overhauled copilot benchmark suite with indexing performance improvements, full prompts in results, and improved scorer arrow-line matching (#181, #183)
Refactors
- Removed low-value MCP tools — removed
lore_annotations,lore_coverage,lore_writeback,lore_analyze,lore_architecture, andmoduleedge kind fromlore_graph, reducing tool surface for cleaner agent workflows (#186)
Fixes
- Improved benchmark scorer arrow-line matching and resolved dynamic import handling (#183)
Docs
- Updated README benchmark numbers (8.8× faster, 97% fewer tokens, +33pp correctness)
- Improved README mermaid diagram layout and fixed benchmark-results formatting (#185)
- Removed stale tool references from README.md and docs/architecture.md tool tables and mermaid diagrams
Full changelog: v0.3.6...v0.3.7
v0.3.6
v0.3.6
Features
- SCIP-primary architecture — SCIP indexers are now the default source stage for all languages that have one; tree-sitter is the fallback. New
src/scip/module directory with config, enrichment coordinator, index reader, registry, and protobuf definitions. NewScipEnrichmentStagepipeline stage writes definition locations and type metadata from SCIP data before LSP enrichment. (#163) - Benchmark library — new benchmark test suite for evaluating Lore agent performance against ground-truth answers (#176)
Fixes
symbol_relationships.lineis now nullable for missing definition locations (#177)
Refactors
- Domain directory restructure —
src/reorganized from flatindexer/into domain directories:parsing/,discovery/,git/,lsp/,db/,docs/,embeddings/,resolution/,server/,testing/,scip/(#175) - Extractor condi- Extractor condi- Extractor condi- Extractor condi- ExtractorCo- Extractor cond, SCIP default testing,- Extractor condi-
#####ocs
- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Upd- Updgelog:** v0.3.5...v0.3.6
v0.3.5
v0.3.1 — Correctness fixes
Bug fixes (6)
Critical
cli.ts: Fix wrong table names in MCP startup stats (call_graph→symbol_refs,documentation→docs) —totalEdgesandtotalDocspreviously always reported 0
High
source-index.ts: NULL out cross-filesymbol_refs.callee_id,type_refs.type_id, andsymbol_relationships.target_symbol_idbefore deleting a file in update mode — prevents FK constraint violation that aborted the entire update transaction
Medium
source-index.ts: Replace single wrapping transaction with batched transactions (200 files/batch) for crash-resilient checkpointing
Low
import-resolution.ts,lsp-enrichment.ts,dependency-api.ts: Wrap bulk writes in transactions (~100x faster for large codebases)embedding.ts: Chunk symbol embedding deletes into batches of 900 to stay within SQLiteSQLITE_MAX_VARIABLE_NUMBERlimit
Tests
- 4 new regression tests covering all fixes (1,157 total tests pass)
v0.3.4
v0.3.4
Features
-
Native Node.js embeddings (#158) — Replaced the Python subprocess embedding system (
SentenceTransformersProvider+torch+sentence-transformers) withTransformersJsProviderusing@huggingface/transformers. Embedding models now run natively in Node.js via ONNX Runtime — no Python, pip, or torch required. Lore is now fully self-contained on Node >= 22. -
New default embedding model — Changed from
Qwen/Qwen3-Embedding-4B(4B params, GPU + Python required) tonomic-ai/nomic-embed-text-v1.5(0.1B params, 768-dim, CPU-friendly, ONNX-ready, Matryoshka dimension support).
Breaking Changes
SentenceTransformersProviderremoved from public API → useTransformersJsProviderQwen3EmbeddingProviderfactory removedensurePythonDepsremoved (no longer needed)- Default embedding model changed to
nomic-ai/nomic-embed-text-v1.5
Docs
- Updated README.md embeddings section (Python → Transformers.js)
- Updated docs/architecture.md embedder module description and pipeline diagram
Internal
- Removed
src/indexer/ensure-python-deps.tsand its tests - Added
@huggingface/transformers@^3.8.1dependency
Full Changelog: v0.3.3...v0.3.4
v0.3.3
v0.3.3
Features
- Reverse/inbound graph queries (#151) —
lore_graphnow acceptstarget_idfor inbound edge queries across all five graph kinds (call, import, module, inheritance, type_dependency). Enables "who calls X?" and "what depends on X?" questions that were previously impossible without dumping all edges.
Fixes
- 18 extractor bug fixes + grammar hardening (#148) — Comprehensive parsing audit across all extractors: fixed
SYMBOL_NODE_TYPEScompleteness in 12 extractors, added missing C++ extraction patterns (enums, typedefs, forward declarations), eliminated empty-name symbol leaks in 6 extractors, added pipeline-level empty-name guard. Swapped incompatible grammars for Lua, Zig, and Elm. Added ESM-only grammar fallback and Zig dual-grammar support. - Child process cleanup on SIGINT/SIGTERM (#156) — New
process-trackermodule ensures Python embedding s- Child process cleanup on SIGINT/SIGTERM (#156) — Newis- **Child procesha- **Child process cyn- **Child process ore - **Child psec- **Child process cleanup on SIGINT/SIGTERM** (#156) — Newprocess-trackermodule ensures Python embedding s- **Child process cleanup on SIGINT/SIGTERM** (#156) — Newis- **Child procesha- **Child process cyn- **Child process ore - **Child psec- Child process cleanup on SIGINT/SIGTERM (#156) �dcod- **Chilon references).
Internal
- Dart support removed (#148, #150) — No compatible tree-sitter grammar exists; language count 24 → 23.
- LSP smoke test coverage (#150) — Real-server smoke tests for TypeScript and Pyright LSPs.
- Test hardening (#148) — Removed all
test.skipIf(!result)patterns; all 1,385 tests pass with 0 skipped.
Full Changelog: v0.3.2...v0.3.3
v0.3.2
v0.3.1
v0.3.1 — Correctness fixes
Bug fixes (6)
Critical
cli.ts: Fix wrong table names in MCP startup stats (call_graph→symbol_refs,documentation→docs) —totalEdgesandtotalDocspreviously always reported 0
High
source-index.ts: NULL out cross-filesymbol_refs.callee_id,type_refs.type_id, andsymbol_relationships.target_symbol_idbefore deleting a file in update mode — prevents FK constraint violation that aborted the entire update transaction
Medium
source-index.ts: Replace single wrapping transaction with batched transactions (200 files/batch) for crash-resilient checkpointing
Low
import-resolution.ts,lsp-enrichment.ts,dependency-api.ts: Wrap bulk writes in transactions (~100x faster for large codebases)embedding.ts: Chunk symbol embedding deletes into batches of 900 to stay within SQLiteSQLITE_MAX_VARIABLE_NUMBERlimit
Tests
- 4 new regression tests covering all fixes (1,157 total tests pass)