Skip to content

Releases: scheidydude/codeindex

v0.3.0 — Temporal Code Knowledge Graph

08 Jun 01:09

Choose a tag to compare

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 status

Temporal 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.0

Semantic 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 KNN

4 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 fallbackcodeindex 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.