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.