This is page 22 of 23. Use http://codebase.md/basicmachines-co/basic-memory?lines=true&page={x} to view the full context.
# Directory Structure
```
├── .claude
│   ├── agents
│   │   ├── python-developer.md
│   │   └── system-architect.md
│   └── commands
│       ├── release
│       │   ├── beta.md
│       │   ├── changelog.md
│       │   ├── release-check.md
│       │   └── release.md
│       ├── spec.md
│       └── test-live.md
├── .dockerignore
├── .github
│   ├── dependabot.yml
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   ├── documentation.md
│   │   └── feature_request.md
│   └── workflows
│       ├── claude-code-review.yml
│       ├── claude-issue-triage.yml
│       ├── claude.yml
│       ├── dev-release.yml
│       ├── docker.yml
│       ├── pr-title.yml
│       ├── release.yml
│       └── test.yml
├── .gitignore
├── .python-version
├── CHANGELOG.md
├── CITATION.cff
├── CLA.md
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── docker-compose.yml
├── Dockerfile
├── docs
│   ├── ai-assistant-guide-extended.md
│   ├── character-handling.md
│   ├── cloud-cli.md
│   └── Docker.md
├── justfile
├── LICENSE
├── llms-install.md
├── pyproject.toml
├── README.md
├── SECURITY.md
├── smithery.yaml
├── specs
│   ├── SPEC-1 Specification-Driven Development Process.md
│   ├── SPEC-10 Unified Deployment Workflow and Event Tracking.md
│   ├── SPEC-11 Basic Memory API Performance Optimization.md
│   ├── SPEC-12 OpenTelemetry Observability.md
│   ├── SPEC-13 CLI Authentication with Subscription Validation.md
│   ├── SPEC-14 Cloud Git Versioning & GitHub Backup.md
│   ├── SPEC-14- Cloud Git Versioning & GitHub Backup.md
│   ├── SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md
│   ├── SPEC-16 MCP Cloud Service Consolidation.md
│   ├── SPEC-17 Semantic Search with ChromaDB.md
│   ├── SPEC-18 AI Memory Management Tool.md
│   ├── SPEC-19 Sync Performance and Memory Optimization.md
│   ├── SPEC-2 Slash Commands Reference.md
│   ├── SPEC-3 Agent Definitions.md
│   ├── SPEC-4 Notes Web UI Component Architecture.md
│   ├── SPEC-5 CLI Cloud Upload via WebDAV.md
│   ├── SPEC-6 Explicit Project Parameter Architecture.md
│   ├── SPEC-7 POC to spike Tigris Turso for local access to cloud data.md
│   ├── SPEC-8 TigrisFS Integration.md
│   ├── SPEC-9 Multi-Project Bidirectional Sync Architecture.md
│   ├── SPEC-9 Signed Header Tenant Information.md
│   └── SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md
├── src
│   └── basic_memory
│       ├── __init__.py
│       ├── alembic
│       │   ├── alembic.ini
│       │   ├── env.py
│       │   ├── migrations.py
│       │   ├── script.py.mako
│       │   └── versions
│       │       ├── 3dae7c7b1564_initial_schema.py
│       │       ├── 502b60eaa905_remove_required_from_entity_permalink.py
│       │       ├── 5fe1ab1ccebe_add_projects_table.py
│       │       ├── 647e7a75e2cd_project_constraint_fix.py
│       │       ├── 9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py
│       │       ├── a1b2c3d4e5f6_fix_project_foreign_keys.py
│       │       ├── b3c3938bacdb_relation_to_name_unique_index.py
│       │       ├── cc7172b46608_update_search_index_schema.py
│       │       └── e7e1f4367280_add_scan_watermark_tracking_to_project.py
│       ├── api
│       │   ├── __init__.py
│       │   ├── app.py
│       │   ├── routers
│       │   │   ├── __init__.py
│       │   │   ├── directory_router.py
│       │   │   ├── importer_router.py
│       │   │   ├── knowledge_router.py
│       │   │   ├── management_router.py
│       │   │   ├── memory_router.py
│       │   │   ├── project_router.py
│       │   │   ├── prompt_router.py
│       │   │   ├── resource_router.py
│       │   │   ├── search_router.py
│       │   │   └── utils.py
│       │   └── template_loader.py
│       ├── cli
│       │   ├── __init__.py
│       │   ├── app.py
│       │   ├── auth.py
│       │   ├── commands
│       │   │   ├── __init__.py
│       │   │   ├── cloud
│       │   │   │   ├── __init__.py
│       │   │   │   ├── api_client.py
│       │   │   │   ├── bisync_commands.py
│       │   │   │   ├── cloud_utils.py
│       │   │   │   ├── core_commands.py
│       │   │   │   ├── mount_commands.py
│       │   │   │   ├── rclone_config.py
│       │   │   │   ├── rclone_installer.py
│       │   │   │   ├── upload_command.py
│       │   │   │   └── upload.py
│       │   │   ├── command_utils.py
│       │   │   ├── db.py
│       │   │   ├── import_chatgpt.py
│       │   │   ├── import_claude_conversations.py
│       │   │   ├── import_claude_projects.py
│       │   │   ├── import_memory_json.py
│       │   │   ├── mcp.py
│       │   │   ├── project.py
│       │   │   ├── status.py
│       │   │   ├── sync.py
│       │   │   └── tool.py
│       │   └── main.py
│       ├── config.py
│       ├── db.py
│       ├── deps.py
│       ├── file_utils.py
│       ├── ignore_utils.py
│       ├── importers
│       │   ├── __init__.py
│       │   ├── base.py
│       │   ├── chatgpt_importer.py
│       │   ├── claude_conversations_importer.py
│       │   ├── claude_projects_importer.py
│       │   ├── memory_json_importer.py
│       │   └── utils.py
│       ├── markdown
│       │   ├── __init__.py
│       │   ├── entity_parser.py
│       │   ├── markdown_processor.py
│       │   ├── plugins.py
│       │   ├── schemas.py
│       │   └── utils.py
│       ├── mcp
│       │   ├── __init__.py
│       │   ├── async_client.py
│       │   ├── project_context.py
│       │   ├── prompts
│       │   │   ├── __init__.py
│       │   │   ├── ai_assistant_guide.py
│       │   │   ├── continue_conversation.py
│       │   │   ├── recent_activity.py
│       │   │   ├── search.py
│       │   │   └── utils.py
│       │   ├── resources
│       │   │   ├── ai_assistant_guide.md
│       │   │   └── project_info.py
│       │   ├── server.py
│       │   └── tools
│       │       ├── __init__.py
│       │       ├── build_context.py
│       │       ├── canvas.py
│       │       ├── chatgpt_tools.py
│       │       ├── delete_note.py
│       │       ├── edit_note.py
│       │       ├── list_directory.py
│       │       ├── move_note.py
│       │       ├── project_management.py
│       │       ├── read_content.py
│       │       ├── read_note.py
│       │       ├── recent_activity.py
│       │       ├── search.py
│       │       ├── utils.py
│       │       ├── view_note.py
│       │       └── write_note.py
│       ├── models
│       │   ├── __init__.py
│       │   ├── base.py
│       │   ├── knowledge.py
│       │   ├── project.py
│       │   └── search.py
│       ├── repository
│       │   ├── __init__.py
│       │   ├── entity_repository.py
│       │   ├── observation_repository.py
│       │   ├── project_info_repository.py
│       │   ├── project_repository.py
│       │   ├── relation_repository.py
│       │   ├── repository.py
│       │   └── search_repository.py
│       ├── schemas
│       │   ├── __init__.py
│       │   ├── base.py
│       │   ├── cloud.py
│       │   ├── delete.py
│       │   ├── directory.py
│       │   ├── importer.py
│       │   ├── memory.py
│       │   ├── project_info.py
│       │   ├── prompt.py
│       │   ├── request.py
│       │   ├── response.py
│       │   ├── search.py
│       │   └── sync_report.py
│       ├── services
│       │   ├── __init__.py
│       │   ├── context_service.py
│       │   ├── directory_service.py
│       │   ├── entity_service.py
│       │   ├── exceptions.py
│       │   ├── file_service.py
│       │   ├── initialization.py
│       │   ├── link_resolver.py
│       │   ├── project_service.py
│       │   ├── search_service.py
│       │   └── service.py
│       ├── sync
│       │   ├── __init__.py
│       │   ├── background_sync.py
│       │   ├── sync_service.py
│       │   └── watch_service.py
│       ├── templates
│       │   └── prompts
│       │       ├── continue_conversation.hbs
│       │       └── search.hbs
│       └── utils.py
├── test-int
│   ├── BENCHMARKS.md
│   ├── cli
│   │   ├── test_project_commands_integration.py
│   │   ├── test_sync_commands_integration.py
│   │   └── test_version_integration.py
│   ├── conftest.py
│   ├── mcp
│   │   ├── test_build_context_underscore.py
│   │   ├── test_build_context_validation.py
│   │   ├── test_chatgpt_tools_integration.py
│   │   ├── test_default_project_mode_integration.py
│   │   ├── test_delete_note_integration.py
│   │   ├── test_edit_note_integration.py
│   │   ├── test_list_directory_integration.py
│   │   ├── test_move_note_integration.py
│   │   ├── test_project_management_integration.py
│   │   ├── test_project_state_sync_integration.py
│   │   ├── test_read_content_integration.py
│   │   ├── test_read_note_integration.py
│   │   ├── test_search_integration.py
│   │   ├── test_single_project_mcp_integration.py
│   │   └── test_write_note_integration.py
│   ├── test_db_wal_mode.py
│   ├── test_disable_permalinks_integration.py
│   └── test_sync_performance_benchmark.py
├── tests
│   ├── __init__.py
│   ├── api
│   │   ├── conftest.py
│   │   ├── test_async_client.py
│   │   ├── test_continue_conversation_template.py
│   │   ├── test_directory_router.py
│   │   ├── test_importer_router.py
│   │   ├── test_knowledge_router.py
│   │   ├── test_management_router.py
│   │   ├── test_memory_router.py
│   │   ├── test_project_router_operations.py
│   │   ├── test_project_router.py
│   │   ├── test_prompt_router.py
│   │   ├── test_relation_background_resolution.py
│   │   ├── test_resource_router.py
│   │   ├── test_search_router.py
│   │   ├── test_search_template.py
│   │   ├── test_template_loader_helpers.py
│   │   └── test_template_loader.py
│   ├── cli
│   │   ├── conftest.py
│   │   ├── test_bisync_commands.py
│   │   ├── test_cli_tools.py
│   │   ├── test_cloud_authentication.py
│   │   ├── test_cloud_utils.py
│   │   ├── test_ignore_utils.py
│   │   ├── test_import_chatgpt.py
│   │   ├── test_import_claude_conversations.py
│   │   ├── test_import_claude_projects.py
│   │   ├── test_import_memory_json.py
│   │   └── test_upload.py
│   ├── conftest.py
│   ├── db
│   │   └── test_issue_254_foreign_key_constraints.py
│   ├── importers
│   │   ├── test_importer_base.py
│   │   └── test_importer_utils.py
│   ├── markdown
│   │   ├── __init__.py
│   │   ├── test_date_frontmatter_parsing.py
│   │   ├── test_entity_parser_error_handling.py
│   │   ├── test_entity_parser.py
│   │   ├── test_markdown_plugins.py
│   │   ├── test_markdown_processor.py
│   │   ├── test_observation_edge_cases.py
│   │   ├── test_parser_edge_cases.py
│   │   ├── test_relation_edge_cases.py
│   │   └── test_task_detection.py
│   ├── mcp
│   │   ├── conftest.py
│   │   ├── test_obsidian_yaml_formatting.py
│   │   ├── test_permalink_collision_file_overwrite.py
│   │   ├── test_prompts.py
│   │   ├── test_resources.py
│   │   ├── test_tool_build_context.py
│   │   ├── test_tool_canvas.py
│   │   ├── test_tool_delete_note.py
│   │   ├── test_tool_edit_note.py
│   │   ├── test_tool_list_directory.py
│   │   ├── test_tool_move_note.py
│   │   ├── test_tool_read_content.py
│   │   ├── test_tool_read_note.py
│   │   ├── test_tool_recent_activity.py
│   │   ├── test_tool_resource.py
│   │   ├── test_tool_search.py
│   │   ├── test_tool_utils.py
│   │   ├── test_tool_view_note.py
│   │   ├── test_tool_write_note.py
│   │   └── tools
│   │       └── test_chatgpt_tools.py
│   ├── Non-MarkdownFileSupport.pdf
│   ├── repository
│   │   ├── test_entity_repository_upsert.py
│   │   ├── test_entity_repository.py
│   │   ├── test_entity_upsert_issue_187.py
│   │   ├── test_observation_repository.py
│   │   ├── test_project_info_repository.py
│   │   ├── test_project_repository.py
│   │   ├── test_relation_repository.py
│   │   ├── test_repository.py
│   │   ├── test_search_repository_edit_bug_fix.py
│   │   └── test_search_repository.py
│   ├── schemas
│   │   ├── test_base_timeframe_minimum.py
│   │   ├── test_memory_serialization.py
│   │   ├── test_memory_url_validation.py
│   │   ├── test_memory_url.py
│   │   ├── test_schemas.py
│   │   └── test_search.py
│   ├── Screenshot.png
│   ├── services
│   │   ├── test_context_service.py
│   │   ├── test_directory_service.py
│   │   ├── test_entity_service_disable_permalinks.py
│   │   ├── test_entity_service.py
│   │   ├── test_file_service.py
│   │   ├── test_initialization.py
│   │   ├── test_link_resolver.py
│   │   ├── test_project_removal_bug.py
│   │   ├── test_project_service_operations.py
│   │   ├── test_project_service.py
│   │   └── test_search_service.py
│   ├── sync
│   │   ├── test_character_conflicts.py
│   │   ├── test_sync_service_incremental.py
│   │   ├── test_sync_service.py
│   │   ├── test_sync_wikilink_issue.py
│   │   ├── test_tmp_files.py
│   │   ├── test_watch_service_edge_cases.py
│   │   ├── test_watch_service_reload.py
│   │   └── test_watch_service.py
│   ├── test_config.py
│   ├── test_db_migration_deduplication.py
│   ├── test_deps.py
│   ├── test_production_cascade_delete.py
│   └── utils
│       ├── test_file_utils.py
│       ├── test_frontmatter_obsidian_compatible.py
│       ├── test_parse_tags.py
│       ├── test_permalink_formatting.py
│       ├── test_utf8_handling.py
│       └── test_validate_project_path.py
├── uv.lock
├── v0.15.0-RELEASE-DOCS.md
└── v15-docs
    ├── api-performance.md
    ├── background-relations.md
    ├── basic-memory-home.md
    ├── bug-fixes.md
    ├── chatgpt-integration.md
    ├── cloud-authentication.md
    ├── cloud-bisync.md
    ├── cloud-mode-usage.md
    ├── cloud-mount.md
    ├── default-project-mode.md
    ├── env-file-removal.md
    ├── env-var-overrides.md
    ├── explicit-project-parameter.md
    ├── gitignore-integration.md
    ├── project-root-env-var.md
    ├── README.md
    └── sqlite-performance.md
```
# Files
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
```markdown
   1 | # CHANGELOG
   2 | 
   3 | ## v0.15.2 (2025-10-14)
   4 | 
   5 | ### Features
   6 | 
   7 | - **#356**: Add WebDAV upload command for cloud projects
   8 |   ([`5258f45`](https://github.com/basicmachines-co/basic-memory/commit/5258f457))
   9 |   - New `bm cloud upload` command for uploading local files/directories to cloud projects
  10 |   - WebDAV-based file transfer with automatic directory creation
  11 |   - Support for `.gitignore` and `.bmignore` pattern filtering
  12 |   - Automatic project creation with `--create-project` flag
  13 |   - Optional post-upload sync with `--sync` flag (enabled by default)
  14 |   - Human-readable file size reporting (bytes, KB, MB)
  15 |   - Comprehensive test coverage (28 unit tests)
  16 | 
  17 | ### Migration Guide
  18 | 
  19 | No manual migration required. Upgrade with:
  20 | 
  21 | ```bash
  22 | # Update via uv
  23 | uv tool upgrade basic-memory
  24 | 
  25 | # Or install fresh
  26 | uv tool install basic-memory
  27 | ```
  28 | 
  29 | **What's New:**
  30 | - Upload local files to cloud projects with `bm cloud upload`
  31 | - Streamlined cloud project creation and management
  32 | - Better file filtering with gitignore integration
  33 | 
  34 | ### Installation
  35 | 
  36 | ```bash
  37 | # Latest stable release
  38 | uv tool install basic-memory
  39 | 
  40 | # Update existing installation
  41 | uv tool upgrade basic-memory
  42 | 
  43 | # Docker
  44 | docker pull ghcr.io/basicmachines-co/basic-memory:v0.15.2
  45 | ```
  46 | 
  47 | ## v0.15.1 (2025-10-13)
  48 | 
  49 | ### Performance Improvements
  50 | 
  51 | - **#352**: Optimize sync/indexing for 43% faster performance
  52 |   ([`c0538ad`](https://github.com/basicmachines-co/basic-memory/commit/c0538ad2perf0d68a2a3604e255c3f2c42c5ed))
  53 |   - Significant performance improvements to file synchronization and indexing operations
  54 |   - 43% reduction in sync time for large knowledge bases
  55 |   - Optimized database queries and file processing
  56 | 
  57 | - **#350**: Optimize directory operations for 10-100x performance improvement
  58 |   ([`00b73b0`](https://github.com/basicmachines-co/basic-memory/commit/00b73b0d))
  59 |   - Dramatic performance improvements for directory listing operations
  60 |   - 10-100x faster directory traversal depending on knowledge base size
  61 |   - Reduced memory footprint for large directory structures
  62 |   - Exclude null fields from directory endpoint responses for smaller payloads
  63 | 
  64 | ### Bug Fixes
  65 | 
  66 | - **#355**: Update view_note and ChatGPT tools for Claude Desktop compatibility
  67 |   ([`2b7008d`](https://github.com/basicmachines-co/basic-memory/commit/2b7008d9))
  68 |   - Fix view_note tool formatting for better Claude Desktop rendering
  69 |   - Update ChatGPT tool integration for improved compatibility
  70 |   - Enhanced artifact display in Claude Desktop interface
  71 | 
  72 | - **#348**: Add permalink normalization to project lookups in deps.py
  73 |   ([`a09066e`](https://github.com/basicmachines-co/basic-memory/commit/a09066e0))
  74 |   - Fix project lookup failures due to case sensitivity
  75 |   - Normalize permalinks consistently across project operations
  76 |   - Improve project switching reliability
  77 | 
  78 | - **#345**: Project deletion failing with permalink normalization
  79 |   ([`be352ab`](https://github.com/basicmachines-co/basic-memory/commit/be352ab4))
  80 |   - Fix project deletion errors related to permalink handling
  81 |   - Ensure proper cleanup of project resources
  82 |   - Improve error messages for deletion failures
  83 | 
  84 | - **#341**: Correct ProjectItem.home property to return path instead of name
  85 |   ([`3e876a7`](https://github.com/basicmachines-co/basic-memory/commit/3e876a75))
  86 |   - Fix ProjectItem.home to return correct project path
  87 |   - Resolve configuration issues with project paths
  88 |   - Improve project path resolution consistency
  89 | 
  90 | - **#339**: Prevent nested project paths to avoid data conflicts
  91 |   ([`795e339`](https://github.com/basicmachines-co/basic-memory/commit/795e3393))
  92 |   - Block creation of nested project paths that could cause data conflicts
  93 |   - Add validation to prevent project path hierarchy issues
  94 |   - Improve error messages for invalid project configurations
  95 | 
  96 | - **#338**: Normalize paths to lowercase in cloud mode to prevent case collisions
  97 |   ([`07e304c`](https://github.com/basicmachines-co/basic-memory/commit/07e304ce))
  98 |   - Fix path case sensitivity issues in cloud deployments
  99 |   - Normalize paths consistently across cloud operations
 100 |   - Prevent data loss from case-insensitive filesystem collisions
 101 | 
 102 | - **#336**: Cloud mode path validation and sanitization (bmc-issue-103)
 103 |   ([`2a1c06d`](https://github.com/basicmachines-co/basic-memory/commit/2a1c06d9))
 104 |   - Enhanced path validation for cloud deployments
 105 |   - Improved path sanitization to prevent security issues
 106 |   - Better error handling for invalid paths in cloud mode
 107 | 
 108 | - **#332**: Cloud mode path validation and sanitization
 109 |   ([`7616b2b`](https://github.com/basicmachines-co/basic-memory/commit/7616b2bb))
 110 |   - Additional cloud mode path fixes and improvements
 111 |   - Comprehensive path validation for cloud environments
 112 |   - Security enhancements for path handling
 113 | 
 114 | ### Features
 115 | 
 116 | - **#344**: Async client context manager pattern for cloud consolidation (SPEC-16)
 117 |   ([`8d2e70c`](https://github.com/basicmachines-co/basic-memory/commit/8d2e70cf))
 118 |   - Refactor async client to use context manager pattern
 119 |   - Improve resource management and cleanup
 120 |   - Enable better dependency injection for cloud deployments
 121 |   - Foundation for cloud platform consolidation
 122 | 
 123 | - **#343**: Add SPEC-15 for configuration persistence via Tigris
 124 |   ([`53438d1`](https://github.com/basicmachines-co/basic-memory/commit/53438d1e))
 125 |   - Design specification for persistent configuration storage
 126 |   - Foundation for cloud configuration management
 127 |   - Tigris S3-compatible storage integration planning
 128 | 
 129 | - **#334**: Introduce BASIC_MEMORY_PROJECT_ROOT for path constraints
 130 |   ([`ccc4386`](https://github.com/basicmachines-co/basic-memory/commit/ccc43866))
 131 |   - Add environment variable for constraining project paths
 132 |   - Improve security by limiting project creation locations
 133 |   - Better control over project directory structure
 134 | 
 135 | ### Documentation
 136 | 
 137 | - **#335**: v0.15.0 assistant guide updates
 138 |   ([`c6f93a0`](https://github.com/basicmachines-co/basic-memory/commit/c6f93a02))
 139 |   - Update AI assistant guide for v0.15.0 features
 140 |   - Improve documentation for new MCP tools
 141 |   - Better examples and usage patterns
 142 | 
 143 | - **#339**: Add tool use documentation to write_note for root folder usage
 144 |   ([`73202d1`](https://github.com/basicmachines-co/basic-memory/commit/73202d1a))
 145 |   - Document how to use empty string for root folder in write_note
 146 |   - Clarify folder parameter usage
 147 |   - Improve tool documentation clarity
 148 | 
 149 | - Fix link in ai_assistant_guide resource
 150 |   ([`2a1c06d`](https://github.com/basicmachines-co/basic-memory/commit/2a1c06d9))
 151 |   - Correct broken documentation links
 152 |   - Improve resource accessibility
 153 | 
 154 | ### Refactoring
 155 | 
 156 | - Add SPEC-17 and SPEC-18 documentation
 157 |   ([`962d88e`](https://github.com/basicmachines-co/basic-memory/commit/962d88ea))
 158 |   - New specification documents for future features
 159 |   - Architecture planning and design documentation
 160 | 
 161 | ### Breaking Changes
 162 | 
 163 | **None** - This release maintains full backward compatibility with v0.15.0
 164 | 
 165 | ### Migration Guide
 166 | 
 167 | No manual migration required. Upgrade with:
 168 | 
 169 | ```bash
 170 | # Update via uv
 171 | uv tool upgrade basic-memory
 172 | 
 173 | # Or install fresh
 174 | uv tool install basic-memory
 175 | ```
 176 | 
 177 | **What's Fixed:**
 178 | - Significant performance improvements (43% faster sync, 10-100x faster directory operations)
 179 | - Multiple cloud deployment stability fixes
 180 | - Project path validation and normalization issues resolved
 181 | - Better Claude Desktop and ChatGPT integration
 182 | 
 183 | **What's New:**
 184 | - Context manager pattern for async clients (foundation for cloud consolidation)
 185 | - BASIC_MEMORY_PROJECT_ROOT environment variable for path constraints
 186 | - Enhanced cloud mode path handling and security
 187 | - SPEC-15 and SPEC-16 architecture documentation
 188 | 
 189 | ### Installation
 190 | 
 191 | ```bash
 192 | # Latest stable release
 193 | uv tool install basic-memory
 194 | 
 195 | # Update existing installation
 196 | uv tool upgrade basic-memory
 197 | 
 198 | # Docker
 199 | docker pull ghcr.io/basicmachines-co/basic-memory:v0.15.1
 200 | ```
 201 | 
 202 | ## v0.15.0 (2025-10-04)
 203 | 
 204 | ### Critical Bug Fixes
 205 | 
 206 | - **Permalink Collision Data Loss Prevention** - Fixed critical bug where creating similar entity names would overwrite existing files
 207 |   ([`2a050ed`](https://github.com/basicmachines-co/basic-memory/commit/2a050edee42b07294f5199902a60b626bfc47be8))
 208 |   - **Issue**: Creating "Node C" would overwrite "Node A.md" due to fuzzy search incorrectly matching similar file paths
 209 |   - **Solution**: Added `strict=True` parameter to link resolution, disabling fuzzy search fallback during entity creation
 210 |   - **Impact**: Prevents data loss from false positive path matching like "edge-cases/Node A.md" vs "edge-cases/Node C.md"
 211 |   - **Testing**: Comprehensive integration tests and MCP-level permalink collision tests added
 212 |   - **Status**: Manually verified fix prevents file overwrite in production scenarios
 213 | 
 214 | ### Bug Fixes
 215 | 
 216 | - **#330**: Remove .env file loading from BasicMemoryConfig
 217 |   ([`f3b1945`](https://github.com/basicmachines-co/basic-memory/commit/f3b1945e4c0070d0282eaf98c085ef188c8edd2d))
 218 |   - Clean up configuration initialization to prevent unintended environment variable loading
 219 | 
 220 | - **#329**: Normalize underscores in memory:// URLs for build_context
 221 |   ([`f5a11f3`](https://github.com/basicmachines-co/basic-memory/commit/f5a11f3911edda55bee6970ed9e7c38f7fd7a059))
 222 |   - Fix URL normalization to handle underscores consistently in memory:// protocol
 223 |   - Improve knowledge graph navigation with standardized URL handling
 224 | 
 225 | - **#328**: Simplify entity upsert to use database-level conflict resolution
 226 |   ([`ee83b0e`](https://github.com/basicmachines-co/basic-memory/commit/ee83b0e5a8f00cdcc8e24a0f8c9449c6eaddf649))
 227 |   - Leverage SQLite's native UPSERT for cleaner entity creation/update logic
 228 |   - Reduce application-level complexity by using database conflict resolution
 229 | 
 230 | - **#312**: Add proper datetime JSON schema format annotations for MCP validation
 231 |   ([`a7bf42e`](https://github.com/basicmachines-co/basic-memory/commit/a7bf42ef495a3e2c66230985c3445cab5c52c408))
 232 |   - Fix MCP schema validation errors with proper datetime format annotations
 233 |   - Ensure compatibility with strict MCP schema validators
 234 | 
 235 | - **#281**: Fix move_note without file extension
 236 |   ([`3e168b9`](https://github.com/basicmachines-co/basic-memory/commit/3e168b98f3962681799f4537eb86ded47e771665))
 237 |   - Allow moving notes by title alone without requiring .md extension
 238 |   - Improve move operation usability and error handling
 239 | 
 240 | - **#310**: Remove obsolete update_current_project function and --project flag reference
 241 |   ([`17a6733`](https://github.com/basicmachines-co/basic-memory/commit/17a6733c9d280def922e37c2cd171e3ee44fce21))
 242 |   - Clean up deprecated project management code
 243 |   - Remove unused CLI flag references
 244 | 
 245 | - **#309**: Make sync operations truly non-blocking with thread pool
 246 |   ([`1091e11`](https://github.com/basicmachines-co/basic-memory/commit/1091e113227c86f10f574e56a262aff72f728113))
 247 |   - Move sync operations to background thread pool for improved responsiveness
 248 |   - Prevent blocking during file synchronization operations
 249 | 
 250 | ### Features
 251 | 
 252 | - **#327**: CLI Subscription Validation (SPEC-13 Phase 2)
 253 |   ([`ace6a0f`](https://github.com/basicmachines-co/basic-memory/commit/ace6a0f50d8d0b4ea31fb526361c2d9616271740))
 254 |   - Implement subscription validation for CLI operations
 255 |   - Foundation for future cloud billing integration
 256 | 
 257 | - **#322**: Cloud CLI sync via rclone bisync
 258 |   ([`99a35a7`](https://github.com/basicmachines-co/basic-memory/commit/99a35a7fb410ef88c50050e666e4244350e44a6e))
 259 |   - Add bidirectional cloud synchronization using rclone
 260 |   - Enable local-cloud file sync with conflict detection
 261 | 
 262 | - **#315**: Implement SPEC-11 API performance optimizations
 263 |   ([`5da97e4`](https://github.com/basicmachines-co/basic-memory/commit/5da97e482052907d68a2a3604e255c3f2c42c5ed))
 264 |   - Comprehensive API performance improvements
 265 |   - Optimized database queries and response times
 266 | 
 267 | - **#314**: Integrate ignore_utils to skip .gitignored files in sync process
 268 |   ([`33ee1e0`](https://github.com/basicmachines-co/basic-memory/commit/33ee1e0831d2060587de2c9886e74ff111b04583))
 269 |   - Respect .gitignore patterns during file synchronization
 270 |   - Prevent syncing build artifacts and temporary files
 271 | 
 272 | - **#313**: Add disable_permalinks config flag
 273 |   ([`9035913`](https://github.com/basicmachines-co/basic-memory/commit/903591384dffeba9996a18463818bdb8b28ca03e))
 274 |   - Optional permalink generation for users who don't need them
 275 |   - Improves flexibility for different knowledge management workflows
 276 | 
 277 | - **#306**: Implement cloud mount CLI commands for local file access
 278 |   ([`2c5c606`](https://github.com/basicmachines-co/basic-memory/commit/2c5c606a394ab994334c8fd307b30370037bbf39))
 279 |   - Mount cloud files locally using rclone for real-time editing
 280 |   - Three performance profiles: fast (5s), balanced (10-15s), safe (15s+)
 281 |   - Cross-platform rclone installer with package manager fallbacks
 282 | 
 283 | - **#305**: ChatGPT tools for search and fetch
 284 |   ([`f40ab31`](https://github.com/basicmachines-co/basic-memory/commit/f40ab31685a9510a07f5d87bf24436c0df80680f))
 285 |   - Add ChatGPT-specific search and fetch tools
 286 |   - Expand AI assistant integration options
 287 | 
 288 | - **#298**: Implement SPEC-6 Stateless Architecture for MCP Tools
 289 |   ([`a1d7792`](https://github.com/basicmachines-co/basic-memory/commit/a1d7792bdb6f71c4943b861d1c237f6ac7021247))
 290 |   - Redesign MCP tools for stateless operation
 291 |   - Enable cloud deployment with better scalability
 292 | 
 293 | - **#296**: Basic Memory cloud upload
 294 |   ([`e0d8aeb`](https://github.com/basicmachines-co/basic-memory/commit/e0d8aeb14913f3471b9716d0c60c61adb1d74687))
 295 |   - Implement file upload capabilities for cloud storage
 296 |   - Foundation for cloud-hosted Basic Memory instances
 297 | 
 298 | - **#291**: Merge Cloud auth
 299 |   ([`3a6baf8`](https://github.com/basicmachines-co/basic-memory/commit/3a6baf80fc6012e9434e06b1605f9a8b198d8688))
 300 |   - OAuth 2.1 authentication with Supabase integration
 301 |   - JWT-based tenant isolation for multi-user cloud deployments
 302 | 
 303 | ### Platform & Infrastructure
 304 | 
 305 | - **#331**: Add Python 3.13 to test matrix
 306 |   ([`16d7edd`](https://github.com/basicmachines-co/basic-memory/commit/16d7eddbf704abfe53373663e80d05ecdde15aa7))
 307 |   - Ensure compatibility with latest Python version
 308 |   - Expand CI/CD testing coverage
 309 | 
 310 | - **#316**: Enable WAL mode and add Windows-specific SQLite optimizations
 311 |   ([`c83d567`](https://github.com/basicmachines-co/basic-memory/commit/c83d567917267bb3d52708f4b38d2daf36c1f135))
 312 |   - Enable Write-Ahead Logging for better concurrency
 313 |   - Platform-specific SQLite optimizations for Windows users
 314 | 
 315 | - **#320**: Rework lifecycle management to optimize cloud deployment
 316 |   ([`ea2e93d`](https://github.com/basicmachines-co/basic-memory/commit/ea2e93d9265bfa366d2d3796f99f579ab2aed48c))
 317 |   - Optimize application lifecycle for cloud environments
 318 |   - Improve startup time and resource management
 319 | 
 320 | - **#319**: Resolve entity relations in background to prevent cold start blocking
 321 |   ([`324844a`](https://github.com/basicmachines-co/basic-memory/commit/324844a670d874410c634db520a68c09149045ea))
 322 |   - Move relation resolution to background processing
 323 |   - Faster MCP server cold starts
 324 | 
 325 | - **#318**: Enforce minimum 1-day timeframe for recent_activity
 326 |   ([`f818702`](https://github.com/basicmachines-co/basic-memory/commit/f818702ab7f8d2d706178e7b0ed3467501c9c4a2))
 327 |   - Fix timezone-related issues in recent activity queries
 328 |   - Ensure consistent behavior across time zones
 329 | 
 330 | - **#317**: Critical cloud deployment fixes for MCP stability
 331 |   ([`2efd8f4`](https://github.com/basicmachines-co/basic-memory/commit/2efd8f44e2d0259079ed5105fea34308875c0e10))
 332 |   - Multiple stability improvements for cloud-hosted MCP servers
 333 |   - Enhanced error handling and recovery
 334 | 
 335 | ### Technical Improvements
 336 | 
 337 | - **Comprehensive Testing** - Extensive test coverage for critical fixes
 338 |   - New permalink collision test suite with 4 MCP-level integration tests
 339 |   - Entity service test coverage expanded to reproduce fuzzy search bug
 340 |   - Manual testing verification of data loss prevention
 341 |   - All 55 entity service tests passing with new strict resolution
 342 | 
 343 | - **Windows Support Enhancements**
 344 |   ([`7a8b08d`](https://github.com/basicmachines-co/basic-memory/commit/7a8b08d11ee627b54af6f5ea7ab4ef9fcd8cf4ed),
 345 |    [`9aa4024`](https://github.com/basicmachines-co/basic-memory/commit/9aa40246a8ad1c3cef82b32e1ca7ce8ea23e1e05))
 346 |   - Fix Windows test failures and add Windows CI support
 347 |   - Address platform-specific issues for Windows users
 348 |   - Enhanced cross-platform compatibility
 349 | 
 350 | - **Docker Improvements**
 351 |   ([`105bcaa`](https://github.com/basicmachines-co/basic-memory/commit/105bcaa025576a06f889183baded6c18f3782696))
 352 |   - Implement non-root Docker container to fix file ownership issues
 353 |   - Improved security and compatibility in containerized deployments
 354 | 
 355 | - **Code Quality**
 356 |   - Enhanced filename sanitization with optional kebab case support
 357 |   - Improved character conflict detection for sync operations
 358 |   - Better error handling across the codebase
 359 |   - Path traversal security vulnerability fixes
 360 | 
 361 | ### Documentation
 362 | 
 363 | - **#321**: Corrected dead links in README
 364 |   ([`fc38877`](https://github.com/basicmachines-co/basic-memory/commit/fc38877008cd8c762116f7ff4b2573495b4e5c0f))
 365 |   - Fix broken documentation links
 366 |   - Improve navigation and accessibility
 367 | 
 368 | - **#308**: Update Claude Code GitHub Workflow
 369 |   ([`8c7e29e`](https://github.com/basicmachines-co/basic-memory/commit/8c7e29e325f36a67bdefe8811637493bef4bbf56))
 370 |   - Enhanced GitHub integration documentation
 371 |   - Better Claude Code collaboration workflow
 372 | 
 373 | ### Breaking Changes
 374 | 
 375 | **None** - This release maintains full backward compatibility with v0.14.x
 376 | 
 377 | All changes are either:
 378 | - Bug fixes that correct unintended behavior
 379 | - New optional features that don't affect existing functionality
 380 | - Internal optimizations that are transparent to users
 381 | 
 382 | ### Migration Guide
 383 | 
 384 | No manual migration required. Upgrade with:
 385 | 
 386 | ```bash
 387 | # Update via uv
 388 | uv tool upgrade basic-memory
 389 | 
 390 | # Or install fresh
 391 | uv tool install basic-memory
 392 | ```
 393 | 
 394 | **What's Fixed:**
 395 | - Data loss bug from permalink collisions is completely resolved
 396 | - Cloud deployment stability significantly improved
 397 | - Windows platform compatibility enhanced
 398 | - Better performance across all operations
 399 | 
 400 | **What's New:**
 401 | - Cloud sync capabilities via rclone
 402 | - Subscription validation foundation
 403 | - Python 3.13 support
 404 | - Enhanced security and stability
 405 | 
 406 | ### Installation
 407 | 
 408 | ```bash
 409 | # Latest stable release
 410 | uv tool install basic-memory
 411 | 
 412 | # Update existing installation
 413 | uv tool upgrade basic-memory
 414 | 
 415 | # Docker
 416 | docker pull ghcr.io/basicmachines-co/basic-memory:v0.15.0
 417 | ```
 418 | 
 419 | ## v0.14.2 (2025-07-03)
 420 | 
 421 | ### Bug Fixes
 422 | 
 423 | - **#204**: Fix MCP Error with MCP-Hub integration
 424 |   ([`3621bb7`](https://github.com/basicmachines-co/basic-memory/commit/3621bb7b4d6ac12d892b18e36bb8f7c9101c7b10))
 425 |   - Resolve compatibility issues with MCP-Hub
 426 |   - Improve error handling in project management tools
 427 |   - Ensure stable MCP tool integration across different environments
 428 | 
 429 | - **Modernize datetime handling and suppress SQLAlchemy warnings**
 430 |   ([`f80ac0e`](https://github.com/basicmachines-co/basic-memory/commit/f80ac0e3e74b7a737a7fc7b956b5c1d61b0c67b8))
 431 |   - Replace deprecated `datetime.utcnow()` with timezone-aware alternatives
 432 |   - Suppress SQLAlchemy deprecation warnings for cleaner output
 433 |   - Improve future compatibility with Python datetime best practices
 434 | 
 435 | ## v0.14.1 (2025-07-03)
 436 | 
 437 | ### Bug Fixes
 438 | 
 439 | - **#203**: Constrain fastmcp version to prevent breaking changes
 440 |   ([`827f7cf`](https://github.com/basicmachines-co/basic-memory/commit/827f7cf86e7b84c56e7a43bb83f2e5d84a1ad8b8))
 441 |   - Pin fastmcp to compatible version range to avoid API breaking changes
 442 |   - Ensure stable MCP server functionality across updates
 443 |   - Improve dependency management for production deployments
 444 | 
 445 | - **#190**: Fix Problems with MCP integration  
 446 |   ([`bd4f551`](https://github.com/basicmachines-co/basic-memory/commit/bd4f551a5bb0b7b4d3a5b04de70e08987c6ab2f9))
 447 |   - Resolve MCP server initialization and communication issues
 448 |   - Improve error handling and recovery in MCP operations
 449 |   - Enhance stability for AI assistant integrations
 450 | 
 451 | ### Features
 452 | 
 453 | - **Add Cursor IDE integration button** - One-click setup for Cursor IDE users
 454 |   ([`5360005`](https://github.com/basicmachines-co/basic-memory/commit/536000512294d66090bf87abc8014f4dfc284310))
 455 |   - Direct installation button for Cursor IDE in README
 456 |   - Streamlined setup process for Cursor users
 457 |   - Enhanced developer experience for AI-powered coding
 458 | 
 459 | - **Add Homebrew installation instructions** - Official Homebrew tap support
 460 |   ([`39f811f`](https://github.com/basicmachines-co/basic-memory/commit/39f811f8b57dd998445ae43537cd492c680b2e11))
 461 |   - Official Homebrew formula in basicmachines-co/basic-memory tap
 462 |   - Simplified installation process for macOS users
 463 |   - Package manager integration for easier dependency management
 464 | 
 465 | ## v0.14.0 (2025-06-26)
 466 | 
 467 | ### Features
 468 | 
 469 | - **Docker Container Registry Migration** - Switch from Docker Hub to GitHub Container Registry for better security and integration  
 470 |   ([`616c1f0`](https://github.com/basicmachines-co/basic-memory/commit/616c1f0710da59c7098a5f4843d4f017877ff7b2))
 471 |   - Automated Docker image publishing via GitHub Actions CI/CD pipeline
 472 |   - Enhanced container security with GitHub's integrated vulnerability scanning
 473 |   - Streamlined container deployment workflow for production environments
 474 | 
 475 | - **Enhanced Search Documentation** - Comprehensive search syntax examples for improved user experience
 476 |   ([`a589f8b`](https://github.com/basicmachines-co/basic-memory/commit/a589f8b894e78cce01eb25656856cfea8785fbbf))
 477 |   - Detailed examples for Boolean search operators (AND, OR, NOT)
 478 |   - Advanced search patterns including phrase matching and field-specific queries
 479 |   - User-friendly documentation for complex search scenarios
 480 | 
 481 | - **Cross-Project File Management** - Intelligent move operations with project boundary detection
 482 |   ([`db5ef7d`](https://github.com/basicmachines-co/basic-memory/commit/db5ef7d35cc0894309c7a57b5741c9dd978526d4))
 483 |   - Automatic detection of cross-project move attempts with helpful guidance
 484 |   - Clear error messages when attempting unsupported cross-project operations
 485 | 
 486 | ### Bug Fixes
 487 | 
 488 | - **#184**: Preserve permalinks when editing notes without frontmatter permalinks
 489 |   ([`c2f4b63`](https://github.com/basicmachines-co/basic-memory/commit/c2f4b632cf04921b1a3c2f0d43831b80c519cb31))
 490 |   - Fix permalink preservation during note editing operations
 491 |   - Ensure consistent permalink handling across different note formats
 492 |   - Maintain note identity and searchability during incremental edits
 493 | 
 494 | - **#183**: Implement project-specific sync status checks for MCP tools
 495 |   ([`12b5152`](https://github.com/basicmachines-co/basic-memory/commit/12b51522bc953fca117fc5bc01fcb29c6ca7e13c))
 496 |   - Fix sync status reporting to correctly reflect current project state
 497 |   - Resolve inconsistencies where sync status showed global instead of project-specific information
 498 |   - Improve project isolation for sync operations and status reporting
 499 | 
 500 | - **#180**: Handle Boolean search syntax with hyphenated terms
 501 |   ([`546e3cd`](https://github.com/basicmachines-co/basic-memory/commit/546e3cd8db98b74f746749d41887f8a213cd0b11))
 502 |   - Fix search parsing issues with hyphenated terms in Boolean queries
 503 |   - Improve search query tokenization for complex term structures
 504 |   - Enhanced search reliability for technical documentation and multi-word concepts
 505 | 
 506 | - **#174**: Respect BASIC_MEMORY_HOME environment variable in Docker containers
 507 |   ([`9f1db23`](https://github.com/basicmachines-co/basic-memory/commit/9f1db23c78d4648e2c242ad1ee27eed85e3f3b5d))
 508 |   - Fix Docker container configuration to properly honor custom home directory settings
 509 |   - Improve containerized deployment flexibility with environment variable support
 510 |   - Ensure consistent behavior between local and containerized installations
 511 | 
 512 | - **#168**: Scope entity queries by project_id in upsert_entity method
 513 |   ([`2a3adc1`](https://github.com/basicmachines-co/basic-memory/commit/2a3adc109a3e4d7ccd65cae4abf63d9bb2338326))
 514 |   - Fix entity isolation issues in multi-project setups
 515 |   - Prevent cross-project entity conflicts during database operations
 516 |   - Strengthen project boundary enforcement at the database level
 517 | 
 518 | - **#166**: Handle None from_entity in Context API RelationSummary
 519 |   ([`8a065c3`](https://github.com/basicmachines-co/basic-memory/commit/8a065c32f4e41613207d29aafc952a56e3a52241))
 520 |   - Fix null pointer exceptions in relation processing
 521 |   - Improve error handling for incomplete relation data
 522 |   - Enhanced stability for knowledge graph traversal operations
 523 | 
 524 | - **#164**: Remove log level configuration from mcp_server.run()
 525 |   ([`224e4bf`](https://github.com/basicmachines-co/basic-memory/commit/224e4bf9e4438c44a82ffc21bd1a282fe9087690))
 526 |   - Simplify MCP server startup by removing redundant log level settings
 527 |   - Fix potential logging configuration conflicts
 528 |   - Streamline server initialization process
 529 | 
 530 | - **#162**: Ensure permalinks are generated for entities with null permalinks during move operations
 531 |   ([`f506507`](https://github.com/basicmachines-co/basic-memory/commit/f50650763dbd4322c132e4bdc959ce4bf074374b))
 532 |   - Fix move operations for entities without existing permalinks
 533 |   - Automatic permalink generation during file move operations
 534 |   - Maintain database consistency during file reorganization
 535 | 
 536 | ### Technical Improvements
 537 | 
 538 | - **Comprehensive Test Coverage** - Extensive test suites for new features and edge cases
 539 |   - Enhanced test coverage for project-specific sync status functionality
 540 |   - Additional test scenarios for search syntax validation and edge cases
 541 |   - Integration tests for Docker CI workflow and container publishing
 542 |   - Comprehensive move operations testing with project boundary validation
 543 | 
 544 | - **Docker CI/CD Pipeline** - Production-ready automated container publishing
 545 |   ([`74847cc`](https://github.com/basicmachines-co/basic-memory/commit/74847cc3807b0c6ed511e0d83e0d560e9f07ec44))
 546 |   - Automated Docker image building and publishing on release
 547 |   - Multi-architecture container support for AMD64 and ARM64 platforms
 548 |   - Integrated security scanning and vulnerability assessments
 549 |   - Streamlined deployment pipeline for production environments
 550 | 
 551 | - **Release Process Improvements** - Enhanced automation and quality gates
 552 |   ([`a52ce1c`](https://github.com/basicmachines-co/basic-memory/commit/a52ce1c8605ec2cd450d1f909154172cbc30faa2))
 553 |   - Homebrew formula updates limited to stable releases only
 554 |   - Improved release automation with better quality control
 555 |   - Enhanced CI/CD pipeline reliability and error handling
 556 | 
 557 | - **Code Quality Enhancements** - Improved error handling and validation
 558 |   - Better null safety in entity and relation processing
 559 |   - Enhanced project isolation validation throughout the codebase
 560 |   - Improved error messages and user guidance for edge cases
 561 |   - Strengthened database consistency guarantees across operations
 562 | 
 563 | ### Infrastructure
 564 | 
 565 | - **GitHub Container Registry Integration** - Modern container infrastructure
 566 |   - Migration from Docker Hub to GitHub Container Registry (ghcr.io)
 567 |   - Improved security with integrated vulnerability scanning
 568 |   - Better integration with GitHub-based development workflow
 569 |   - Enhanced container versioning and artifact management
 570 | 
 571 | - **Enhanced CI/CD Workflows** - Robust automated testing and deployment
 572 |   - Automated Docker image publishing on releases
 573 |   - Comprehensive test coverage validation before deployment
 574 |   - Multi-platform container building and publishing
 575 |   - Integration with GitHub's security and monitoring tools
 576 | 
 577 | ### Migration Guide
 578 | 
 579 | This release includes several behind-the-scenes improvements and fixes. All changes are backward compatible:
 580 | 
 581 | - **Docker Users**: Container images now served from `ghcr.io/basicmachines-co/basic-memory` instead of Docker Hub
 582 | - **Search Users**: Enhanced search syntax handling - existing queries continue to work unchanged
 583 | - **Multi-Project Users**: Improved project isolation - all existing projects remain fully functional
 584 | - **All Users**: Enhanced stability and error handling - no breaking changes to existing workflows
 585 | 
 586 | ### Installation
 587 | 
 588 | ```bash
 589 | # Latest stable release
 590 | uv tool install basic-memory
 591 | 
 592 | # Update existing installation  
 593 | uv tool upgrade basic-memory
 594 | 
 595 | # Docker (new registry)
 596 | docker pull ghcr.io/basicmachines-co/basic-memory:latest
 597 | ```
 598 | 
 599 | ## v0.13.7 (2025-06-19)
 600 | 
 601 | ### Bug Fixes
 602 | 
 603 | - **Homebrew Integration** - Automatic Homebrew formula updates
 604 | - **Documentation** - Add git sign-off reminder to development guide
 605 | 
 606 | ## v0.13.6 (2025-06-18)
 607 | 
 608 | ### Bug Fixes
 609 | 
 610 | - **Custom Entity Types** - Support for custom entity types in write_note
 611 |   ([`7789864`](https://github.com/basicmachines-co/basic-memory/commit/77898644933589c2da9bdd60571d54137a5309ed))
 612 |   - Fixed `entity_type` parameter for `write_note` MCP tool to respect value passed in
 613 |   - Frontmatter `type` field automatically respected when no explicit parameter provided
 614 |   - Maintains backward compatibility with default "note" type
 615 | 
 616 | - **#139**: Fix "UNIQUE constraint failed: entity.permalink" database error
 617 |   ([`c6215fd`](https://github.com/basicmachines-co/basic-memory/commit/c6215fd819f9564ead91cf3a950f855241446096))
 618 |   - Implement SQLAlchemy UPSERT strategy to handle permalink conflicts gracefully
 619 |   - Eliminates crashes when creating notes with existing titles in same folders
 620 |   - Seamlessly updates existing entities instead of failing with constraint errors
 621 | 
 622 | - **Database Migration Performance** - Eliminate redundant migration initialization
 623 |   ([`84d2aaf`](https://github.com/basicmachines-co/basic-memory/commit/84d2aaf6414dd083af4b0df73f6c8139b63468f6))
 624 |   - Fix duplicate migration calls that slowed system startup
 625 |   - Improve performance with multiple projects (tested with 28+ projects)
 626 |   - Add migration deduplication safeguards with comprehensive test coverage
 627 | 
 628 | - **User Experience** - Correct spelling error in continue_conversation prompt
 629 |   ([`b4c26a6`](https://github.com/basicmachines-co/basic-memory/commit/b4c26a613379e6f2ba655efe3d7d8d40c27999e5))
 630 |   - Fix "Chose a folder" → "Choose a folder" in MCP prompt instructions
 631 |   - Improve grammar and clarity in user-facing prompt text
 632 | 
 633 | ### Documentation
 634 | 
 635 | - **Website Updates** - Add new website and community links to README
 636 |   ([`3fdce68`](https://github.com/basicmachines-co/basic-memory/commit/3fdce683d7ad8b6f4855d7138d5ff2136d4c07bc))
 637 | 
 638 | - **Project Documentation** - Update README.md and CLAUDE.md with latest project information
 639 |   ([`782cb2d`](https://github.com/basicmachines-co/basic-memory/commit/782cb2df28803482d209135a054e67cc32d7363e))
 640 | 
 641 | ### Technical Improvements
 642 | 
 643 | - **Comprehensive Test Coverage** - Add extensive test suites for new features
 644 |   - Custom entity type validation with 8 new test scenarios
 645 |   - UPSERT behavior testing with edge case coverage
 646 |   - Migration deduplication testing with 6 test scenarios
 647 |   - Database constraint handling validation
 648 | 
 649 | - **Code Quality** - Enhanced error handling and validation
 650 |   - Improved SQLAlchemy patterns with modern UPSERT operations
 651 |   - Better conflict resolution strategies for entity management
 652 |   - Strengthened database consistency guarantees
 653 | 
 654 | ### Performance
 655 | 
 656 | - **Database Operations** - Faster startup and improved scalability
 657 |   - Reduced migration overhead for multi-project setups
 658 |   - Optimized conflict resolution for entity creation
 659 |   - Enhanced performance with growing knowledge bases
 660 | 
 661 | ### Migration Guide
 662 | 
 663 | This release includes automatic database improvements. No manual migration required:
 664 | 
 665 | - Existing notes and entity types continue working unchanged
 666 | - New `entity_type` parameter is optional and backward compatible
 667 | - Database performance improvements apply automatically
 668 | - All existing MCP tool behavior preserved
 669 | 
 670 | ### Installation
 671 | 
 672 | ```bash
 673 | # Latest stable release
 674 | uv tool install basic-memory
 675 | 
 676 | # Update existing installation
 677 | uv tool upgrade basic-memory
 678 | ```
 679 | 
 680 | ## v0.13.5 (2025-06-11)
 681 | 
 682 | ### Bug Fixes
 683 | 
 684 | - **MCP Tools**: Renamed `create_project` tool to `create_memory_project` for namespace isolation
 685 | - **Namespace**: Continued namespace isolation effort to prevent conflicts with other MCP servers
 686 | 
 687 | ### Changes
 688 | 
 689 | - Tool functionality remains identical - only the name changed from `create_project` to `create_memory_project`
 690 | - All integration tests updated to use the new tool name
 691 | - Completes namespace isolation for project management tools alongside `list_memory_projects`
 692 | 
 693 | ## v0.13.4 (2025-06-11)
 694 | 
 695 | ### Bug Fixes
 696 | 
 697 | - **MCP Tools**: Renamed `list_projects` tool to `list_memory_projects` to avoid naming conflicts with other MCP servers
 698 | - **Namespace**: Improved tool naming specificity for better MCP server integration and isolation
 699 | 
 700 | ### Changes
 701 | 
 702 | - Tool functionality remains identical - only the name changed from `list_projects` to `list_memory_projects`
 703 | - All integration tests updated to use the new tool name
 704 | - Better namespace isolation for Basic Memory MCP tools
 705 | 
 706 | ## v0.13.3 (2025-06-11)
 707 | 
 708 | ### Bug Fixes
 709 | 
 710 | - **Projects**: Fixed case-insensitive project switching where switching succeeded but subsequent operations failed due to session state inconsistency
 711 | - **Config**: Enhanced config manager with case-insensitive project lookup using permalink-based matching
 712 | - **MCP Tools**: Updated project management tools to store canonical project names from database instead of user input
 713 | - **API**: Improved project service to handle both name and permalink lookups consistently
 714 | 
 715 | ### Technical Improvements
 716 | 
 717 | - Added comprehensive case-insensitive project switching test coverage with 5 new integration test scenarios
 718 | - Fixed permalink generation inconsistencies where different case inputs could generate different permalinks
 719 | - Enhanced project URL construction to use permalinks consistently across all API calls
 720 | - Improved error handling and session state management for project operations
 721 | 
 722 | ### Changes
 723 | 
 724 | - Project switching now preserves canonical project names from database in session state
 725 | - All project operations use permalink-based lookups for case-insensitive matching
 726 | - Enhanced test coverage ensures reliable case-insensitive project operations
 727 | 
 728 | ## v0.13.2 (2025-06-11)
 729 | 
 730 | ### Features
 731 | 
 732 | - **Release Management**: Added automated release management system with version control in `__init__.py`
 733 | - **Automation**: Implemented justfile targets for `release` and `beta` commands with comprehensive quality gates
 734 | - **CI/CD**: Enhanced release process with automatic version updates, git tagging, and GitHub release creation
 735 | 
 736 | ### Development Experience
 737 | 
 738 | - Added `.claude/commands/release/` directory with automation documentation
 739 | - Implemented release validation including lint, type-check, and test execution
 740 | - Streamlined release workflow from manual process to single-command automation
 741 | 
 742 | ### Technical Improvements
 743 | 
 744 | - Updated package version management to use actual version numbers instead of dynamic versioning
 745 | - Added release process documentation and command references
 746 | - Enhanced justfile with comprehensive release automation targets
 747 | 
 748 | ## v0.13.1 (2025-06-11)
 749 | 
 750 | ### Bug Fixes
 751 | 
 752 | - **CLI**: Fixed  `basic-memory project` project management commands that were  not working in v0.13.0 (#129)
 753 | - **Projects**: Resolved case sensitivity issues when switching between projects that caused "Project not found" errors (#127)
 754 | - **API**: Standardized CLI project command endpoints and improved error handling
 755 | - **Core**: Implemented consistent project name handling using permalinks to avoid case-related conflicts
 756 | 
 757 | ### Changes
 758 | 
 759 | - Renamed `basic-memory project sync` command to `basic-memory project sync-config` for clarity
 760 | - Improved project switching reliability across different case variations
 761 | - Removed redundant server status messages from CLI error outputs
 762 | 
 763 | ## v0.13.0 (2025-06-11)
 764 | 
 765 | ### Overview
 766 | 
 767 | Basic Memory v0.13.0 is a **major release** that transforms Basic Memory into a true multi-project knowledge management system. This release introduces fluid project switching, advanced note editing capabilities, robust file management, and production-ready OAuth authentication - all while maintaining full backward compatibility.
 768 | 
 769 | **What's New for Users:**
 770 | - 🎯 **Switch between projects instantly** during conversations with Claude
 771 | - ✏️ **Edit notes incrementally** without rewriting entire documents
 772 | - 📁 **Move and organize notes** with full database consistency
 773 | - 📖 **View notes as formatted artifacts** for better readability in Claude Desktop
 774 | - 🔍 **Search frontmatter tags** to discover content more easily
 775 | - 🔐 **OAuth authentication** for secure remote access
 776 | - ⚡ **Development builds** automatically published for beta testing
 777 | 
 778 | **Key v0.13.0 Accomplishments:**
 779 | - ✅ **Complete Project Management System** - Project switching and project-specific operations
 780 | - ✅ **Advanced Note Editing** - Incremental editing with append, prepend, find/replace, and section operations  
 781 | - ✅ **View Notes as Artifacts in Claude Desktop/Web** - Use the view_note tool to view a note as an artifact
 782 | - ✅ **File Management System** - Full move operations with database consistency and rollback protection
 783 | - ✅ **Enhanced Search Capabilities** - Frontmatter tags now searchable, improved content discoverability
 784 | - ✅ **Unified Database Architecture** - Single app-level database for better performance and project management
 785 | 
 786 | ### Major Features
 787 | 
 788 | #### 1. Multiple Project Management 
 789 | 
 790 | **Switch between projects instantly during conversations:**
 791 | 
 792 | ```
 793 | 💬 "What projects do I have?"
 794 | 🤖 Available projects:
 795 |    • main (current, default)
 796 |    • work-notes
 797 |    • personal-journal
 798 |    • code-snippets
 799 | 
 800 | 💬 "Switch to work-notes"
 801 | 🤖 ✓ Switched to work-notes project
 802 |    
 803 |    Project Summary:
 804 |    • 47 entities
 805 |    • 125 observations  
 806 |    • 23 relations
 807 | 
 808 | 💬 "What did I work on yesterday?"
 809 | 🤖 [Shows recent activity from work-notes project]
 810 | ```
 811 | 
 812 | **Key Capabilities:**
 813 | - **Instant Project Switching**: Change project context mid-conversation without restart
 814 | - **Project-Specific Operations**: Operations work within the currently active project context
 815 | - **Project Discovery**: List all available projects with status indicators
 816 | - **Session Context**: Maintains active project throughout conversation
 817 | - **Backward Compatibility**: Existing single-project setups continue to work seamlessly
 818 | 
 819 | #### 2. Advanced Note Editing 
 820 | 
 821 | **Edit notes incrementally without rewriting entire documents:**
 822 | 
 823 | ```python
 824 | # Append new sections to existing notes
 825 | edit_note("project-planning", "append", "\n## New Requirements\n- Feature X\n- Feature Y")
 826 | 
 827 | # Prepend timestamps to meeting notes
 828 | edit_note("meeting-notes", "prepend", "## 2025-05-27 Update\n- Progress update...")
 829 | 
 830 | # Replace specific sections under headers
 831 | edit_note("api-spec", "replace_section", "New implementation details", section="## Implementation")
 832 | 
 833 | # Find and replace with validation
 834 | edit_note("config", "find_replace", "v0.13.0", find_text="v0.12.0", expected_replacements=2)
 835 | ```
 836 | 
 837 | **Key Capabilities:**
 838 | - **Append Operations**: Add content to end of notes (most common use case)
 839 | - **Prepend Operations**: Add content to beginning of notes
 840 | - **Section Replacement**: Replace content under specific markdown headers
 841 | - **Find & Replace**: Simple text replacements with occurrence counting
 842 | - **Smart Error Handling**: Helpful guidance when operations fail
 843 | - **Project Context**: Works within the active project with session awareness
 844 | 
 845 | #### 3. Smart File Management
 846 | 
 847 | **Move and organize notes:**
 848 | 
 849 | ```python
 850 | # Simple moves with automatic folder creation
 851 | move_note("my-note", "work/projects/my-note.md")
 852 | 
 853 | # Organize within the active project
 854 | move_note("shared-doc", "archive/old-docs/shared-doc.md")
 855 | 
 856 | # Rename operations
 857 | move_note("old-name", "same-folder/new-name.md")
 858 | ```
 859 | 
 860 | **Key Capabilities:**
 861 | - **Database Consistency**: Updates file paths, permalinks, and checksums automatically
 862 | - **Search Reindexing**: Maintains search functionality after moves
 863 | - **Folder Creation**: Automatically creates destination directories
 864 | - **Project Isolation**: Operates within the currently active project
 865 | - **Link Preservation**: Maintains internal links and references
 866 | 
 867 | #### 4. Enhanced Search & Discovery 
 868 | 
 869 | **Find content more easily with improved search capabilities:**
 870 | 
 871 | - **Frontmatter Tag Search**: Tags from YAML frontmatter are now indexed and searchable
 872 | - **Improved Content Discovery**: Search across titles, content, tags, and metadata
 873 | - **Project-Scoped Search**: Search within the currently active project
 874 | - **Better Search Quality**: Enhanced FTS5 indexing with tag content inclusion
 875 | 
 876 | **Example:**
 877 | ```yaml
 878 | ---
 879 | title: Coffee Brewing Methods
 880 | tags: [coffee, brewing, equipment]
 881 | ---
 882 | ```
 883 | Now searchable by: "coffee", "brewing", "equipment", or "Coffee Brewing Methods"
 884 | 
 885 | #### 5. Unified Database Architecture 
 886 | 
 887 | **Single app-level database for better performance and project management:**
 888 | 
 889 | - **Migration from Per-Project DBs**: Moved from multiple SQLite files to single app database
 890 | - **Project Isolation**: Proper data separation with project_id foreign keys
 891 | - **Better Performance**: Optimized queries and reduced file I/O
 892 | 
 893 | ### Complete MCP Tool Suite
 894 | 
 895 | #### New Project Management Tools
 896 | - **`list_projects()`** - Discover and list all available projects with status
 897 | - **`switch_project(project_name)`** - Change active project context during conversations
 898 | - **`get_current_project()`** - Show currently active project with statistics
 899 | - **`set_default_project(project_name)`** - Update default project configuration
 900 | - **`sync_status()`** - Check file synchronization status and background operations
 901 | 
 902 | #### New Note Operations Tools
 903 | - **`edit_note()`** - Incremental note editing (append, prepend, find/replace, section replace)
 904 | - **`move_note()`** - Move notes with database consistency and search reindexing
 905 | - **`view_note()`** - Display notes as formatted artifacts for better readability in Claude Desktop
 906 | 
 907 | #### Enhanced Existing Tools
 908 | All existing tools now support:
 909 | - **Session context awareness** (operates within the currently active project)
 910 | - **Enhanced error messages** with project context metadata
 911 | - **Improved response formatting** with project information footers
 912 | - **Project isolation** ensures operations stay within the correct project boundaries
 913 | 
 914 | 
 915 | ### User Experience Improvements
 916 | 
 917 | #### Installation Options
 918 | 
 919 | **Multiple ways to install and test Basic Memory:**
 920 | 
 921 | ```bash
 922 | # Stable release
 923 | uv tool install basic-memory
 924 | 
 925 | # Beta/pre-releases
 926 | uv tool install basic-memory --pre
 927 | ```
 928 | 
 929 | 
 930 | #### Bug Fixes & Quality Improvements
 931 | 
 932 | **Major issues resolved in v0.13.0:**
 933 | 
 934 | - **#118**: Fixed YAML tag formatting to follow standard specification
 935 | - **#110**: Fixed `--project` flag consistency across all CLI commands
 936 | - **#107**: Fixed write_note update failures with existing notes
 937 | - **#93**: Fixed custom permalink handling in frontmatter
 938 | - **#52**: Enhanced search capabilities with frontmatter tag indexing
 939 | - **FTS5 Search**: Fixed special character handling in search queries
 940 | - **Error Handling**: Improved error messages and validation across all tools
 941 | 
 942 | ### Breaking Changes & Migration
 943 | 
 944 | #### For Existing Users
 945 | 
 946 | **Automatic Migration**: First run will automatically migrate existing data to the new unified database structure. No manual action required.
 947 | 
 948 | **What Changes:**
 949 | - Database location: Moved to `~/.basic-memory/memory.db` (unified across projects)
 950 | - Configuration: Projects defined in `~/.basic-memory/config.json` are synced with database
 951 | 
 952 | **What Stays the Same:**
 953 | - All existing notes and data remain unchanged
 954 | - Default project behavior maintained for single-project users
 955 | - All existing MCP tools continue to work without modification
 956 | 
 957 | ### Documentation & Resources
 958 | 
 959 | #### New Documentation
 960 | - [Project Management Guide](docs/Project%20Management.md) - Multi-project workflows
 961 | - [Note Editing Guide](docs/Note%20Editing.md) - Advanced editing techniques
 962 | 
 963 | #### Updated Documentation
 964 | - [README.md](README.md) - Installation options and beta build instructions
 965 | - [CONTRIBUTING.md](CONTRIBUTING.md) - Release process and version management
 966 | - [CLAUDE.md](CLAUDE.md) - Development workflow and CI/CD documentation
 967 | - [Claude.ai Integration](docs/Claude.ai%20Integration.md) - Updated MCP tool examples
 968 | 
 969 | #### Quick Start Examples
 970 | 
 971 | **Project Switching:**
 972 | ```
 973 | 💬 "Switch to my work project and show recent activity"
 974 | 🤖 [Calls switch_project("work") then recent_activity()]
 975 | ```
 976 | 
 977 | **Note Editing:**
 978 | ```
 979 | 💬 "Add a section about deployment to my API docs"
 980 | 🤖 [Calls edit_note("api-docs", "append", "## Deployment\n...")]
 981 | ```
 982 | 
 983 | **File Organization:**
 984 | ```
 985 | 💬 "Move my old meeting notes to the archive folder"
 986 | 🤖 [Calls move_note("meeting-notes", "archive/old-meetings.md")]
 987 | ```
 988 | 
 989 | 
 990 | 
 991 | ## v0.12.3 (2025-04-17)
 992 | 
 993 | ### Bug Fixes
 994 | 
 995 | - Add extra logic for permalink generation with mixed Latin unicode and Chinese characters
 996 |   ([`73ea91f`](https://github.com/basicmachines-co/basic-memory/commit/73ea91fe0d1f7ab89b99a1b691d59fe608b7fcbb))
 997 | 
 998 | Signed-off-by: phernandez <[email protected]>
 999 | 
1000 | - Modify recent_activity args to be strings instead of enums
1001 |   ([`3c1cc34`](https://github.com/basicmachines-co/basic-memory/commit/3c1cc346df519e703fae6412d43a92c7232c6226))
1002 | 
1003 | Signed-off-by: phernandez <[email protected]>
1004 | 
1005 | 
1006 | ## v0.12.2 (2025-04-08)
1007 | 
1008 | ### Bug Fixes
1009 | 
1010 | - Utf8 for all file reads/write/open instead of default platform encoding
1011 |   ([#91](https://github.com/basicmachines-co/basic-memory/pull/91),
1012 |   [`2934176`](https://github.com/basicmachines-co/basic-memory/commit/29341763318408ea8f1e954a41046c4185f836c6))
1013 | 
1014 | Signed-off-by: phernandez <[email protected]>
1015 | 
1016 | 
1017 | ## v0.12.1 (2025-04-07)
1018 | 
1019 | ### Bug Fixes
1020 | 
1021 | - Run migrations and sync when starting mcp
1022 |   ([#88](https://github.com/basicmachines-co/basic-memory/pull/88),
1023 |   [`78a3412`](https://github.com/basicmachines-co/basic-memory/commit/78a3412bcff83b46e78e26f8b9fce42ed9e05991))
1024 | 
1025 | 
1026 | ## v0.12.0 (2025-04-06)
1027 | 
1028 | ### Bug Fixes
1029 | 
1030 | - [bug] `#` character accumulation in markdown frontmatter tags prop
1031 |   ([#79](https://github.com/basicmachines-co/basic-memory/pull/79),
1032 |   [`6c19c9e`](https://github.com/basicmachines-co/basic-memory/commit/6c19c9edf5131054ba201a109b37f15c83ef150c))
1033 | 
1034 | - [bug] Cursor has errors calling search tool
1035 |   ([#78](https://github.com/basicmachines-co/basic-memory/pull/78),
1036 |   [`9d581ce`](https://github.com/basicmachines-co/basic-memory/commit/9d581cee133f9dde4a0a85118868227390c84161))
1037 | 
1038 | - [bug] Some notes never exit "modified" status
1039 |   ([#77](https://github.com/basicmachines-co/basic-memory/pull/77),
1040 |   [`7930ddb`](https://github.com/basicmachines-co/basic-memory/commit/7930ddb2919057be30ceac8c4c19da6aaa1d3e92))
1041 | 
1042 | - [bug] write_note Tool Fails to Update Existing Files in Some Situations.
1043 |   ([#80](https://github.com/basicmachines-co/basic-memory/pull/80),
1044 |   [`9bff1f7`](https://github.com/basicmachines-co/basic-memory/commit/9bff1f732e71bc60f88b5c2ce3db5a2aa60b8e28))
1045 | 
1046 | - Set default mcp log level to ERROR
1047 |   ([#81](https://github.com/basicmachines-co/basic-memory/pull/81),
1048 |   [`248214c`](https://github.com/basicmachines-co/basic-memory/commit/248214cb114a269ca60ff6398e382f9e2495ad8e))
1049 | 
1050 | - Write_note preserves frontmatter fields in content
1051 |   ([#84](https://github.com/basicmachines-co/basic-memory/pull/84),
1052 |   [`3f4d9e4`](https://github.com/basicmachines-co/basic-memory/commit/3f4d9e4d872ebc0ed719c61b24d803c14a9db5e6))
1053 | 
1054 | ### Documentation
1055 | 
1056 | - Add VS Code instructions to README
1057 |   ([#76](https://github.com/basicmachines-co/basic-memory/pull/76),
1058 |   [`43cbb7b`](https://github.com/basicmachines-co/basic-memory/commit/43cbb7b38cc0482ac0a41b6759320e3588186e43))
1059 | 
1060 | - Updated basicmachines.co links to be https
1061 |   ([#69](https://github.com/basicmachines-co/basic-memory/pull/69),
1062 |   [`40ea28b`](https://github.com/basicmachines-co/basic-memory/commit/40ea28b0bfc60012924a69ecb76511daa4c7d133))
1063 | 
1064 | ### Features
1065 | 
1066 | - Add watch to mcp process ([#83](https://github.com/basicmachines-co/basic-memory/pull/83),
1067 |   [`00c8633`](https://github.com/basicmachines-co/basic-memory/commit/00c8633cfcee75ff640ff8fe81dafeb956281a94))
1068 | 
1069 | - Permalink enhancements ([#82](https://github.com/basicmachines-co/basic-memory/pull/82),
1070 |   [`617e60b`](https://github.com/basicmachines-co/basic-memory/commit/617e60bda4a590678a5f551f10a73e7b47e3b13e))
1071 | 
1072 | - Avoiding "useless permalink values" for files without metadata - Enable permalinks to be updated
1073 |   on move via config setting
1074 | 
1075 | 
1076 | ## v0.11.0 (2025-03-29)
1077 | 
1078 | ### Bug Fixes
1079 | 
1080 | - Just delete db for reset db instead of using migrations.
1081 |   ([#65](https://github.com/basicmachines-co/basic-memory/pull/65),
1082 |   [`0743ade`](https://github.com/basicmachines-co/basic-memory/commit/0743ade5fc07440f95ecfd816ba7e4cfd74bca12))
1083 | 
1084 | Signed-off-by: phernandez <[email protected]>
1085 | 
1086 | - Make logs for each process - mcp, sync, cli
1087 |   ([#64](https://github.com/basicmachines-co/basic-memory/pull/64),
1088 |   [`f1c9570`](https://github.com/basicmachines-co/basic-memory/commit/f1c95709cbffb1b88292547b0b8f29fcca22d186))
1089 | 
1090 | Signed-off-by: phernandez <[email protected]>
1091 | 
1092 | ### Documentation
1093 | 
1094 | - Update broken "Multiple Projects" link in README.md
1095 |   ([#55](https://github.com/basicmachines-co/basic-memory/pull/55),
1096 |   [`3c68b7d`](https://github.com/basicmachines-co/basic-memory/commit/3c68b7d5dd689322205c67637dca7d188111ee6b))
1097 | 
1098 | ### Features
1099 | 
1100 | - Add bm command alias for basic-memory
1101 |   ([#67](https://github.com/basicmachines-co/basic-memory/pull/67),
1102 |   [`069c0a2`](https://github.com/basicmachines-co/basic-memory/commit/069c0a21c630784e1bf47d2b7de5d6d1f6fadd7a))
1103 | 
1104 | Signed-off-by: phernandez <[email protected]>
1105 | 
1106 | - Rename search tool to search_notes
1107 |   ([#66](https://github.com/basicmachines-co/basic-memory/pull/66),
1108 |   [`b278276`](https://github.com/basicmachines-co/basic-memory/commit/b27827671dc010be3e261b8b221aca6b7f836661))
1109 | 
1110 | Signed-off-by: phernandez <[email protected]>
1111 | 
1112 | 
1113 | ## v0.10.1 (2025-03-25)
1114 | 
1115 | ### Bug Fixes
1116 | 
1117 | - Make set_default_project also activate project for current session to fix #37
1118 |   ([`cbe72be`](https://github.com/basicmachines-co/basic-memory/commit/cbe72be10a646c0b03931bb39aff9285feae47f9))
1119 | 
1120 | This change makes the 'basic-memory project default <name>' command both: 1. Set the default project
1121 |   for future invocations (persistent change) 2. Activate the project for the current session
1122 |   (immediate change)
1123 | 
1124 | Added tests to verify this behavior, which resolves issue #37 where the project name and path
1125 |   weren't changing properly when the default project was changed.
1126 | 
1127 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1128 | 
1129 | Co-Authored-By: Claude <[email protected]>
1130 | 
1131 | - Make set_default_project also activate project for current session to fix #37
1132 |   ([`46c4fd2`](https://github.com/basicmachines-co/basic-memory/commit/46c4fd21645b109af59eb2a0201c7bd849b34a49))
1133 | 
1134 | This change makes the 'basic-memory project default <name>' command both: 1. Set the default project
1135 |   for future invocations (persistent change) 2. Activate the project for the current session
1136 |   (immediate change)
1137 | 
1138 | Added tests to verify this behavior, which resolves issue #37 where the project name and path
1139 |   weren't changing properly when the default project was changed.
1140 | 
1141 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1142 | 
1143 | Co-Authored-By: Claude <[email protected]>
1144 | 
1145 | Signed-off-by: phernandez <[email protected]>
1146 | 
1147 | - Move ai_assistant_guide.md into package resources to fix #39
1148 |   ([`390ff9d`](https://github.com/basicmachines-co/basic-memory/commit/390ff9d31ccee85bef732e8140b5eeecd7ee176f))
1149 | 
1150 | This change relocates the AI assistant guide from the static directory into the package resources
1151 |   directory, ensuring it gets properly included in the distribution package and is accessible when
1152 |   installed via pip/uv.
1153 | 
1154 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1155 | 
1156 | Co-Authored-By: Claude <[email protected]>
1157 | 
1158 | - Move ai_assistant_guide.md into package resources to fix #39
1159 |   ([`cc2cae7`](https://github.com/basicmachines-co/basic-memory/commit/cc2cae72c14b380f78ffeb67c2261e4dbee45faf))
1160 | 
1161 | This change relocates the AI assistant guide from the static directory into the package resources
1162 |   directory, ensuring it gets properly included in the distribution package and is accessible when
1163 |   installed via pip/uv.
1164 | 
1165 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1166 | 
1167 | Co-Authored-By: Claude <[email protected]>
1168 | 
1169 | Signed-off-by: phernandez <[email protected]>
1170 | 
1171 | - Preserve custom frontmatter fields when updating notes
1172 |   ([`78f234b`](https://github.com/basicmachines-co/basic-memory/commit/78f234b1806b578a0a833e8ee4184015b7369a97))
1173 | 
1174 | Fixes #36 by modifying entity_service.update_entity() to read existing frontmatter from files before
1175 |   updating them. Custom metadata fields such as Status, Priority, and Version are now preserved when
1176 |   notes are updated through the write_note MCP tool.
1177 | 
1178 | Added test case that verifies this behavior by creating a note with custom frontmatter and then
1179 |   updating it.
1180 | 
1181 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1182 | 
1183 | Co-Authored-By: Claude <[email protected]>
1184 | 
1185 | - Preserve custom frontmatter fields when updating notes
1186 |   ([`e716946`](https://github.com/basicmachines-co/basic-memory/commit/e716946b4408d017eca4be720956d5a210b4e6b1))
1187 | 
1188 | Fixes #36 by modifying entity_service.update_entity() to read existing frontmatter from files before
1189 |   updating them. Custom metadata fields such as Status, Priority, and Version are now preserved when
1190 |   notes are updated through the write_note MCP tool.
1191 | 
1192 | Added test case that verifies this behavior by creating a note with custom frontmatter and then
1193 |   updating it.
1194 | 
1195 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1196 | 
1197 | Co-Authored-By: Claude <[email protected]>
1198 | 
1199 | Signed-off-by: phernandez <[email protected]>
1200 | 
1201 | ### Chores
1202 | 
1203 | - Remove duplicate code in entity_service.py from bad merge
1204 |   ([`681af5d`](https://github.com/basicmachines-co/basic-memory/commit/681af5d4505dadc40b4086630f739d76bac9201d))
1205 | 
1206 | Signed-off-by: phernandez <[email protected]>
1207 | 
1208 | ### Documentation
1209 | 
1210 | - Add help docs to mcp cli tools
1211 |   ([`731b502`](https://github.com/basicmachines-co/basic-memory/commit/731b502d36cec253d114403d73b48fab3c47786e))
1212 | 
1213 | Signed-off-by: phernandez <[email protected]>
1214 | 
1215 | - Add mcp badge, update cli reference, llms-install.md
1216 |   ([`b26afa9`](https://github.com/basicmachines-co/basic-memory/commit/b26afa927f98021246cd8b64858e57333595ea90))
1217 | 
1218 | Signed-off-by: phernandez <[email protected]>
1219 | 
1220 | - Update CLAUDE.md ([#33](https://github.com/basicmachines-co/basic-memory/pull/33),
1221 |   [`dfaf0fe`](https://github.com/basicmachines-co/basic-memory/commit/dfaf0fea9cf5b97d169d51a6276ec70162c21a7e))
1222 | 
1223 | fix spelling in CLAUDE.md: enviroment -> environment Signed-off-by: Ikko Eltociear Ashimine
1224 |   <[email protected]>
1225 | 
1226 | ### Refactoring
1227 | 
1228 | - Move project stats into projct subcommand
1229 |   ([`2a881b1`](https://github.com/basicmachines-co/basic-memory/commit/2a881b1425c73947f037fbe7ac5539c015b62526))
1230 | 
1231 | Signed-off-by: phernandez <[email protected]>
1232 | 
1233 | 
1234 | ## v0.10.0 (2025-03-15)
1235 | 
1236 | ### Bug Fixes
1237 | 
1238 | - Ai_resource_guide.md path
1239 |   ([`da97353`](https://github.com/basicmachines-co/basic-memory/commit/da97353cfc3acc1ceb0eca22ac6af326f77dc199))
1240 | 
1241 | Signed-off-by: phernandez <[email protected]>
1242 | 
1243 | - Ai_resource_guide.md path
1244 |   ([`c4732a4`](https://github.com/basicmachines-co/basic-memory/commit/c4732a47b37dd2e404139fb283b65556c81ce7c9))
1245 | 
1246 | - Ai_resource_guide.md path
1247 |   ([`2e9d673`](https://github.com/basicmachines-co/basic-memory/commit/2e9d673e54ad6a63a971db64f01fc2f4e59c2e69))
1248 | 
1249 | Signed-off-by: phernandez <[email protected]>
1250 | 
1251 | - Don't sync *.tmp files on watch ([#31](https://github.com/basicmachines-co/basic-memory/pull/31),
1252 |   [`6b110b2`](https://github.com/basicmachines-co/basic-memory/commit/6b110b28dd8ba705ebfc0bcb41faf2cb993da2c3))
1253 | 
1254 | Fixes #30
1255 | 
1256 | Signed-off-by: phernandez <[email protected]>
1257 | 
1258 | - Drop search_index table on db reindex
1259 |   ([`31cca6f`](https://github.com/basicmachines-co/basic-memory/commit/31cca6f913849a0ab8fc944803533e3072e9ef88))
1260 | 
1261 | Signed-off-by: phernandez <[email protected]>
1262 | 
1263 | - Improve utf-8 support for file reading/writing
1264 |   ([#32](https://github.com/basicmachines-co/basic-memory/pull/32),
1265 |   [`eb5e4ec`](https://github.com/basicmachines-co/basic-memory/commit/eb5e4ec6bd4d2fe757087be030d867f4ca1d38ba))
1266 | 
1267 | fixes #29
1268 | 
1269 | Signed-off-by: phernandez <[email protected]>
1270 | 
1271 | ### Chores
1272 | 
1273 | - Remove logfire
1274 |   ([`9bb8a02`](https://github.com/basicmachines-co/basic-memory/commit/9bb8a020c3425a02cb3a88f6f02adcd281bccee2))
1275 | 
1276 | Signed-off-by: phernandez <[email protected]>
1277 | 
1278 | ### Documentation
1279 | 
1280 | - Add glama badge. Fix typos in README.md
1281 |   ([#28](https://github.com/basicmachines-co/basic-memory/pull/28),
1282 |   [`9af913d`](https://github.com/basicmachines-co/basic-memory/commit/9af913da4fba7bb4908caa3f15f2db2aa03777ec))
1283 | 
1284 | Signed-off-by: phernandez <[email protected]>
1285 | 
1286 | - Update CLAUDE.md with GitHub integration capabilities
1287 |   ([#25](https://github.com/basicmachines-co/basic-memory/pull/25),
1288 |   [`fea2f40`](https://github.com/basicmachines-co/basic-memory/commit/fea2f40d1b54d0c533e6d7ee7ce1aa7b83ad9a47))
1289 | 
1290 | This PR updates the CLAUDE.md file to document the GitHub integration capabilities that enable
1291 |   Claude to participate directly in the development workflow.
1292 | 
1293 | ### Features
1294 | 
1295 | - Add Smithery integration for easier installation
1296 |   ([#24](https://github.com/basicmachines-co/basic-memory/pull/24),
1297 |   [`eb1e7b6`](https://github.com/basicmachines-co/basic-memory/commit/eb1e7b6088b0b3dead9c104ee44174b2baebf417))
1298 | 
1299 | This PR adds support for deploying Basic Memory on the Smithery platform.
1300 | 
1301 | Signed-off-by: bm-claudeai <[email protected]>
1302 | 
1303 | 
1304 | ## v0.9.0 (2025-03-07)
1305 | 
1306 | ### Chores
1307 | 
1308 | - Pre beta prep ([#20](https://github.com/basicmachines-co/basic-memory/pull/20),
1309 |   [`6a4bd54`](https://github.com/basicmachines-co/basic-memory/commit/6a4bd546466a45107007b5000276b6c9bb62ef27))
1310 | 
1311 | fix: drop search_index table on db reindex
1312 | 
1313 | fix: ai_resource_guide.md path
1314 | 
1315 | chore: remove logfire
1316 | 
1317 | Signed-off-by: phernandez <[email protected]>
1318 | 
1319 | ### Documentation
1320 | 
1321 | - Update README.md and CLAUDE.md
1322 |   ([`182ec78`](https://github.com/basicmachines-co/basic-memory/commit/182ec7835567fc246798d9b4ad121b2f85bc6ade))
1323 | 
1324 | ### Features
1325 | 
1326 | - Add project_info tool ([#19](https://github.com/basicmachines-co/basic-memory/pull/19),
1327 |   [`d2bd75a`](https://github.com/basicmachines-co/basic-memory/commit/d2bd75a949cc4323cb376ac2f6cb39f47c78c428))
1328 | 
1329 | Signed-off-by: phernandez <[email protected]>
1330 | 
1331 | - Beta work ([#17](https://github.com/basicmachines-co/basic-memory/pull/17),
1332 |   [`e6496df`](https://github.com/basicmachines-co/basic-memory/commit/e6496df595f3cafde6cc836384ee8c60886057a5))
1333 | 
1334 | feat: Add multiple projects support
1335 | 
1336 | feat: enhanced read_note for when initial result is not found
1337 | 
1338 | fix: merge frontmatter when updating note
1339 | 
1340 | fix: handle directory removed on sync watch
1341 | 
1342 | - Implement boolean search ([#18](https://github.com/basicmachines-co/basic-memory/pull/18),
1343 |   [`90d5754`](https://github.com/basicmachines-co/basic-memory/commit/90d5754180beaf4acd4be38f2438712555640b49))
1344 | 
1345 | 
1346 | ## v0.8.0 (2025-02-28)
1347 | 
1348 | ### Chores
1349 | 
1350 | - Formatting
1351 |   ([`93cc637`](https://github.com/basicmachines-co/basic-memory/commit/93cc6379ebb9ecc6a1652feeeecbf47fc992d478))
1352 | 
1353 | - Refactor logging setup
1354 |   ([`f4b703e`](https://github.com/basicmachines-co/basic-memory/commit/f4b703e57f0ddf686de6840ff346b8be2be499ad))
1355 | 
1356 | ### Features
1357 | 
1358 | - Add enhanced prompts and resources
1359 |   ([#15](https://github.com/basicmachines-co/basic-memory/pull/15),
1360 |   [`093dab5`](https://github.com/basicmachines-co/basic-memory/commit/093dab5f03cf7b090a9f4003c55507859bf355b0))
1361 | 
1362 | ## Summary - Add comprehensive documentation to all MCP prompt modules - Enhance search prompt with
1363 |   detailed contextual output formatting - Implement consistent logging and docstring patterns across
1364 |   prompt utilities - Fix type checking in prompt modules
1365 | 
1366 | ## Prompts Added/Enhanced - `search.py`: New formatted output with relevance scores, excerpts, and
1367 |   next steps - `recent_activity.py`: Enhanced with better metadata handling and documentation -
1368 |   `continue_conversation.py`: Improved context management
1369 | 
1370 | ## Resources Added/Enhanced - `ai_assistant_guide`: Resource with description to give to LLM to
1371 |   understand how to use the tools
1372 | 
1373 | ## Technical improvements - Added detailed docstrings to all prompt modules explaining their purpose
1374 |   and usage - Enhanced the search prompt with rich contextual output that helps LLMs understand
1375 |   results - Created a consistent pattern for formatting output across prompts - Improved error
1376 |   handling in metadata extraction - Standardized import organization and naming conventions - Fixed
1377 |   various type checking issues across the codebase
1378 | 
1379 | This PR is part of our ongoing effort to improve the MCP's interaction quality with LLMs, making the
1380 |   system more helpful and intuitive for AI assistants to navigate knowledge bases.
1381 | 
1382 | 🤖 Generated with [Claude Code](https://claude.ai/code)
1383 | 
1384 | ---------
1385 | 
1386 | Co-authored-by: phernandez <[email protected]>
1387 | 
1388 | - Add new `canvas` tool to create json canvas files in obsidian.
1389 |   ([#14](https://github.com/basicmachines-co/basic-memory/pull/14),
1390 |   [`0d7b0b3`](https://github.com/basicmachines-co/basic-memory/commit/0d7b0b3d7ede7555450ddc9728951d4b1edbbb80))
1391 | 
1392 | Add new `canvas` tool to create json canvas files in obsidian.
1393 | 
1394 | ---------
1395 | 
1396 | Co-authored-by: phernandez <[email protected]>
1397 | 
1398 | - Incremental sync on watch ([#13](https://github.com/basicmachines-co/basic-memory/pull/13),
1399 |   [`37a01b8`](https://github.com/basicmachines-co/basic-memory/commit/37a01b806d0758029d34a862e76d44c7e5d538a5))
1400 | 
1401 | - incremental sync on watch - sync non-markdown files in knowledge base - experimental
1402 |   `read_resource` tool for reading non-markdown files in raw form (pdf, image)
1403 | 
1404 | 
1405 | ## v0.7.0 (2025-02-19)
1406 | 
1407 | ### Bug Fixes
1408 | 
1409 | - Add logfire instrumentation to tools
1410 |   ([`3e8e3e8`](https://github.com/basicmachines-co/basic-memory/commit/3e8e3e8961eae2e82839746e28963191b0aef0a0))
1411 | 
1412 | - Add logfire spans to cli
1413 |   ([`00d23a5`](https://github.com/basicmachines-co/basic-memory/commit/00d23a5ee15ddac4ea45e702dcd02ab9f0509276))
1414 | 
1415 | - Add logfire spans to cli
1416 |   ([`812136c`](https://github.com/basicmachines-co/basic-memory/commit/812136c8c22ad191d14ff32dcad91aae076d4120))
1417 | 
1418 | - Search query pagination params
1419 |   ([`bc9ca07`](https://github.com/basicmachines-co/basic-memory/commit/bc9ca0744ffe4296d7d597b4dd9b7c73c2d63f3f))
1420 | 
1421 | ### Chores
1422 | 
1423 | - Fix tests
1424 |   ([`57984aa`](https://github.com/basicmachines-co/basic-memory/commit/57984aa912625dcde7877afb96d874c164af2896))
1425 | 
1426 | - Remove unused tests
1427 |   ([`2c8ed17`](https://github.com/basicmachines-co/basic-memory/commit/2c8ed1737d6769fe1ef5c96f8a2bd75b9899316a))
1428 | 
1429 | ### Features
1430 | 
1431 | - Add cli commands for mcp tools
1432 |   ([`f5a7541`](https://github.com/basicmachines-co/basic-memory/commit/f5a7541da17e97403b7a702720a05710f68b223a))
1433 | 
1434 | - Add pagination to build_context and recent_activity
1435 |   ([`0123544`](https://github.com/basicmachines-co/basic-memory/commit/0123544556513af943d399d70b849b142b834b15))
1436 | 
1437 | - Add pagination to read_notes
1438 |   ([`02f8e86`](https://github.com/basicmachines-co/basic-memory/commit/02f8e866923d5793d2620076c709c920d99f2c4f))
1439 | 
1440 | 
1441 | ## v0.6.0 (2025-02-18)
1442 | 
1443 | ### Chores
1444 | 
1445 | - Re-add sync status console on watch
1446 |   ([`66b57e6`](https://github.com/basicmachines-co/basic-memory/commit/66b57e682f2e9c432bffd4af293b0d1db1d3469b))
1447 | 
1448 | ### Features
1449 | 
1450 | - Configure logfire telemetry ([#12](https://github.com/basicmachines-co/basic-memory/pull/12),
1451 |   [`6da1438`](https://github.com/basicmachines-co/basic-memory/commit/6da143898bd45cdab8db95b5f2b75810fbb741ba))
1452 | 
1453 | Co-authored-by: phernandez <[email protected]>
1454 | 
1455 | 
1456 | ## v0.5.0 (2025-02-18)
1457 | 
1458 | ### Features
1459 | 
1460 | - Return semantic info in markdown after write_note
1461 |   ([#11](https://github.com/basicmachines-co/basic-memory/pull/11),
1462 |   [`0689e7a`](https://github.com/basicmachines-co/basic-memory/commit/0689e7a730497827bf4e16156ae402ddc5949077))
1463 | 
1464 | Co-authored-by: phernandez <[email protected]>
1465 | 
1466 | 
1467 | ## v0.4.3 (2025-02-18)
1468 | 
1469 | ### Bug Fixes
1470 | 
1471 | - Re do enhanced read note format ([#10](https://github.com/basicmachines-co/basic-memory/pull/10),
1472 |   [`39bd5ca`](https://github.com/basicmachines-co/basic-memory/commit/39bd5ca08fd057220b95a8b5d82c5e73a1f5722b))
1473 | 
1474 | Co-authored-by: phernandez <[email protected]>
1475 | 
1476 | 
1477 | ## v0.4.2 (2025-02-17)
1478 | 
1479 | 
1480 | ## v0.4.1 (2025-02-17)
1481 | 
1482 | ### Bug Fixes
1483 | 
1484 | - Fix alemic config
1485 |   ([`71de8ac`](https://github.com/basicmachines-co/basic-memory/commit/71de8acfd0902fc60f27deb3638236a3875787ab))
1486 | 
1487 | - More alembic fixes
1488 |   ([`30cd74e`](https://github.com/basicmachines-co/basic-memory/commit/30cd74ec95c04eaa92b41b9815431f5fbdb46ef8))
1489 | 
1490 | 
1491 | ## v0.4.0 (2025-02-16)
1492 | 
1493 | ### Features
1494 | 
1495 | - Import chatgpt conversation data ([#9](https://github.com/basicmachines-co/basic-memory/pull/9),
1496 |   [`56f47d6`](https://github.com/basicmachines-co/basic-memory/commit/56f47d6812982437f207629e6ac9a82e0e56514e))
1497 | 
1498 | Co-authored-by: phernandez <[email protected]>
1499 | 
1500 | - Import claude.ai data ([#8](https://github.com/basicmachines-co/basic-memory/pull/8),
1501 |   [`a15c346`](https://github.com/basicmachines-co/basic-memory/commit/a15c346d5ebd44344b76bad877bb4d1073fcbc3b))
1502 | 
1503 | Import Claude.ai conversation and project data to basic-memory Markdown format.
1504 | 
1505 | ---------
1506 | 
1507 | Co-authored-by: phernandez <[email protected]>
1508 | 
1509 | 
1510 | ## v0.3.0 (2025-02-15)
1511 | 
1512 | ### Bug Fixes
1513 | 
1514 | - Refactor db schema migrate handling
1515 |   ([`ca632be`](https://github.com/basicmachines-co/basic-memory/commit/ca632beb6fed5881f4d8ba5ce698bb5bc681e6aa))
1516 | 
1517 | 
1518 | ## v0.2.21 (2025-02-15)
1519 | 
1520 | ### Bug Fixes
1521 | 
1522 | - Fix osx installer github action
1523 |   ([`65ebe5d`](https://github.com/basicmachines-co/basic-memory/commit/65ebe5d19491e5ff047c459d799498ad5dd9cd1a))
1524 | 
1525 | - Handle memory:// url format in read_note tool
1526 |   ([`e080373`](https://github.com/basicmachines-co/basic-memory/commit/e0803734e69eeb6c6d7432eea323c7a264cb8347))
1527 | 
1528 | - Remove create schema from init_db
1529 |   ([`674dd1f`](https://github.com/basicmachines-co/basic-memory/commit/674dd1fd47be9e60ac17508476c62254991df288))
1530 | 
1531 | ### Features
1532 | 
1533 | - Set version in var, output version at startup
1534 |   ([`a91da13`](https://github.com/basicmachines-co/basic-memory/commit/a91da1396710e62587df1284da00137d156fc05e))
1535 | 
1536 | 
1537 | ## v0.2.20 (2025-02-14)
1538 | 
1539 | ### Bug Fixes
1540 | 
1541 | - Fix installer artifact
1542 |   ([`8de84c0`](https://github.com/basicmachines-co/basic-memory/commit/8de84c0221a1ee32780aa84dac4d3ea60895e05c))
1543 | 
1544 | 
1545 | ## v0.2.19 (2025-02-14)
1546 | 
1547 | ### Bug Fixes
1548 | 
1549 | - Get app artifact for installer
1550 |   ([`fe8c3d8`](https://github.com/basicmachines-co/basic-memory/commit/fe8c3d87b003166252290a87cbe958301cccf797))
1551 | 
1552 | 
1553 | ## v0.2.18 (2025-02-14)
1554 | 
1555 | ### Bug Fixes
1556 | 
1557 | - Don't zip app on release
1558 |   ([`8664c57`](https://github.com/basicmachines-co/basic-memory/commit/8664c57bb331d7f3f7e0239acb5386c7a3c6144e))
1559 | 
1560 | 
1561 | ## v0.2.17 (2025-02-14)
1562 | 
1563 | ### Bug Fixes
1564 | 
1565 | - Fix app zip in installer release
1566 |   ([`8fa197e`](https://github.com/basicmachines-co/basic-memory/commit/8fa197e2ec8a1b6caaf6dbb39c3c6626bba23e2e))
1567 | 
1568 | 
1569 | ## v0.2.16 (2025-02-14)
1570 | 
1571 | ### Bug Fixes
1572 | 
1573 | - Debug inspect build on ci
1574 |   ([`1d6054d`](https://github.com/basicmachines-co/basic-memory/commit/1d6054d30a477a4e6a5d6ac885632e50c01945d3))
1575 | 
1576 | 
1577 | ## v0.2.15 (2025-02-14)
1578 | 
1579 | ### Bug Fixes
1580 | 
1581 | - Debug installer ci
1582 |   ([`dab9573`](https://github.com/basicmachines-co/basic-memory/commit/dab957314aec9ed0e12abca2265552494ae733a2))
1583 | 
1584 | 
1585 | ## v0.2.14 (2025-02-14)
1586 | 
1587 | 
1588 | ## v0.2.13 (2025-02-14)
1589 | 
1590 | ### Bug Fixes
1591 | 
1592 | - Refactor release.yml installer
1593 |   ([`a152657`](https://github.com/basicmachines-co/basic-memory/commit/a15265783e47c22d8c7931396281d023b3694e27))
1594 | 
1595 | - Try using symlinks in installer build
1596 |   ([`8dd923d`](https://github.com/basicmachines-co/basic-memory/commit/8dd923d5bc0587276f92b5f1db022ad9c8687e45))
1597 | 
1598 | 
1599 | ## v0.2.12 (2025-02-14)
1600 | 
1601 | ### Bug Fixes
1602 | 
1603 | - Fix cx_freeze options for installer
1604 |   ([`854cf83`](https://github.com/basicmachines-co/basic-memory/commit/854cf8302e2f83578030db05e29b8bdc4348795a))
1605 | 
1606 | 
1607 | ## v0.2.11 (2025-02-14)
1608 | 
1609 | ### Bug Fixes
1610 | 
1611 | - Ci installer app fix #37
1612 |   ([`2e215fe`](https://github.com/basicmachines-co/basic-memory/commit/2e215fe83ca421b921186c7f1989dc2cb5cca278))
1613 | 
1614 | 
1615 | ## v0.2.10 (2025-02-14)
1616 | 
1617 | ### Bug Fixes
1618 | 
1619 | - Fix build on github ci for app installer
1620 |   ([`29a2594`](https://github.com/basicmachines-co/basic-memory/commit/29a259421a0ccb10cfa68e3707eaa506ad5e55c0))
1621 | 
1622 | 
1623 | ## v0.2.9 (2025-02-14)
1624 | 
1625 | 
1626 | ## v0.2.8 (2025-02-14)
1627 | 
1628 | ### Bug Fixes
1629 | 
1630 | - Fix installer on ci, maybe
1631 |   ([`edbc04b`](https://github.com/basicmachines-co/basic-memory/commit/edbc04be601d234bb1f5eb3ba24d6ad55244b031))
1632 | 
1633 | 
1634 | ## v0.2.7 (2025-02-14)
1635 | 
1636 | ### Bug Fixes
1637 | 
1638 | - Try to fix installer ci
1639 |   ([`230738e`](https://github.com/basicmachines-co/basic-memory/commit/230738ee9c110c0509e0a09cb0e101a92cfcb729))
1640 | 
1641 | 
1642 | ## v0.2.6 (2025-02-14)
1643 | 
1644 | ### Bug Fixes
1645 | 
1646 | - Bump project patch version
1647 |   ([`01d4672`](https://github.com/basicmachines-co/basic-memory/commit/01d46727b40c24b017ea9db4b741daef565ac73e))
1648 | 
1649 | - Fix installer setup.py change ci to use make
1650 |   ([`3e78fcc`](https://github.com/basicmachines-co/basic-memory/commit/3e78fcc2c208d83467fe7199be17174d7ffcad1a))
1651 | 
1652 | 
1653 | ## v0.2.5 (2025-02-14)
1654 | 
1655 | ### Bug Fixes
1656 | 
1657 | - Refix vitual env in installer build
1658 |   ([`052f491`](https://github.com/basicmachines-co/basic-memory/commit/052f491fff629e8ead629c9259f8cb46c608d584))
1659 | 
1660 | 
1661 | ## v0.2.4 (2025-02-14)
1662 | 
1663 | 
1664 | ## v0.2.3 (2025-02-14)
1665 | 
1666 | ### Bug Fixes
1667 | 
1668 | - Workaround unsigned app
1669 |   ([`41d4d81`](https://github.com/basicmachines-co/basic-memory/commit/41d4d81c1ad1dc2923ba0e903a57454a0c8b6b5c))
1670 | 
1671 | 
1672 | ## v0.2.2 (2025-02-14)
1673 | 
1674 | ### Bug Fixes
1675 | 
1676 | - Fix path to intaller app artifact
1677 |   ([`53d220d`](https://github.com/basicmachines-co/basic-memory/commit/53d220df585561f9edd0d49a9e88f1d4055059cf))
1678 | 
1679 | 
1680 | ## v0.2.1 (2025-02-14)
1681 | 
1682 | ### Bug Fixes
1683 | 
1684 | - Activate vitualenv in installer build
1685 |   ([`d4c8293`](https://github.com/basicmachines-co/basic-memory/commit/d4c8293687a52eaf3337fe02e2f7b80e4cc9a1bb))
1686 | 
1687 | - Trigger installer build on release
1688 |   ([`f11bf78`](https://github.com/basicmachines-co/basic-memory/commit/f11bf78f3f600d0e1b01996cf8e1f9c39e3dd218))
1689 | 
1690 | 
1691 | ## v0.2.0 (2025-02-14)
1692 | 
1693 | ### Features
1694 | 
1695 | - Build installer via github action ([#7](https://github.com/basicmachines-co/basic-memory/pull/7),
1696 |   [`7c381a5`](https://github.com/basicmachines-co/basic-memory/commit/7c381a59c962053c78da096172e484f28ab47e96))
1697 | 
1698 | * feat(ci): build installer via github action
1699 | 
1700 | * enforce conventional commits in PR titles
1701 | 
1702 | * feat: add icon to installer
1703 | 
1704 | ---------
1705 | 
1706 | Co-authored-by: phernandez <[email protected]>
1707 | 
1708 | 
1709 | ## v0.1.2 (2025-02-14)
1710 | 
1711 | ### Bug Fixes
1712 | 
1713 | - Fix installer for mac
1714 |   ([`dde9ff2`](https://github.com/basicmachines-co/basic-memory/commit/dde9ff228b72852b5abc58faa1b5e7c6f8d2c477))
1715 | 
1716 | - Remove unused FileChange dataclass
1717 |   ([`eb3360c`](https://github.com/basicmachines-co/basic-memory/commit/eb3360cc221f892b12a17137ae740819d48248e8))
1718 | 
1719 | - Update uv installer url
1720 |   ([`2f9178b`](https://github.com/basicmachines-co/basic-memory/commit/2f9178b0507b3b69207d5c80799f2d2f573c9a04))
1721 | 
1722 | 
1723 | ## v0.1.1 (2025-02-07)
1724 | 
1725 | 
1726 | ## v0.1.0 (2025-02-07)
1727 | 
1728 | ### Bug Fixes
1729 | 
1730 | - Create virtual env in test workflow
1731 |   ([`8092e6d`](https://github.com/basicmachines-co/basic-memory/commit/8092e6d38d536bfb6f93c3d21ea9baf1814f9b0a))
1732 | 
1733 | - Fix permalink uniqueness violations on create/update/sync
1734 |   ([`135bec1`](https://github.com/basicmachines-co/basic-memory/commit/135bec181d9b3d53725c8af3a0959ebc1aa6afda))
1735 | 
1736 | - Fix recent activity bug
1737 |   ([`3d2c0c8`](https://github.com/basicmachines-co/basic-memory/commit/3d2c0c8c32fcfdaf70a1f96a59d8f168f38a1aa9))
1738 | 
1739 | - Install fastapi deps after removing basic-foundation
1740 |   ([`51a741e`](https://github.com/basicmachines-co/basic-memory/commit/51a741e7593a1ea0e5eb24e14c70ff61670f9663))
1741 | 
1742 | - Recreate search index on db reset
1743 |   ([`1fee436`](https://github.com/basicmachines-co/basic-memory/commit/1fee436bf903a35c9ebb7d87607fc9cc9f5ff6e7))
1744 | 
1745 | - Remove basic-foundation from deps
1746 |   ([`b8d0c71`](https://github.com/basicmachines-co/basic-memory/commit/b8d0c7160f29c97cdafe398a7e6a5240473e0c89))
1747 | 
1748 | - Run tests via uv
1749 |   ([`4eec820`](https://github.com/basicmachines-co/basic-memory/commit/4eec820a32bc059a405e2f4dac4c73b245ca4722))
1750 | 
1751 | ### Chores
1752 | 
1753 | - Rename import tool
1754 |   ([`af6b7dc`](https://github.com/basicmachines-co/basic-memory/commit/af6b7dc40a55eaa2aa78d6ea831e613851081d52))
1755 | 
1756 | ### Features
1757 | 
1758 | - Add memory-json importer, tweak observation content
1759 |   ([`3484e26`](https://github.com/basicmachines-co/basic-memory/commit/3484e26631187f165ee6eb85517e94717b7cf2cf))
1760 | 
1761 | 
1762 | ## v0.0.1 (2025-02-04)
1763 | 
1764 | ### Bug Fixes
1765 | 
1766 | - Fix versioning for 0.0.1 release
1767 |   ([`ba1e494`](https://github.com/basicmachines-co/basic-memory/commit/ba1e494ed1afbb7af3f97c643126bced425da7e0))
1768 | 
1769 | 
1770 | ## v0.0.0 (2025-02-04)
1771 | 
1772 | ### Chores
1773 | 
1774 | - Remove basic-foundation src ref in pyproject.toml
1775 |   ([`29fce8b`](https://github.com/basicmachines-co/basic-memory/commit/29fce8b0b922d54d7799bf2534107ee6cfb961b8))
1776 | 
```