v0.9.0 — AI-Authored Annotations + Lightweight Core + PyPI
The architecture flip: instead of a small embedding model guessing what your code means, your AI assistant writes the search index. Plus: the default install shrank from ~500 MB to a few MB, and ProjectMind is now one uvx away.
✍️ AI-Authored Annotations — semantic search without embeddings
save_annotation(path, summary, keywords)— the assistant saves 1-2 sentence summaries as it works; they're indexed into BM25 and a new near-freeL0_annotquery tierlist_unannotated_files()— coverage report with staleness detection (file changed since annotation)get_annotations(path)— review what the index "knows"- Human-readable
.ai/annotations.json, UTF-8, atomic writes - Natural-language queries ("where are sessions revoked?") now land on the right files with plain keyword search
📦 Lightweight core — the vector stack is optional
chromadb+sentence-transformersmoved to the[vector]extra- Full BM25-only mode: indexing (foreground / background / incremental), search, readiness checks and stats all work without the ML stack — install the extra any time to upgrade in place
- Small-corpus fix: tiny projects (2-3 files) no longer get empty search results when BM25 idf collapses to zero
🚀 Install in one line
claude mcp add --scope user Memory -- uvx projectmind-mcpPublished on PyPI with automated releases via Trusted Publishing (no tokens anywhere).
CI
Unit jobs now exercise BM25-only mode; the integration job installs [vector] and exercises the full ML path — both modes are covered on every push.
Full changelog: CHANGELOG.md