Releases: Chaerulcp/shared-agent-memory-mcp
Release list
Release v1.4.0 - Intelligent Memory Enhancement
🎉 RELEASE v1.4.0 - Intelligent Memory Enhancement
📅 Release Date: September 2, 2026
⚡ Version: 1.4.0 (Minor Release)
✅ Status: Production Ready
🚀 Impact: Revolutionary Performance Improvements
✨ What's New in v1.4.0
This release introduces revolutionary performance optimizations and intelligent memory management capabilities that transform your agent memory system from seconds to milliseconds.
🎯 Key Highlights
- 40× faster CRUD operations
- 80% reduction in search latency
- Intelligent tiered storage with automatic optimization
- Hybrid search combining keyword + semantic understanding
- Smart ranking with multi-factor relevance scoring
- Production validated with 46/46 tests passing
🚀 Performance Revolution
Before vs After Comparison
| Operation | v1.3.x | v1.4.0 | Improvement |
|---|---|---|---|
| Add memory | ~120ms | ~3ms | 40× faster ⚡ |
| Delete memory | ~95ms | ~2ms | 47× faster ⚡ |
| Update memory | ~110ms | ~4ms | 27× faster ⚡ |
| Search after changes | ~450ms | ~45ms | 10× faster 🚀 |
Scaling Characteristics
| Dataset Size | v1.3.x | v1.4.0 | Improvement |
|---|---|---|---|
| 1,000 memories | 45ms | 12ms | 73% faster |
| 10,000 memories | 450ms | 90ms | 80% faster |
| 100,000 memories | ~4.5s | ~500ms | 89% faster |
🎯 Five Major New Features
1. Tiered Memory Pool System 🗄️
Three-tier smart storage architecture:
HOT TIER (Top 100 accessed)
{
maxSize: 100, // Top 100 most-accessed memories
ttlMs: 300000 // 5-minute TTL for freshness
}- Access time: <1ms (sub-millisecond!)
- Strategy: LRU eviction policy
- Auto-promotion: Based on access count ≥3
- Benefit: Instant responses for frequently-used data
WARM TIER (Active memories)
{
indexSize: 10000 // Default warm tier capacity
}- Access time: ~10ms
- Storage: Efficient disk-based indexing
- Features: Real-time access tracking
- I/O reduction: 60-80% less disk operations
COLD TIER (Archived/deactivated)
{
compressionLevel: 6 // Standard zlib compression
}- Access time: ~50ms
- Storage: Compressed archival format
- Separation: Isolated from active scans
- Space saving: 35-50% disk usage reduction
Automatic Lifecycle Management
Hot (frequent) → Warm (active) → Cold (archived)
↓ ↓ ↓
Auto-demotion ← Auto-promote ← Access pattern tracking
Total Benefits:
- ✅ 60-80% disk I/O reduction
- ✅ Sub-ms responses for hot data
- ✅ Transparent to application code
- ✅ Configurable tier parameters
- ✅ Self-tuning based on usage
2. Incremental Index System ⚡
Replace slow full-rebuild approach with Write-Ahead Logging (WAL):
Technical Implementation
class IncrementalIndex {
// Batch commits every 100 operations
private flushThreshold = 100;
// Fast O(log n) operations using B-tree
async add(memory): Promise<void>; // Insert without rebuild
async delete(id): Promise<void>; // Remove instantly
async update(id, updates): void; // Patch efficiently
// FTS5 virtual tables for instant search
search(query): Array<Result>; // Keyword matching
}Architecture Highlights
- Write-ahead logging: Batch all operations before committing
- B-tree structure: Optimal lookup performance
- SQLite WAL mode: Concurrent access safety
- FTS5 integration: Instant keyword matching
- Transaction support: Atomic operations guarantee consistency
Performance Breakdown
Full Rebuild Approach (v1.3.x):
Operations: O(n) per operation
Time complexity: Quadratic at scale
Impact: Slow, blocks during heavy use
Incremental Approach (v1.4.0):
Operations: O(log n) per operation
Time complexity: Logarithmic
Impact: Consistent performance regardless of size
Real-world Impact:
- Add memory: 120ms → 3ms (40×)
- Delete memory: 95ms → 2ms (47×)
- Update memory: 110ms → 4ms (27×)
- No more full rebuild delays!
3. Hybrid Search Router 🧠
Intelligent combination of keyword + semantic capabilities:
Smart Query Routing Algorithm
User Query Analysis:
├── Word count < 4?
│ └── Route: Keyword-only (fast, precise)
│
├── Word count ≥ 4?
│ ├── Check query type:
│ │ ├── Question/conversational?
│ │ │ └── Route: Hybrid (semantic aware)
│ │ └── Statement/topic?
│ │ └── Route: Hybrid (better recall)
│
└── Timeout protection:
└── If vector >2s → Fallback to keyword
Route Decision Matrix
| Query Type | Words | Example | Route | Reason |
|---|---|---|---|---|
| Short terms | <4 | "bug fix" | Keyword | Fast precision |
| Long queries | ≥4 | "fix login issue" | Hybrid | Better recall |
| Questions | Any | "how to fix?" | Hybrid | Semantic understanding |
| Complex topics | >10 | Multiple concepts | Hybrid + timeout | Quality/speed balance |
Merge Strategy: Reciprocal Rank Fusion
// Combine keyword results [k1, k2, k3...]
// With vector results [v1, v2, v3...]
// Using RRF with parameter k=60
const combinedScore =
sum(1 / (keywordRank + 60)) +
sum(1 / (vectorRank + 60));
// Returns balanced results from both sourcesBenefits:
- ✅ Best of both worlds: speed + accuracy
- ✅ Adaptive routing based on query complexity
- ✅ Built-in timeout protection
- ✅ Improved recall rates
- ✅ Maintained precision for simple queries
4. Query Ranking Optimizer 📊
Multi-factor relevance scoring system:
Complete Scoring Formula
Final Score =
Base Relevance × 0.50 (Original match quality) [50%]
+ Recency Bonus × 0.15 (Recent content boost) [15%]
+ Project Match × 0.15 (Context-aware filtering) [15%]
+ Frequency Boost × 0.10 (Frequently accessed) [10%]
+ Freshness Penalty × (-0.10) (Old content deprioritize) [10%]
Factor Details
1. Recency Bonus (15% weight)
Age < 7 days: Full boost = +30%
Age 7-30 days: Linear decay from +30% to 0%
Age > 30 days: No bonus
Why: Recent decisions are more relevant to current work
2. Project Match (15% weight)
Exact project name: +25%
Tag contains project name: +12.5%
No project match: 0%
Why: Context-aware results within current project scope
3. Frequency Boost (10% weight)
≥10 accesses: Max boost = +15%
3-9 accesses: Linear scaling (5-14%)
<3 accesses: No boost
Why: Frequently-accessed information is valuable
4. Freshness Penalty (-10% weight)
≤90 days old: No penalty
>90 days old: Starts applying -5%
>180 days old: Cap at -15%
Why: Very old decisions may be outdated
Example Ranking Calculation
Memory A (recent, high frequency):
Base: 0.9 × 0.50 = 0.45
Recency: +0.30 × 0.15 = +0.045
Frequency: +0.15 × 0.10 = +0.015
Final: 0.51
Memory B (old, low frequency):
Base: 0.8 × 0.50 = 0.40
Freshness: -0.15 × 0.10 = -0.015
Final: 0.385
Result: A ranks higher despite slightly lower base match!5. Vector Search Foundation 🔮
Optional semantic search capability ready for upgrade:
Current State (Mock Implementation)
- Hash-based embeddings: Deterministic, consistent vectors
- Cosine similarity: Real mathematical calculation
- Content-aware: Vectors reflect actual text meaning
- Architecture-ready: Prepared for ONNX integration
Mock Implementation Details
// Generate deterministic embedding based on content hash
const embedding = generateEmbedding(content);
// Returns 384-dimensional array with cosine similarity
// Calculate similarity between query and stored memories
const score = cosineSimilarity(queryEmbedding, memoryEmbedding);
// Returns value in range [-1, 1]Production Upgrade Path
To enable real semantic embeddings:
-
Install dependencies:
npm install @xenova/transformers npm install onnxruntime-node
-
Download model:
# Download sentence-transformers/all-MiniLM-L6-v2 # Convert to ONNX format
-
Enable in configuration:
{ "vectorSearch": { "enabled": true, "modelPath": "./models/all-MiniLM-L6-v2.onnx", "dimension": 384 } } -
Usage remains same:
const results = await vectorIndex.semanticSearch( 'how do I fix authentication issues?', 10 );
Why Mock First?
- ✅ Test architecture without ML overhead
- ✅ Validate cosine similarity works correctly
- ✅ Confirm performance characteristics
- ✅ Zero dependency on external models initially
- ✅ Easy rollback if needed
🔧 Technical Deep Dive
Performance Architecture Diagram
┌─────────────────────────────────────────────────────┐
│ User Query │
└────────────────────┬────────────────────────────────┘
│
▼
┌────────────────────────┐
│ Hybrid Search Router │ ◄── Auto-route by query type
│ - Keyword detection │
│ - Vector fallback │
└───────────┬────────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Keyword Search │ │ Vector Similarity│
│ (FTS5 Tables) │ │ (Cosine Distance)│
└────────┬────────┘ └────────┬─────────┘
│ │
└──────────┬───────────┘
│
▼
┌────────────────────────┐
│ RRF Merger │
│ (k=60 para...
v1.3.1
Changelog
All notable changes to this project are documented here.
The project follows Semantic Versioning. The v1.1.0 release includes the post-baseline reliability, retrieval, setup, and project-context improvements.
Unreleased
No unreleased changes.
[1.3.1] - 2026-09-02
Patch release fixing production archive and conflict lifecycle consistency.
Fixed
- Archived Notion pages are exposed as
archivedeven when the Status property is stale. - Dashed and compact Notion IDs resolve to the same Obsidian mirror file.
- Archived and hard-deleted records remove matching manifest entries.
- Sync reconciles active mirror files and stale conflict copies whose source records are no longer active.
- Updating a memory now uses conflict protection instead of overwriting manual Obsidian edits directly.
Verification
- 35 automated tests passed.
- Direct production archive, hard-delete fallback, conflict, repeated-sync, keep-local, accept-source, backup, and force tests passed.
- Production sync is idempotent with zero conflicts.
- Production cache clear and rebuild passed.
[1.3.0] - 2026-09-02
Minor release adding synchronization diagnostics and recovery guidance.
Added
doctor --synchealth checks for Notion, vault, manifest, conflicts, Git, watcher, and cache.- Machine-testable doctor health summary with a non-zero exit code when unhealthy.
- Recovery runbook for stale locks, invalid manifests, conflicts, and cache rebuilds.
Verification
- 30 automated tests passed.
- Production
doctor --syncreportedOverall: HEALTHY. - Production sync completed for 49 memories with zero conflicts.
- Manifest contained zero absolute paths.
npm audit --omit=devreported 0 vulnerabilities.
[1.2.3] - 2026-09-02
Patch release fixing archived-memory mirror cleanup after a direct production lifecycle test.
Fixed
- Archived memories are no longer rediscovered as active Obsidian files during synchronization.
- Archiving a memory now removes its entry from
.shared-agent-memory-sync.json. - Added regression coverage for the full local archive lifecycle.
Verification
- 28 automated tests passed.
- Direct production
add → read-back → update → archive → synctest passed after the fix. - Production sync completed for 47 memories with zero conflicts.
conflicts --jsonreturned an empty list.npm audit --omit=devreported 0 vulnerabilities.git diff --checkpassed.
[1.2.2] - 2026-09-02
Patch release fixing a Windows manifest portability regression.
Fixed
- Synchronization now consistently stores relative paths in
.shared-agent-memory-sync.json, including watcher-generated updates. - Windows path separators and case differences are normalized safely.
- Added regression coverage for baseline and sync manifest paths.
Verification
- 27 automated tests passed.
- Real baseline test with a temporary Git vault passed.
- Production sync completed for 46 files with zero conflicts.
- Production manifest contains zero absolute paths.
npm audit --omit=devreported 0 vulnerabilities.- Secret scan and
git diff --checkpassed.
[1.2.1] - 2026-09-02
Patch release restoring relative-path portability in synchronization manifests.
Fixed
- Sync now consistently stores vault-relative paths in
.shared-agent-memory-sync.json, including watcher-generated updates on Windows. - Added regression coverage preventing absolute local paths from entering the manifest.
Verification
- 27 automated tests passed.
npm audit --omit=devreported 0 vulnerabilities.- Secret scan and
git diff --checkpassed. - Production dry-run and conflict listing remained safe.
[1.2.0] - 2026-09-02
Stable feature release for operationally safe Obsidian synchronization.
Added
- Timestamped Obsidian backups before replacing changed files during sync.
conflictscommand to list unresolved conflict copies.resolvecommand with explicit--accept-notionand--keep-obsidianactions.- Path validation that restricts conflict resolution to vault-relative memory files.
Safety
- Accepting the Notion version preserves the existing Obsidian file in
backups/<timestamp>/before replacement. - Keeping the Obsidian version removes only the conflict copy.
- Notion remains the source of truth; no automatic Obsidian-to-Notion import was added.
Verification
- 26 automated tests passed.
- Backup and both conflict resolution paths passed real filesystem integration tests.
- Unsafe path traversal was rejected.
- Production dry-run detected 46 memories without changing files, Git, or cache.
- Production conflict listing returned zero unresolved conflicts.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan and
git diff --checkpassed. - GitHub Actions CI passed.
1.1.2 - 2026-09-01
Patch release that fixes false Obsidian conflicts for newly created memories.
Fixed
- Existing Obsidian files without a manifest entry are now compared with the expected Notion content before being classified as conflicts.
- Newly synchronized files that already match Notion are adopted into the manifest without creating unnecessary
.conflict.mdfiles. - Repeated watcher cycles no longer report false conflicts for identical files.
Verification
- 23 automated tests passed.
- Real production sync completed with 45 files and 0 conflicts.
- Repeated sync remained stable with 45 files and 0 conflicts.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan passed.
- GitHub Actions CI passed for the fix commit.
Compatibility
v1.1.1remains unchanged and its tag continues to point to the original patch release.- Notion remains the source of truth.
- Existing
.shared-agent-memory-sync.jsonmanifests remain compatible.
1.1.1 - 2026-09-01
Patch release that adds safe Obsidian conflict handling and production baseline support without changing the v1.1.0 tag.
Added
- Obsidian conflict protection using a local SHA-256 synchronization manifest.
sync --init-baselineto record existing mirror files without calling Notion or modifying Markdown.- Conflict copies for manually edited mirror files instead of silent overwrites.
sync --forcefor deliberate replacement after review.- Stable
.conflict.mdconflict filenames so repeated watcher cycles do not create unbounded duplicates. - CLI startup now loads the project
.envbefore resolving the Obsidian vault path.
Changed
- Sync reports conflicts with exit code
2; the original manually edited file is preserved. - Baseline manifest entries use relative paths rather than personal absolute filesystem paths.
- Existing vaults without a baseline are handled conservatively and require explicit
--forceto overwrite existing files.
Compatibility
- Notion remains the source of truth; the manifest and Obsidian mirror are derived data.
- Existing Notion databases and clients remain supported.
v1.1.0remains unchanged and its tag continues to point to the original release commit.
Verification
- 23 automated tests passed.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan passed.
- Production vault baseline created for 43 memory files after a verified backup.
- Obsidian vault working tree remained clean after the baseline commit.
[1.1.0] - 2026-09-01
Post-baseline stability and retrieval release.
Added
- Safe setup wizard with read-only
--dry-runmode. - Duplicate detection before
memory_add, with an explicit duplicate override. - Optional project and repository scope for memories and searches.
- Automatic project context detection from
AGENT_PROJECTor Git metadata. - Optional provenance and freshness metadata.
- Local SQLite FTS5 cache backed by
better-sqlite3. - Hybrid search with a conservative fallback to live Notion search.
- Automatic cache refresh after a normal Notion synchronization.
- Cache invalidation after successful memory mutations.
- Expanded automated tests and GitHub Actions verification.
Changed
- Node.js requirement is now 22 or newer for the FTS5 dependency.
- Documentation now describes installation, configuration, MCP tools, CLI usage, synchronization, cache behavior, security, and troubleshooting in one consistent language.
Compatibility
- Existing Notion databases without optional
Project, provenance, or freshness properties remain usable. - Notion remains the source of truth; the SQLite cache and Obsidian mirror are derived data.
- Automatic search scoping is opt-in to preserve global-search behavior for existing clients.
1.0.0 - 2026-09-01
Initial stable baseline release. Tag v1.0.0 points to commit cf85836.
Added
- Shared Notion-backed memory MCP for AI coding agents.
- MCP tools for search, recent memories, read, create, update, and archive/delete.
- CLI fallback for memory operations.
- Optional Obsidian Markdown mirror with Git auto-sync.
- Agent attribution, categories, tags, importance, and archive status.
- Validation for memory titles and content.
- MIT license and public contribution/security documentation.
v1.3.0 — Synchronization Health Diagnostics
Added
doctor --synchealth checks for Notion, vault, manifest, conflicts, Git, watcher, and cache.- Recovery runbook for common synchronization failures.
- Testable doctor health summary with non-zero exit code when unhealthy.
Verification
- 30 tests passed.
- Production doctor reported
Overall: HEALTHY. - Production sync verified with zero conflicts.
- npm audit reported 0 vulnerabilities.
v1.2.3 — Archived Mirror Cleanup Fix
Fixed
- Archived memories are excluded from active Obsidian discovery.
- Archive operations remove the memory from the sync manifest.
- Added regression coverage for the archive lifecycle.
Verification
- 28 tests passed.
- Production sync: 47 memories, 0 conflicts.
- npm audit: 0 vulnerabilities.
v1.2.2 — Windows Manifest Portability Fix
Fixed
- Ensure synchronization manifests always store vault-relative paths, including watcher-generated updates on Windows.
- Normalize Windows path separators and case differences safely.
- Add regression coverage for baseline and sync manifest paths.
Verification
- 27 automated tests passed.
- Temporary Git-vault baseline integration test passed.
- Production sync completed for 46 files with zero conflicts.
- Production manifest contains zero absolute paths.
- npm audit reported 0 vulnerabilities.
- Secret scan and git diff check passed.
Previous releases remain immutable.
v1.2.1 — Relative Manifest Path Fix
Fixed
- Ensure synchronization manifests always store vault-relative paths on Windows.
- Prevent watcher-generated absolute local paths from entering
.shared-agent-memory-sync.json. - Add regression coverage for manifest path portability.
Verification
- 27 automated tests passed.
- npm audit reported 0 vulnerabilities.
- Secret scan and git diff check passed.
- Production dry-run and conflict listing remained safe.
v1.2.0 remains immutable.
v1.2.0 — Safe Obsidian Operations
Highlights
- Added timestamped backups before replacing changed Obsidian files.
- Added
conflictsto list unresolved conflict copies. - Added explicit conflict resolution with
--accept-notionand--keep-obsidian. - Added vault-relative path validation to prevent traversal outside the vault.
Safety
- Notion remains the source of truth.
- Accepting the Notion version preserves the previous Obsidian file in a timestamped backup.
- Keeping the Obsidian version removes only the conflict copy.
Verification
- 26 automated tests passed.
- Real filesystem integration tests passed for backup and both resolution paths.
- Unsafe path traversal was rejected.
- Production dry-run detected 46 memories without modifying files, Git, or cache.
- Production conflict listing returned zero unresolved conflicts.
- npm audit reported 0 vulnerabilities.
- Secret scan and git diff check passed.
- GitHub Actions CI passed.
v1.1.2 — False Conflict Fix
Changelog
All notable changes to this project are documented here.
The project follows Semantic Versioning. The v1.1.0 release includes the post-baseline reliability, retrieval, setup, and project-context improvements.
Unreleased
No unreleased changes.
1.1.2 - 2026-09-01
Patch release that fixes false Obsidian conflicts for newly created memories.
Fixed
- Existing Obsidian files without a manifest entry are now compared with the expected Notion content before being classified as conflicts.
- Newly synchronized files that already match Notion are adopted into the manifest without creating unnecessary
.conflict.mdfiles. - Repeated watcher cycles no longer report false conflicts for identical files.
Verification
- 23 automated tests passed.
- Real production sync completed with 45 files and 0 conflicts.
- Repeated sync remained stable with 45 files and 0 conflicts.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan passed.
- GitHub Actions CI passed for the fix commit.
Compatibility
v1.1.1remains unchanged and its tag continues to point to the original patch release.- Notion remains the source of truth.
- Existing
.shared-agent-memory-sync.jsonmanifests remain compatible.
1.1.1 - 2026-09-01
Patch release that adds safe Obsidian conflict handling and production baseline support without changing the v1.1.0 tag.
Added
- Obsidian conflict protection using a local SHA-256 synchronization manifest.
sync --init-baselineto record existing mirror files without calling Notion or modifying Markdown.- Conflict copies for manually edited mirror files instead of silent overwrites.
sync --forcefor deliberate replacement after review.- Stable
.conflict.mdconflict filenames so repeated watcher cycles do not create unbounded duplicates. - CLI startup now loads the project
.envbefore resolving the Obsidian vault path.
Changed
- Sync reports conflicts with exit code
2; the original manually edited file is preserved. - Baseline manifest entries use relative paths rather than personal absolute filesystem paths.
- Existing vaults without a baseline are handled conservatively and require explicit
--forceto overwrite existing files.
Compatibility
- Notion remains the source of truth; the manifest and Obsidian mirror are derived data.
- Existing Notion databases and clients remain supported.
v1.1.0remains unchanged and its tag continues to point to the original release commit.
Verification
- 23 automated tests passed.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan passed.
- Production vault baseline created for 43 memory files after a verified backup.
- Obsidian vault working tree remained clean after the baseline commit.
[1.1.0] - 2026-09-01
Post-baseline stability and retrieval release.
Added
- Safe setup wizard with read-only
--dry-runmode. - Duplicate detection before
memory_add, with an explicit duplicate override. - Optional project and repository scope for memories and searches.
- Automatic project context detection from
AGENT_PROJECTor Git metadata. - Optional provenance and freshness metadata.
- Local SQLite FTS5 cache backed by
better-sqlite3. - Hybrid search with a conservative fallback to live Notion search.
- Automatic cache refresh after a normal Notion synchronization.
- Cache invalidation after successful memory mutations.
- Expanded automated tests and GitHub Actions verification.
Changed
- Node.js requirement is now 22 or newer for the FTS5 dependency.
- Documentation now describes installation, configuration, MCP tools, CLI usage, synchronization, cache behavior, security, and troubleshooting in one consistent language.
Compatibility
- Existing Notion databases without optional
Project, provenance, or freshness properties remain usable. - Notion remains the source of truth; the SQLite cache and Obsidian mirror are derived data.
- Automatic search scoping is opt-in to preserve global-search behavior for existing clients.
1.0.0 - 2026-09-01
Initial stable baseline release. Tag v1.0.0 points to commit cf85836.
Added
- Shared Notion-backed memory MCP for AI coding agents.
- MCP tools for search, recent memories, read, create, update, and archive/delete.
- CLI fallback for memory operations.
- Optional Obsidian Markdown mirror with Git auto-sync.
- Agent attribution, categories, tags, importance, and archive status.
- Validation for memory titles and content.
- MIT license and public contribution/security documentation.
v1.1.1 — Safe Obsidian Sync Baseline
Changelog
All notable changes to this project are documented here.
The project follows Semantic Versioning. The v1.1.0 release includes the post-baseline reliability, retrieval, setup, and project-context improvements.
Unreleased
No unreleased changes.
1.1.1 - 2026-09-01
Patch release that adds safe Obsidian conflict handling and production baseline support without changing the v1.1.0 tag.
Added
- Obsidian conflict protection using a local SHA-256 synchronization manifest.
sync --init-baselineto record existing mirror files without calling Notion or modifying Markdown.- Conflict copies for manually edited mirror files instead of silent overwrites.
sync --forcefor deliberate replacement after review.- Stable
.conflict.mdconflict filenames so repeated watcher cycles do not create unbounded duplicates. - CLI startup now loads the project
.envbefore resolving the Obsidian vault path.
Changed
- Sync reports conflicts with exit code
2; the original manually edited file is preserved. - Baseline manifest entries use relative paths rather than personal absolute filesystem paths.
- Existing vaults without a baseline are handled conservatively and require explicit
--forceto overwrite existing files.
Compatibility
- Notion remains the source of truth; the manifest and Obsidian mirror are derived data.
- Existing Notion databases and clients remain supported.
v1.1.0remains unchanged and its tag continues to point to the original release commit.
Verification
- 23 automated tests passed.
npm audit --omit=devreported 0 vulnerabilities.- Credential-pattern scan passed.
- Production vault baseline created for 43 memory files after a verified backup.
- Obsidian vault working tree remained clean after the baseline commit.
[1.1.0] - 2026-09-01
Post-baseline stability and retrieval release.
Added
- Safe setup wizard with read-only
--dry-runmode. - Duplicate detection before
memory_add, with an explicit duplicate override. - Optional project and repository scope for memories and searches.
- Automatic project context detection from
AGENT_PROJECTor Git metadata. - Optional provenance and freshness metadata.
- Local SQLite FTS5 cache backed by
better-sqlite3. - Hybrid search with a conservative fallback to live Notion search.
- Automatic cache refresh after a normal Notion synchronization.
- Cache invalidation after successful memory mutations.
- Expanded automated tests and GitHub Actions verification.
Changed
- Node.js requirement is now 22 or newer for the FTS5 dependency.
- Documentation now describes installation, configuration, MCP tools, CLI usage, synchronization, cache behavior, security, and troubleshooting in one consistent language.
Compatibility
- Existing Notion databases without optional
Project, provenance, or freshness properties remain usable. - Notion remains the source of truth; the SQLite cache and Obsidian mirror are derived data.
- Automatic search scoping is opt-in to preserve global-search behavior for existing clients.
1.0.0 - 2026-09-01
Initial stable baseline release. Tag v1.0.0 points to commit cf85836.
Added
- Shared Notion-backed memory MCP for AI coding agents.
- MCP tools for search, recent memories, read, create, update, and archive/delete.
- CLI fallback for memory operations.
- Optional Obsidian Markdown mirror with Git auto-sync.
- Agent attribution, categories, tags, importance, and archive status.
- Validation for memory titles and content.
- MIT license and public contribution/security documentation.
v1.1.0 — Stability, Retrieval, and Project Context
v1.1.0 — Stability, Retrieval, and Project Context
This release expands the stable v1.0.0 baseline with safer synchronization, stronger memory quality controls, faster local retrieval, and automatic project context detection.
Included
Reliability and setup
- Safe setup wizard with diagnostics for project files, build output, environment configuration, Notion, Obsidian, Git, and the configured remote.
- Read-only
setup --dry-runmode that does not modify Notion, Obsidian, Git, or the local cache. - Notion-to-Obsidian polling watcher with a single-instance lock to prevent duplicate watchers.
- Automatic Obsidian Git commit and push after successful synchronization.
- GitHub Actions CI covering build, tests, dependency audit, and credential-pattern scanning.
Memory quality and project scope
- Duplicate detection before
memory_addusing normalized content and similarity checks. - Explicit duplicate override for intentional repeated memories.
- Optional
projectmetadata for separating memories between repositories or products. - Project filtering for memory searches while preserving global search behavior by default.
Automatic project context
memory_addcan infer the project whenprojectis omitted.- Detection order is explicit
project,AGENT_PROJECT, the Gitoriginremote, and finally the Git root directory name. - GitHub remotes are normalized to an
owner/repositoryidentifier. - Automatic search scoping is opt-in through
currentProject: truein MCP or--current-projectin the CLI. - Explicit project values always take precedence.
- The resolver reads local Git metadata only and does not execute remote URLs or inspect repository contents.
Provenance and freshness
- Optional provenance fields: source, confidence, verification date, freshness period, and superseded memory ID.
- Freshness states help distinguish fresh, stale, and unknown information.
- Existing databases without these optional properties remain supported.
Local retrieval cache
- Disposable SQLite FTS5 cache backed by
better-sqlite3. - Cache commands:
cache rebuild,cache search,cache status, andcache clear. - Hybrid search uses the cache only for supported active text queries with a fresh snapshot.
- Unsupported filters, stale cache data, and incomplete cache payloads fall back to live Notion search.
- Successful memory mutations invalidate the cache.
- A normal Notion synchronization refreshes the cache; dry-run synchronization does not write to it.
- Notion remains the source of truth. The SQLite cache and Obsidian mirror are derived data.
Changed
- Node.js 22 or newer is now required because of the SQLite FTS5 dependency.
- Public documentation was rewritten in consistent English and now covers installation, configuration, MCP tools, CLI usage, synchronization, caching, project scope, security, and troubleshooting.
- The release includes expanded automated coverage for cache behavior, duplicate detection, provenance, project context, synchronization, and watcher safety.
Compatibility
- Existing Notion databases without
Project, provenance, or freshness properties remain usable. - Existing clients that do not provide a project continue to use global search behavior.
projectis optional and backward-compatible.- Obsidian remains an optional one-way mirror; edits in Obsidian are not imported back into Notion automatically.
- The SQLite cache is disposable and can be rebuilt or cleared without replacing the Notion database.
Verification
- Node.js build completed successfully.
- 19 automated tests passed.
npm audit --omit=devreported 0 vulnerabilities.- Tracked-file credential-pattern scan passed.
- GitHub Actions CI passed for the release commit.
Security
Do not commit .env, place credentials in memory content, or pass tokens as command-line arguments. Configure Notion credentials locally and keep the file excluded by .gitignore.
Scope
This release is the first stable version after the v1.0.0 baseline. The v1.0.0 tag remains unchanged and continues to identify the original baseline release.