Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.0] - 2025-10-18¶
🛡️ Stable Baseline Release - Expanded Test Coverage & Repository Cleanup
This release significantly expands test coverage across critical system modules and establishes a clean baseline for future development.
Added¶
- Comprehensive security test suite (4 new test modules, 100+ tests):
test_security_paths.py
- Path traversal and validation teststest_security_permissions.py
- File permission and access control teststest_security_secrets.py
- Secret detection and sanitization teststest_security_validators.py
- Input validation and security checks- Expanded test coverage for critical modules:
test_decay.py
- Power-law, exponential, and two-component decay models (415+ tests)test_ltm_index.py
- LTM indexing, search, and vault integration (797+ tests)test_search_unified.py
- Unified search across STM and LTM (1159+ tests)test_storage.py
- JSONL storage, compaction, and concurrency (921+ tests)- Configuration tests for LTM index age settings
- Performance optimization infrastructure and monitoring
- Background processing capabilities
Changed¶
- Repository cleanup: Removed all stale feature branches (25+ branches deleted)
- PR management: Closed outdated draft PRs, established clean main branch
- Enhanced test infrastructure with improved fixtures and helpers
- Improved type hints and optional dependency handling for ML models
Fixed¶
- Resolved lint formatting issues across codebase
- Fixed Windows path separator handling in tests
- Corrected type annotations for mypy compliance
Notes¶
- Test coverage significantly improved - Comprehensive coverage of core modules
- Platform compatibility - Tests verified on macOS, Linux (Ubuntu), and Windows
- Stable baseline established - Clean state for rollback if needed
- No breaking API changes
- All existing functionality preserved
[0.4.0] - 2025-10-09¶
⚙️ Maintenance & CI Hardening; SBOM; Type Checking
This release focuses on build quality, supply-chain visibility, and developer experience.
Added¶
- Security workflow now generates a CycloneDX SBOM (JSON artifact) for every push/PR
- Security Scanning and SBOM badges in README
- Pre-commit hooks for Ruff (lint + format) and mypy (src-only)
Changed¶
- CI: Re-enabled mypy in tests workflow; type errors resolved across codebase
- CI: Bandit runs made non-blocking; results displayed in Security Summary
- CI: Guard workflow blocks built site artifacts (index.html, assets/, search/) on main
- CI: GitHub Actions updated (actions/checkout v5, codecov-action v5, setup-uv v7)
- Docs: CONTRIBUTING adds pre-commit instructions; SECURITY documents SBOM
Fixed¶
- Security workflow SBOM flags corrected to use cyclonedx-py with
--output-format
and--output-file
- Ruff formatting and import order across modules; exception chaining (B904) applied
Notes¶
- No breaking API changes
- Versioning adjusted to pre-1.0 scheme (0.4.0)
[1.0.0] - 2025-10-09¶
🎉 Production Release: Mnemex v1.0.0
This is the first production-ready release of Mnemex (formerly STM Research/STM Server), a temporal memory management system for AI assistants with human-like memory dynamics.
🚀 Major Features¶
Complete Rebranding¶
- Renamed from STM Research/STM Server to Mnemex
- Updated all references, paths, and documentation
- Changed storage paths from
~/.stm/
to~/.config/mnemex/
(XDG-compliant) - Updated command names from
stm-*
tomnemex-*
- Updated environment variables from
STM_*
toMNEMEX_*
- Repository moved to https://github.com/simplemindedbot/mnemex
Simplified Installation¶
- UV Tool Install Support
- One-command installation:
uv tool install git+https://github.com/simplemindedbot/mnemex.git
- Simplified MCP configuration:
{"command": "mnemex"}
(no more complex paths) - All configuration moved to
~/.config/mnemex/.env
(not MCP config) - Automatic installation of all 7 CLI commands
Memory Consolidation¶
- Algorithmic Memory Consolidation (
consolidate_memories
tool) - Smart content merging with duplicate detection
- Preview mode to see proposed merges before applying
- Apply mode to execute consolidation
- Auto-detection of high-cohesion clusters
- Metadata merging: tags, entities, timestamps, strength
- Relation tracking via
consolidated_from
links - Strength bonuses based on cluster cohesion (capped at 2.0)
- 100% test coverage (15 tests)
Privacy & Local Storage¶
- Emphasized Local-First Design
- All data stored locally (no cloud services, no tracking)
- Human-readable JSONL format for short-term memory
- Markdown files (Obsidian-compatible) for long-term memory
- Git-friendly formats for version control
- Complete user control and transparency
📦 Added¶
- Migration tool (
mnemex-migrate
) to upgrade from old STM Server installations - Comprehensive contributing guide with platform-specific instructions
- Windows/Linux tester recruitment documentation
- Future roadmap documentation
- Privacy and local storage documentation sections
- ELI5 guide updates with simplified installation steps
- All AI assistant instruction files (CLAUDE.md, AGENTS.md, GEMINI.md)
🔄 Changed¶
- Storage paths: Migrated to XDG-compliant
~/.config/mnemex/
- Command names: All CLI tools renamed from
stm-*
tomnemex-*
- Configuration: Simplified MCP setup, all settings in
.env
file - Installation: UV tool install as recommended method
- Documentation: Complete overhaul across all files
🐛 Fixed¶
.env.example
updated with correct decay model parameters- LTM index path configuration
- Python path requirements in documentation
- Server initialization using
mcp.run()
instead of deprecatedmcp.run_forever()
📚 Documentation¶
- Complete documentation suite with consistent branding
- README.md: Quick start, installation, configuration
- CLAUDE.md: AI assistant instructions
- CONTRIBUTING.md: Development guide
- ELI5.md: Beginner-friendly explanation
- docs/deployment.md: Production deployment
- docs/architecture.md: System design
- docs/api.md: Tool reference
- docs/graph_features.md: Knowledge graph guide
🎯 Implementation Status¶
11 MCP Tools Implemented:
1. save_memory
- Save memory with entities, tags, optional embeddings
2. search_memory
- Search with temporal filtering and semantic similarity
3. search_unified
- Unified search across STM and LTM
4. touch_memory
- Reinforce memory (update last_used, use_count, strength)
5. gc
- Garbage collect low-scoring memories
6. promote_memory
- Promote high-value memories to long-term storage
7. cluster_memories
- Find similar memories for consolidation
8. consolidate_memories
- Algorithmic merge with preview/apply modes
9. read_graph
- Return entire knowledge graph with memories and relations
10. open_memories
- Retrieve specific memories by ID with relations
11. create_relation
- Create explicit links between memories
7 CLI Commands:
- mnemex
- MCP server
- mnemex-migrate
- Migration from old installations
- mnemex-search
- Unified search across STM and LTM
- mnemex-maintenance
- Storage stats and compaction
- mnemex-index-ltm
- Index Obsidian vault
- mnemex-backup
- Git backup operations
- mnemex-vault
- Markdown file operations
💡 Core Innovations¶
- Temporal Decay: Power-law (default), exponential, and two-component models
- Reinforcement Learning: Memories strengthen with repeated access
- Smart Prompting: Natural memory operations without explicit commands
- Knowledge Graph: Entities, relations, and memory nodes
- Two-Layer Architecture: STM (JSONL) + LTM (Markdown/Obsidian)
📄 License¶
MIT License - Full user control and transparency
[0.3.0] - 2025-10-07¶
Added¶
- ELI5.md - Simple, beginner-friendly guide explaining what this project does and how to use it.
- Decay models: power-law (default), exponential, and two-component with configurable parameters.
- Unified search surfaced as an MCP tool (
search_unified
) alongside the CLI (stm-search
). - Maintenance CLI (
stm-maintenance
) to show JSONL storage stats and compact files. - Tests for decay models, LTM index parsing/search, and unified search merging.
- Deployment docs for decay model configuration and tuning tips.
- Tuning cheat sheet and model selection guidance in README and scoring docs.
Changed¶
- JSONL-only storage: removed SQLite and migration tooling.
- Server logs now include the active decay model and key parameters on startup.
- Standardized on Ruff for linting and formatting.
Removed¶
- SQLite database implementation and migration modules.
[0.2.0] - 2025-01-07¶
- JSONL storage, LTM index, Git integration, and smart prompting docs.