Releases: scheidydude/codeindex
v0.3.0 — Temporal Code Knowledge Graph
What's new
codeindex evolves from a stateless point-in-time dependency analyzer into a temporal code knowledge graph — persistent, incremental, and semantically queryable. Three new properties the tool now has that it didn't before: persistence, time, and meaning (semantic retrieval).
All existing CLI commands, JSON schemas, and MCP tools are unchanged.
Persistent SQLite store
codeindex analyze now writes to .codeindex/index.db in addition to codeindex.json. The DB is incremental — subsequent runs only process changed files.
codeindex db statusTemporal layer
Every file, edge, and symbol is stamped with first_seen_commit / last_seen_commit. Facts are never hard-deleted.
# Backfill history without touching the working tree
codeindex history . --max-commits 500
# What changed since a release?
codeindex changed-since v1.2.0
# Blast radius at a historical point
codeindex impact src/auth.py --as-of v1.0.0Semantic search
Hybrid retrieval fusing semantic KNN + FTS5 keyword + graph expansion via Reciprocal Rank Fusion. Works out of the box with FTS + graph — no embedding setup required. Add a local embedding endpoint for full semantic search.
# FTS + graph (no setup needed)
codeindex search "validate auth token"
# Full semantic search (with Ollama or any OpenAI-compatible endpoint)
CODEINDEX_EMBEDDING_ENDPOINT=http://localhost:11434 \
CODEINDEX_EMBEDDING_MODEL=nomic-embed-text \
CODEINDEX_EMBEDDING_DIMS=768 \
codeindex search "validate auth token"
pip install 'codeindex[semantic]' # adds sqlite-vec for KNN4 new MCP tools (existing 6 unchanged)
| Tool | Description |
|---|---|
semantic_search |
Hybrid search; degrades gracefully without embeddings |
temporal_impact |
Blast radius at a historical as_of ref |
graph_query |
k-hop neighborhood (dependents / dependencies / both) |
changed_since |
Files and edges added or removed since a ref |
Bug fixes (post-release)
Multi-word search OR fallback — codeindex search "auth token" previously returned nothing because FTS5 ANDs tokens and no single symbol contained both words. Now retries with OR semantics automatically when AND returns zero results.
changed-since backfill warning — when codeindex history has never been run, all files share the same first_seen_commit, making changed-since results inaccurate. The command now detects this (via COUNT(DISTINCT first_seen_commit) <= 1) and prints a clear warning before the results, telling you to run codeindex history first.
Full changelog
See CHANGELOG.md for the complete list of changes.