Releases: abbudjoe/TribalMemory
v0.9.0 — Episode Memories
Episode Memories: Write-time Narrative Synthesis
The headline feature of v0.9.0 is Episode Memories — instead of complex RAG query planning at recall time, TribalMemory now detects related memories at ingest time and builds searchable episode summaries automatically.
How it works
- You store a memory via
remember() - The
EpisodeDetectorchecks if it relates to an existing episode (via embedding similarity + LLM classification) - If yes, it joins the episode; if it starts a new theme, it creates one
- The
EpisodeSummarizerprogressively updates a narrative summary - That summary is stored as a first-class
MemoryEntry— searchable viarecall()
This dramatically improves multi-hop retrieval ("What houses did I look at?") without any changes to the recall API.
What's new
EpisodeStore,EpisodeDetector,EpisodeSummarizerservices- 7 MCP tools + 7 HTTP routes
- Feature-flagged:
episodes.enabled: true - Async detection —
remember()returns immediately - 112 episode tests (102 unit + 10 E2E)
- Comprehensive docs:
docs/episode-memories.md
Install / Upgrade
pip install --upgrade tribalmemoryFull changelog: https://github.com/abbudjoe/TribalMemory/blob/main/CHANGELOG.md
PyPI: https://pypi.org/project/tribalmemory/0.9.0/
v0.8.0 — Token Auth + Graph Visualization
What's New
🔒 Token Authentication (#164)
tm_prefixed bearer tokens (256-bit entropy)- Per-IP rate limiting (10 failures → 60s cooldown)
- Persistent rate limit state
- Audit logging
- CLI:
tribalmemory token generate/rotate/show - Legacy mode preserves backward compatibility
- 82 auth tests (43 unit + 25 integration + 14 E2E)
🕸️ Knowledge Graph Visualization (#165)
- Built-in web UI at
/graph(Cytoscape.js, dark theme) - Interactive: search, type filters, multi-hop traversal (1-3 hops)
- API:
/v1/graph/stats,/v1/graph/entities,/v1/graph/neighborhood/{name} - Batch memory counts with SQLite chunking
- Vendored Cytoscape.js (no CDN dependency)
- 17 graph tests
📚 Documentation
docs/authentication.md— Complete auth setup guidedocs/graph-visualization.md— Graph UI and API guide
Install
pip install tribalmemory==0.8.0Full Changelog: v0.7.3...v0.8.0
v0.7.3 — Project-scoped memory + deadlock fix
What's New
Project-Scoped Memory (#161)
- New
projectparameter on store and recall APIs - Memories tagged with
project:<name>for multi-project isolation - Cross-project dedup: same content allowed in different projects
- Over-fetch strategy (3× limit) for project-filtered recalls
- Batch endpoint support
- Input validation (strip whitespace, reject blank)
Bug Fixes
- LanceDB sync I/O deadlock at scale (#159) — All LanceDB operations wrapped in
asyncio.to_thread(). Prevents event loop blocking with 10K+ memories. - O(n²)
get_stats()performance — Replaced search-based pagination withto_arrow(columns=...)metadata scan.
Install
pip install tribalmemory==0.7.3v0.7.2 — Fix similarity calculation & validation bugs
Fixed
- Similarity scores could exceed 1.0 — LanceDB returns squared L2 distance, not L2. Fixed formula. Scores now bounded to [0, 1]. (#153)
- min_relevance filter not enforced at high thresholds — Now works correctly at all thresholds. (#153)
- Empty query accepted by recall endpoint — Now returns 422. (#154)
- Invalid date formats accepted by recall endpoint — Now validates ISO 8601, returns 422. (#155)
Added
- 63 new E2E tests (tribal_store, tribal_recall, error handling)
- Similarity calculation unit tests
PyPI: https://pypi.org/project/tribalmemory/0.7.2/
Full changelog: https://github.com/abbudjoe/TribalMemory/blob/main/CHANGELOG.md
v0.7.1 — Fix broken tribal_store tool
Fixed
tribal_storetool was completely broken — Was sendingsourceType: "deliberate"(invalid enum value), causing HTTP 422 on every call. Changed to"user_explicit". Added regression test.
Upgrade
pip install --upgrade tribalmemoryFull changelog: https://github.com/abbudjoe/TribalMemory/blob/main/CHANGELOG.md
v0.7.0 — Entity Extraction v2
Entity Extraction v2 — High-Quality Graph Construction
Complete rewrite of entity extraction for accurate knowledge graphs from personal conversations.
Highlights
- Dependency-Parsed Relationships — spaCy SVO triples replace regex patterns. 37 verb mappings (uses, located_in, works_at, visited, prefers, purchased, etc.). Handles passive voice, compound subjects, prepositional phrases.
- Entity & Relationship Validators — Quality filtering prevents garbage from entering the graph.
- Extraction Context —
"personal"(default) vs"software"controls relationship extraction behavior. - spaCy Post-Processing — Fixes NER misclassifications (products wrongly tagged as PERSON).
- Word Boundary Matching — Prevents false positives ("can" no longer matches "Glen Canyon Dam").
- Batch Validation —
validate_batch()with LRU caching for large-scale extraction. - Auto-capture docs — README documents
--auto-captureflag for Claude Code + Codex.
Install / Upgrade
pip install --upgrade tribalmemoryQuick Start
pip install tribalmemory
tribalmemory init --claude-code --codex --auto-capture --serviceOne command: MCP configured for both agents, auto-capture enabled, server running as a service.
Full changelog: https://github.com/abbudjoe/TribalMemory/blob/main/CHANGELOG.md
v0.6.2 — Batch Ingestion + Auto-Temporal Queries
What's New
Batch Ingestion Endpoint
POST /v1/remember/batch— Store up to 1000 memories in a single request- Concurrent processing with
asyncio.gather(chunk size: 50) - Ideal for bulk ingestion, migrations, and benchmarking
Auto-Temporal Query Extraction
- Date parsing from natural language queries
- "What happened last week?" auto-filters to that date range
- Powered by
dateparserwith relative date support - Works across all recall endpoints (HTTP, MCP, Python)
Install
pip install --upgrade tribalmemoryv0.6.1 — FastEmbed as core dependency
Fixed
- FastEmbed is now a core dependency — No longer requires
pip install tribalmemory[fastembed] - Removed unused
openaidependency from core requirements - Simplified install: just
pip install tribalmemory
Install
pip install tribalmemory
tribalmemory init
tribalmemory servev0.6.0: Zero-Cloud Embeddings
⚠️ Breaking Changes
FastEmbed is now the ONLY embedding provider.
This release removes OpenAI and Ollama embedding support entirely. FastEmbed provides local, zero-cloud embeddings with no API keys required.
Migration Guide
New installs: Automatic — just pip install tribalmemory[fastembed]
Existing installs with OpenAI/Ollama config:
# 1. Delete old embeddings (incompatible dimensions: 1536→384)
rm -rf ~/.tribal-memory/lancedb/
# 2. Upgrade
pip install --upgrade tribalmemory[fastembed]
# 3. Reinitialize config
tribalmemory init --force
# 4. Re-ingest your memoriesHighlights
Zero-Cloud Operation by Default
- No API keys required — works offline out of the box
- FastEmbed model:
BAAI/bge-small-en-v1.5(384 dimensions) - Fully local embeddings, no network calls
Simplified Architecture
- ~2,400 lines of code removed
- No OpenAI/Ollama configuration complexity
- Single embedding path = fewer bugs
- Consistent behavior across all deployments
What's Removed
--openai,--ollama,--fastembed,--localCLI flagsOpenAIEmbeddingServiceclass- API key parameters from
create_memory_service() a21/experimental directory
Why This Change?
TribalMemory's mission is shared memory for AI agents. Every deployment should work the same way, with zero cloud dependencies by default.
FastEmbed provides excellent retrieval quality with:
- 100% accuracy on LoCoMo benchmark (1986/1986 questions)
- Local execution (no API latency)
- No rate limits or costs
Cloud embeddings added complexity without meaningful benefit for our use case.
Full Changelog
See CHANGELOG.md for complete details.
v0.5.1 - Plugin Explicit Tools
v0.5.1
Added
- Explicit tool registration for OpenClaw plugin ( method)
- Plugin can now return empty array instead of defaulting to all tools
Changed
- Plugin SDK updated for better tool control
Full Changelog: v0.5.0...v0.5.1