basic-memory 0.13.7.dev1__tar.gz → 0.13.8.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of basic-memory might be problematic. Click here for more details.

Files changed (320) hide show
  1. basic_memory-0.13.8.dev1/.dockerignore +60 -0
  2. basic_memory-0.13.8.dev1/.github/workflows/docker.yml +61 -0
  3. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CHANGELOG.md +59 -0
  4. basic_memory-0.13.8.dev1/Dockerfile +32 -0
  5. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/PKG-INFO +26 -1
  6. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/README.md +25 -0
  7. basic_memory-0.13.8.dev1/docker-compose.yml +83 -0
  8. basic_memory-0.13.8.dev1/docs/Docker.md +334 -0
  9. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/__init__.py +1 -1
  10. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/db.py +8 -1
  11. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/mcp.py +2 -0
  12. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/project.py +3 -7
  13. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/db.py +5 -4
  14. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/project_session.py +16 -1
  15. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/sync_status.py +0 -4
  16. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/server.py +0 -1
  17. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/entity_repository.py +42 -39
  18. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/entity_service.py +2 -2
  19. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/initialization.py +11 -5
  20. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/project_service.py +18 -0
  21. basic_memory-0.13.8.dev1/test-int/cli/test_reset_integration.py +158 -0
  22. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/conftest.py +1 -0
  23. basic_memory-0.13.8.dev1/test-int/mcp/test_project_state_sync_integration.py +173 -0
  24. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_write_note.py +16 -22
  25. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_entity_repository_upsert.py +29 -29
  26. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/test_db_migration_deduplication.py +19 -19
  27. basic_memory-0.13.7.dev1/.env.oauth.example +0 -55
  28. basic_memory-0.13.7.dev1/AUTH.md +0 -42
  29. basic_memory-0.13.7.dev1/Dockerfile +0 -16
  30. basic_memory-0.13.7.dev1/basic-memory.md +0 -1419
  31. basic_memory-0.13.7.dev1/docs/CLI Reference.md +0 -414
  32. basic_memory-0.13.7.dev1/docs/Canvas.md +0 -107
  33. basic_memory-0.13.7.dev1/docs/Claude.ai Integration.md +0 -335
  34. basic_memory-0.13.7.dev1/docs/Getting Started with Basic Memory.md +0 -355
  35. basic_memory-0.13.7.dev1/docs/Knowledge Format.md +0 -207
  36. basic_memory-0.13.7.dev1/docs/OAuth Authentication Guide.md +0 -259
  37. basic_memory-0.13.7.dev1/docs/Obsidian Integration.md +0 -146
  38. basic_memory-0.13.7.dev1/docs/Supabase OAuth Setup.md +0 -311
  39. basic_memory-0.13.7.dev1/docs/Technical Information.md +0 -243
  40. basic_memory-0.13.7.dev1/docs/User Guide.md +0 -657
  41. basic_memory-0.13.7.dev1/docs/Welcome to Basic memory.md +0 -68
  42. basic_memory-0.13.7.dev1/docs/attachments/Canvas.png +0 -0
  43. basic_memory-0.13.7.dev1/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
  44. basic_memory-0.13.7.dev1/docs/attachments/Prompt.png +0 -0
  45. basic_memory-0.13.7.dev1/docs/attachments/disk-ai-logo-400x400.png +0 -0
  46. basic_memory-0.13.7.dev1/docs/attachments/disk-ai-logo.png +0 -0
  47. basic_memory-0.13.7.dev1/docs/attachments/prompt 1.png +0 -0
  48. basic_memory-0.13.7.dev1/docs/attachments/prompt2.png +0 -0
  49. basic_memory-0.13.7.dev1/docs/attachments/prompt3.png +0 -0
  50. basic_memory-0.13.7.dev1/docs/attachments/prompt4.png +0 -0
  51. basic_memory-0.13.7.dev1/docs/publish.js +0 -5
  52. basic_memory-0.13.7.dev1/examples/Coffee Notes/Brewing Equipment.md +0 -83
  53. basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Bean Origins.md +0 -78
  54. basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Brewing Methods.md +0 -70
  55. basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Flavor Map.md +0 -89
  56. basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Knowledge Base.md +0 -73
  57. basic_memory-0.13.7.dev1/examples/Coffee Notes/Flavor Extraction.md +0 -79
  58. basic_memory-0.13.7.dev1/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -161
  59. basic_memory-0.13.7.dev1/examples/Coffee Notes/Tasting Notes.md +0 -84
  60. basic_memory-0.13.7.dev1/examples/testing/Test Note Creation - Basic Functionality.md +0 -69
  61. basic_memory-0.13.7.dev1/scripts/install.sh +0 -36
  62. basic_memory-0.13.7.dev1/static/ai_assistant_guide.md +0 -480
  63. basic_memory-0.13.7.dev1/static/json_canvas_spec_1_0.md +0 -115
  64. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/check-health.md +0 -0
  65. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/commands.md +0 -0
  66. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/lint-fix.md +0 -0
  67. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/beta.md +0 -0
  68. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/changelog.md +0 -0
  69. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/release-check.md +0 -0
  70. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/release.md +0 -0
  71. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/test-coverage.md +0 -0
  72. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/test-live.md +0 -0
  73. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  74. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  75. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  76. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  77. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/dependabot.yml +0 -0
  78. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/claude.yml +0 -0
  79. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/dev-release.yml +0 -0
  80. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/pr-title.yml +0 -0
  81. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/release.yml +0 -0
  82. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/test.yml +0 -0
  83. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.gitignore +0 -0
  84. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.mcp.json +0 -0
  85. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.python-version +0 -0
  86. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CITATION.cff +0 -0
  87. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CLA.md +0 -0
  88. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CLAUDE.md +0 -0
  89. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CODE_OF_CONDUCT.md +0 -0
  90. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CONTRIBUTING.md +0 -0
  91. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/LICENSE +0 -0
  92. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/SECURITY.md +0 -0
  93. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/docs/AI Assistant Guide.md +0 -0
  94. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/justfile +0 -0
  95. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/llms-install.md +0 -0
  96. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/memory.json +0 -0
  97. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/pyproject.toml +0 -0
  98. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/smithery.yaml +0 -0
  99. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/alembic.ini +0 -0
  100. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/env.py +0 -0
  101. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/migrations.py +0 -0
  102. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/script.py.mako +0 -0
  103. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  104. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  105. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
  106. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
  107. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  108. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  109. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/__init__.py +0 -0
  110. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/app.py +0 -0
  111. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/__init__.py +0 -0
  112. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/directory_router.py +0 -0
  113. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/importer_router.py +0 -0
  114. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/knowledge_router.py +0 -0
  115. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/management_router.py +0 -0
  116. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/memory_router.py +0 -0
  117. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/project_router.py +0 -0
  118. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/prompt_router.py +0 -0
  119. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/resource_router.py +0 -0
  120. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/search_router.py +0 -0
  121. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/utils.py +0 -0
  122. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/template_loader.py +0 -0
  123. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/__init__.py +0 -0
  124. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/app.py +0 -0
  125. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/__init__.py +0 -0
  126. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/auth.py +0 -0
  127. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  128. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  129. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  130. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  131. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/status.py +0 -0
  132. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/sync.py +0 -0
  133. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/tool.py +0 -0
  134. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/main.py +0 -0
  135. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/config.py +0 -0
  136. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/deps.py +0 -0
  137. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/file_utils.py +0 -0
  138. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/__init__.py +0 -0
  139. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/base.py +0 -0
  140. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/chatgpt_importer.py +0 -0
  141. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
  142. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/claude_projects_importer.py +0 -0
  143. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/memory_json_importer.py +0 -0
  144. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/utils.py +0 -0
  145. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/__init__.py +0 -0
  146. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/entity_parser.py +0 -0
  147. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/markdown_processor.py +0 -0
  148. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/plugins.py +0 -0
  149. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/schemas.py +0 -0
  150. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/utils.py +0 -0
  151. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/__init__.py +0 -0
  152. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/async_client.py +0 -0
  153. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/auth_provider.py +0 -0
  154. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/external_auth_provider.py +0 -0
  155. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  156. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
  157. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
  158. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  159. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/search.py +0 -0
  160. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/utils.py +0 -0
  161. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
  162. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/resources/project_info.py +0 -0
  163. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
  164. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/__init__.py +0 -0
  165. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/build_context.py +0 -0
  166. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/canvas.py +0 -0
  167. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  168. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/edit_note.py +0 -0
  169. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/list_directory.py +0 -0
  170. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/move_note.py +0 -0
  171. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/project_management.py +0 -0
  172. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/read_content.py +0 -0
  173. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/read_note.py +0 -0
  174. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  175. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/search.py +0 -0
  176. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/sync_status.py +0 -0
  177. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/utils.py +0 -0
  178. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/view_note.py +0 -0
  179. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/write_note.py +0 -0
  180. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/__init__.py +0 -0
  181. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/base.py +0 -0
  182. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/knowledge.py +0 -0
  183. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/project.py +0 -0
  184. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/search.py +0 -0
  185. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/__init__.py +0 -0
  186. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/observation_repository.py +0 -0
  187. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/project_info_repository.py +0 -0
  188. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/project_repository.py +0 -0
  189. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/relation_repository.py +0 -0
  190. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/repository.py +0 -0
  191. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/search_repository.py +0 -0
  192. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/__init__.py +0 -0
  193. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/base.py +0 -0
  194. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/delete.py +0 -0
  195. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/directory.py +0 -0
  196. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/importer.py +0 -0
  197. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/memory.py +0 -0
  198. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/project_info.py +0 -0
  199. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/prompt.py +0 -0
  200. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/request.py +0 -0
  201. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/response.py +0 -0
  202. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/search.py +0 -0
  203. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/__init__.py +0 -0
  204. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/context_service.py +0 -0
  205. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/directory_service.py +0 -0
  206. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/exceptions.py +0 -0
  207. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/file_service.py +0 -0
  208. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/link_resolver.py +0 -0
  209. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/migration_service.py +0 -0
  210. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/search_service.py +0 -0
  211. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/service.py +0 -0
  212. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/sync_status_service.py +0 -0
  213. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/__init__.py +0 -0
  214. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/background_sync.py +0 -0
  215. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/sync_service.py +0 -0
  216. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/watch_service.py +0 -0
  217. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
  218. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/templates/prompts/search.hbs +0 -0
  219. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/utils.py +0 -0
  220. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_build_context_validation.py +0 -0
  221. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_delete_note_integration.py +0 -0
  222. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_edit_note_integration.py +0 -0
  223. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_list_directory_integration.py +0 -0
  224. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_move_note_integration.py +0 -0
  225. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_project_management_integration.py +0 -0
  226. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_read_content_integration.py +0 -0
  227. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_read_note_integration.py +0 -0
  228. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_search_integration.py +0 -0
  229. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_write_note_integration.py +0 -0
  230. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/Non-MarkdownFileSupport.pdf +0 -0
  231. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/Screenshot.png +0 -0
  232. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/__init__.py +0 -0
  233. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/conftest.py +0 -0
  234. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_continue_conversation_template.py +0 -0
  235. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_directory_router.py +0 -0
  236. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_importer_router.py +0 -0
  237. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_knowledge_router.py +0 -0
  238. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_management_router.py +0 -0
  239. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_memory_router.py +0 -0
  240. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_project_router.py +0 -0
  241. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_project_router_operations.py +0 -0
  242. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_prompt_router.py +0 -0
  243. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_resource_router.py +0 -0
  244. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_search_router.py +0 -0
  245. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_search_template.py +0 -0
  246. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_template_loader.py +0 -0
  247. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_template_loader_helpers.py +0 -0
  248. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/conftest.py +0 -0
  249. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_auth_commands.py +0 -0
  250. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_cli_tools.py +0 -0
  251. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_chatgpt.py +0 -0
  252. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_claude_conversations.py +0 -0
  253. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_claude_projects.py +0 -0
  254. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_memory_json.py +0 -0
  255. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_project_commands.py +0 -0
  256. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_project_info.py +0 -0
  257. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_status.py +0 -0
  258. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_sync.py +0 -0
  259. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_version.py +0 -0
  260. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/conftest.py +0 -0
  261. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/importers/test_importer_base.py +0 -0
  262. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/importers/test_importer_utils.py +0 -0
  263. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/__init__.py +0 -0
  264. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_entity_parser.py +0 -0
  265. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_markdown_plugins.py +0 -0
  266. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_markdown_processor.py +0 -0
  267. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_observation_edge_cases.py +0 -0
  268. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_parser_edge_cases.py +0 -0
  269. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_relation_edge_cases.py +0 -0
  270. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_task_detection.py +0 -0
  271. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/conftest.py +0 -0
  272. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_auth_provider.py +0 -0
  273. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_prompts.py +0 -0
  274. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_resource_project_info.py +0 -0
  275. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_resources.py +0 -0
  276. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_server.py +0 -0
  277. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_build_context.py +0 -0
  278. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_canvas.py +0 -0
  279. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_delete_note.py +0 -0
  280. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_edit_note.py +0 -0
  281. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_list_directory.py +0 -0
  282. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_move_note.py +0 -0
  283. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_read_note.py +0 -0
  284. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_recent_activity.py +0 -0
  285. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_resource.py +0 -0
  286. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_search.py +0 -0
  287. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_sync_status.py +0 -0
  288. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_utils.py +0 -0
  289. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_view_note.py +0 -0
  290. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_entity_repository.py +0 -0
  291. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_observation_repository.py +0 -0
  292. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_project_info_repository.py +0 -0
  293. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_project_repository.py +0 -0
  294. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_relation_repository.py +0 -0
  295. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_repository.py +0 -0
  296. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_search_repository.py +0 -0
  297. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_memory_url.py +0 -0
  298. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_memory_url_validation.py +0 -0
  299. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_schemas.py +0 -0
  300. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_search.py +0 -0
  301. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_context_service.py +0 -0
  302. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_directory_service.py +0 -0
  303. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_entity_service.py +0 -0
  304. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_file_service.py +0 -0
  305. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_initialization.py +0 -0
  306. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_link_resolver.py +0 -0
  307. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_project_service.py +0 -0
  308. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_project_service_operations.py +0 -0
  309. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_search_service.py +0 -0
  310. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_sync_status_service.py +0 -0
  311. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_sync_service.py +0 -0
  312. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_sync_wikilink_issue.py +0 -0
  313. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_tmp_files.py +0 -0
  314. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_watch_service.py +0 -0
  315. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_watch_service_edge_cases.py +0 -0
  316. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_file_utils.py +0 -0
  317. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_parse_tags.py +0 -0
  318. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_permalink_formatting.py +0 -0
  319. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_utf8_handling.py +0 -0
  320. {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/uv.lock +0 -0
@@ -0,0 +1,60 @@
1
+ # Git files
2
+ .git/
3
+ .gitignore
4
+ .gitattributes
5
+
6
+ # Development files
7
+ .vscode/
8
+ .idea/
9
+ *.swp
10
+ *.swo
11
+ *~
12
+
13
+ # Testing files
14
+ tests/
15
+ test-int/
16
+ .pytest_cache/
17
+ .coverage
18
+ htmlcov/
19
+
20
+ # Build artifacts
21
+ build/
22
+ dist/
23
+ *.egg-info/
24
+ __pycache__/
25
+ *.pyc
26
+ *.pyo
27
+ *.pyd
28
+ .Python
29
+
30
+ # Virtual environments (uv creates these during build)
31
+ .venv/
32
+ venv/
33
+ .env
34
+
35
+ # CI/CD files
36
+ .github/
37
+
38
+ # Documentation (keep README.md and pyproject.toml)
39
+ docs/
40
+ CHANGELOG.md
41
+ CLAUDE.md
42
+ CONTRIBUTING.md
43
+
44
+ # Example files not needed for runtime
45
+ examples/
46
+
47
+ # Local development files
48
+ .basic-memory/
49
+ *.db
50
+ *.sqlite3
51
+
52
+ # OS files
53
+ .DS_Store
54
+ Thumbs.db
55
+
56
+ # Temporary files
57
+ tmp/
58
+ temp/
59
+ *.tmp
60
+ *.log
@@ -0,0 +1,61 @@
1
+ name: Docker Image CI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*' # Trigger on version tags like v1.0.0, v0.13.0, etc.
7
+ workflow_dispatch: # Allow manual triggering for testing
8
+
9
+ env:
10
+ REGISTRY: ghcr.io
11
+ IMAGE_NAME: basicmachines-co/basic-memory
12
+
13
+ jobs:
14
+ docker:
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read
18
+ packages: write
19
+
20
+ steps:
21
+ - name: Checkout repository
22
+ uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - name: Set up Docker Buildx
27
+ uses: docker/setup-buildx-action@v3
28
+ with:
29
+ platforms: linux/amd64,linux/arm64
30
+
31
+ - name: Log in to GitHub Container Registry
32
+ uses: docker/login-action@v3
33
+ with:
34
+ registry: ${{ env.REGISTRY }}
35
+ username: ${{ github.actor }}
36
+ password: ${{ secrets.GITHUB_TOKEN }}
37
+
38
+ - name: Extract metadata
39
+ id: meta
40
+ uses: docker/metadata-action@v5
41
+ with:
42
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
43
+ tags: |
44
+ type=ref,event=branch
45
+ type=ref,event=pr
46
+ type=semver,pattern={{version}}
47
+ type=semver,pattern={{major}}.{{minor}}
48
+ type=raw,value=latest,enable={{is_default_branch}}
49
+
50
+ - name: Build and push Docker image
51
+ uses: docker/build-push-action@v5
52
+ with:
53
+ context: .
54
+ file: ./Dockerfile
55
+ platforms: linux/amd64,linux/arm64
56
+ push: true
57
+ tags: ${{ steps.meta.outputs.tags }}
58
+ labels: ${{ steps.meta.outputs.labels }}
59
+ cache-from: type=gha
60
+ cache-to: type=gha,mode=max
61
+
@@ -1,5 +1,64 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.13.8 (2025-06-20)
4
+
5
+ ### Features
6
+
7
+ - **Docker Container Support** - Complete Docker integration with volume mounting for Obsidian directories
8
+ ([`3269a2f`](https://github.com/basicmachines-co/basic-memory/commit/3269a2f33a7595f6d9e5207924062e2542f46759))
9
+ - Docker Compose configuration for easy deployment
10
+ - Volume mounting for persistent data and Obsidian integration
11
+ - Comprehensive Docker documentation and setup guides
12
+ - Streamlined container-based workflow
13
+
14
+ ### Bug Fixes
15
+
16
+ - **#151**: Fix reset command project configuration persistence issue
17
+ ([`af44941`](https://github.com/basicmachines-co/basic-memory/commit/af44941d5aa57b5ad7fcc6af4ed700f49bdb6d4d))
18
+ - Reset command now properly clears project configuration from `~/.basic-memory/config.json`
19
+ - Eliminates issue where projects would be recreated after database reset
20
+ - Ensures clean slate when resetting Basic Memory installation
21
+
22
+ - **#148**: Resolve project state inconsistency between MCP and CLI
23
+ ([`35e4f73`](https://github.com/basicmachines-co/basic-memory/commit/35e4f73ae8a65501da4d48258ed702f957184c92))
24
+ - Fix "Project not found" errors when switching default projects
25
+ - MCP session now automatically refreshes when project configuration changes
26
+ - Eliminates need to restart MCP server after project operations
27
+ - Ensures consistent project state across CLI and MCP interfaces
28
+
29
+ - **FastMCP Compatibility** - Resolve deprecation warnings for FastMCP integration
30
+ ([`7be001c`](https://github.com/basicmachines-co/basic-memory/commit/7be001ca6834b3344bb6160cbe537b36bcbaa579))
31
+ - Update FastMCP usage patterns to eliminate deprecation warnings
32
+ - Improve future compatibility with FastMCP library updates
33
+ - Clean up entity repository and service layer code
34
+
35
+ ### Technical Improvements
36
+
37
+ - **Comprehensive Integration Testing** - New test suites for critical user workflows
38
+ - Full integration tests for database reset functionality
39
+ - End-to-end project state synchronization testing
40
+ - Real MCP client-server communication validation
41
+ - Direct config file validation without complex mocking
42
+
43
+ - **Code Quality** - Enhanced error handling and validation
44
+ - Improved project state management across system components
45
+ - Better session refresh patterns for configuration changes
46
+ - Streamlined Docker setup with reduced image size
47
+
48
+ ### Documentation
49
+
50
+ - **Docker Integration Guide** - Complete documentation for container deployment
51
+ - Step-by-step Docker Compose setup instructions
52
+ - Volume mounting configuration for Obsidian workflows
53
+ - Container-based development environment setup
54
+
55
+ ## v0.13.7 (2025-06-19)
56
+
57
+ ### Bug Fixes
58
+
59
+ - **Homebrew Integration** - Automatic Homebrew formula updates
60
+ - **Documentation** - Add git sign-off reminder to development guide
61
+
3
62
  ## v0.13.6 (2025-06-18)
4
63
 
5
64
  ### Bug Fixes
@@ -0,0 +1,32 @@
1
+ FROM python:3.12-slim-bookworm
2
+
3
+ # Copy uv from official image
4
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
5
+
6
+ # Set environment variables
7
+ ENV PYTHONUNBUFFERED=1 \
8
+ PYTHONDONTWRITEBYTECODE=1
9
+
10
+ # Copy the project into the image
11
+ ADD . /app
12
+
13
+ # Sync the project into a new environment, asserting the lockfile is up to date
14
+ WORKDIR /app
15
+ RUN uv sync --locked
16
+
17
+ # Create data directory
18
+ RUN mkdir -p /app/data
19
+
20
+ # Set default data directory and add venv to PATH
21
+ ENV BASIC_MEMORY_HOME=/app/data \
22
+ PATH="/app/.venv/bin:$PATH"
23
+
24
+ # Expose port
25
+ EXPOSE 8000
26
+
27
+ # Health check
28
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
29
+ CMD basic-memory --version || exit 1
30
+
31
+ # Use the basic-memory entrypoint to run the MCP server with default SSE transport
32
+ CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.13.7.dev1
3
+ Version: 0.13.8.dev1
4
4
  Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
5
  Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
6
  Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
@@ -449,6 +449,31 @@ Development versions are automatically published on every commit to main with ve
449
449
  pip install basic-memory --pre --force-reinstall
450
450
  ```
451
451
 
452
+ ### Docker
453
+
454
+ Run Basic Memory in a container with volume mounting for your Obsidian vault:
455
+
456
+ ```bash
457
+ # Clone and start with Docker Compose
458
+ git clone https://github.com/basicmachines-co/basic-memory.git
459
+ cd basic-memory
460
+
461
+ # Edit docker-compose.yml to point to your Obsidian vault
462
+ # Then start the container
463
+ docker-compose up -d
464
+ ```
465
+
466
+ Or use Docker directly:
467
+ ```bash
468
+ docker run -d \
469
+ --name basic-memory-server \
470
+ -v /path/to/your/obsidian-vault:/data/knowledge:rw \
471
+ -v basic-memory-config:/root/.basic-memory:rw \
472
+ ghcr.io/basicmachines-co/basic-memory:latest
473
+ ```
474
+
475
+ See [Docker Setup Guide](docs/Docker.md) for detailed configuration options, multiple project setup, and integration examples.
476
+
452
477
  ## License
453
478
 
454
479
  AGPL-3.0
@@ -411,6 +411,31 @@ Development versions are automatically published on every commit to main with ve
411
411
  pip install basic-memory --pre --force-reinstall
412
412
  ```
413
413
 
414
+ ### Docker
415
+
416
+ Run Basic Memory in a container with volume mounting for your Obsidian vault:
417
+
418
+ ```bash
419
+ # Clone and start with Docker Compose
420
+ git clone https://github.com/basicmachines-co/basic-memory.git
421
+ cd basic-memory
422
+
423
+ # Edit docker-compose.yml to point to your Obsidian vault
424
+ # Then start the container
425
+ docker-compose up -d
426
+ ```
427
+
428
+ Or use Docker directly:
429
+ ```bash
430
+ docker run -d \
431
+ --name basic-memory-server \
432
+ -v /path/to/your/obsidian-vault:/data/knowledge:rw \
433
+ -v basic-memory-config:/root/.basic-memory:rw \
434
+ ghcr.io/basicmachines-co/basic-memory:latest
435
+ ```
436
+
437
+ See [Docker Setup Guide](docs/Docker.md) for detailed configuration options, multiple project setup, and integration examples.
438
+
414
439
  ## License
415
440
 
416
441
  AGPL-3.0
@@ -0,0 +1,83 @@
1
+ # Docker Compose configuration for Basic Memory
2
+ # See docs/Docker.md for detailed setup instructions
3
+
4
+ version: '3.8'
5
+
6
+ services:
7
+ basic-memory:
8
+ # Use pre-built image (recommended for most users)
9
+ image: ghcr.io/basicmachines-co/basic-memory:latest
10
+
11
+ # Uncomment to build locally instead:
12
+ # build: .
13
+
14
+ container_name: basic-memory-server
15
+
16
+ # Volume mounts for knowledge directories and persistent data
17
+ volumes:
18
+
19
+ # Persistent storage for configuration and database
20
+ - basic-memory-config:/root/.basic-memory:rw
21
+
22
+ # Mount your knowledge directory (required)
23
+ # Change './knowledge' to your actual Obsidian vault or knowledge directory
24
+ - ./knowledge:/app/data:rw
25
+
26
+ # OPTIONAL: Mount additional knowledge directories for multiple projects
27
+ # - ./work-notes:/app/data/work:rw
28
+ # - ./personal-notes:/app/data/personal:rw
29
+
30
+ # You can edit the project config manually in the mounted config volume
31
+ # The default project will be configured to use /app/data
32
+ environment:
33
+ # Project configuration
34
+ - BASIC_MEMORY_DEFAULT_PROJECT=main
35
+
36
+ # Enable real-time file synchronization (recommended for Docker)
37
+ - BASIC_MEMORY_SYNC_CHANGES=true
38
+
39
+ # Logging configuration
40
+ - BASIC_MEMORY_LOG_LEVEL=INFO
41
+
42
+ # Sync delay in milliseconds (adjust for performance vs responsiveness)
43
+ - BASIC_MEMORY_SYNC_DELAY=1000
44
+
45
+ # Port exposure for HTTP transport (only needed if not using STDIO)
46
+ ports:
47
+ - "8000:8000"
48
+
49
+ # Command with SSE transport (configurable via environment variables above)
50
+ # IMPORTANT: The SSE and streamable-http endpoints are not secured
51
+ command: ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
52
+
53
+ # Container management
54
+ restart: unless-stopped
55
+
56
+ # Health monitoring
57
+ healthcheck:
58
+ test: ["CMD", "basic-memory", "--version"]
59
+ interval: 30s
60
+ timeout: 10s
61
+ retries: 3
62
+ start_period: 30s
63
+
64
+ # Optional: Resource limits
65
+ # deploy:
66
+ # resources:
67
+ # limits:
68
+ # memory: 512M
69
+ # cpus: '0.5'
70
+ # reservations:
71
+ # memory: 256M
72
+ # cpus: '0.25'
73
+
74
+ volumes:
75
+ # Named volume for persistent configuration and database
76
+ # This ensures your configuration and knowledge graph persist across container restarts
77
+ basic-memory-config:
78
+ driver: local
79
+
80
+ # Network configuration (optional)
81
+ # networks:
82
+ # basic-memory-net:
83
+ # driver: bridge
@@ -0,0 +1,334 @@
1
+ # Docker Setup Guide
2
+
3
+ Basic Memory can be run in Docker containers to provide a consistent, isolated environment for your knowledge management
4
+ system. This is particularly useful for integrating with existing Dockerized MCP servers or for deployment scenarios.
5
+
6
+ ## Quick Start
7
+
8
+ ### Option 1: Using Pre-built Images (Recommended)
9
+
10
+ Basic Memory provides pre-built Docker images on GitHub Container Registry that are automatically updated with each release.
11
+
12
+ 1. **Use the official image directly:**
13
+ ```bash
14
+ docker run -d \
15
+ --name basic-memory-server \
16
+ -p 8000:8000 \
17
+ -v /path/to/your/obsidian-vault:/app/data:rw \
18
+ -v basic-memory-config:/root/.basic-memory:rw \
19
+ ghcr.io/basicmachines-co/basic-memory:latest
20
+ ```
21
+
22
+ 2. **Or use Docker Compose with the pre-built image:**
23
+ ```yaml
24
+ version: '3.8'
25
+ services:
26
+ basic-memory:
27
+ image: ghcr.io/basicmachines-co/basic-memory:latest
28
+ container_name: basic-memory-server
29
+ ports:
30
+ - "8000:8000"
31
+ volumes:
32
+ - /path/to/your/obsidian-vault:/app/data:rw
33
+ - basic-memory-config:/root/.basic-memory:rw
34
+ environment:
35
+ - BASIC_MEMORY_DEFAULT_PROJECT=main
36
+ restart: unless-stopped
37
+ ```
38
+
39
+ ### Option 2: Using Docker Compose (Building Locally)
40
+
41
+ 1. **Clone the repository:**
42
+ ```bash
43
+ git clone https://github.com/basicmachines-co/basic-memory.git
44
+ cd basic-memory
45
+ ```
46
+
47
+ 2. **Update the docker-compose.yml:**
48
+ Edit the volume mount to point to your Obsidian vault:
49
+ ```yaml
50
+ volumes:
51
+ # Change './obsidian-vault' to your actual directory path
52
+ - /path/to/your/obsidian-vault:/app/data:rw
53
+ ```
54
+
55
+ 3. **Start the container:**
56
+ ```bash
57
+ docker-compose up -d
58
+ ```
59
+
60
+ ### Option 3: Using Docker CLI
61
+
62
+ ```bash
63
+ # Build the image
64
+ docker build -t basic-memory .
65
+
66
+ # Run with volume mounting
67
+ docker run -d \
68
+ --name basic-memory-server \
69
+ -v /path/to/your/obsidian-vault:/app/data:rw \
70
+ -v basic-memory-config:/root/.basic-memory:rw \
71
+ -e BASIC_MEMORY_DEFAULT_PROJECT=main \
72
+ basic-memory
73
+ ```
74
+
75
+ ## Configuration
76
+
77
+ ### Volume Mounts
78
+
79
+ Basic Memory requires several volume mounts for proper operation:
80
+
81
+ 1. **Knowledge Directory** (Required):
82
+ ```yaml
83
+ - /path/to/your/obsidian-vault:/app/data:rw
84
+ ```
85
+ Mount your Obsidian vault or knowledge base directory.
86
+
87
+ 2. **Configuration and Database** (Recommended):
88
+ ```yaml
89
+ - basic-memory-config:/root/.basic-memory:rw
90
+ ```
91
+ Persistent storage for configuration and SQLite database.
92
+
93
+ You can edit the basic-memory config.json file located in the /root/.basic-memory/config.json after Basic Memory starts.
94
+
95
+ 3. **Multiple Projects** (Optional):
96
+ ```yaml
97
+ - /path/to/project1:/app/data/project1:rw
98
+ - /path/to/project2:/app/data/project2:rw
99
+ ```
100
+
101
+ You can edit the basic-memory config.json file located in the /root/.basic-memory/config.json
102
+
103
+ ## CLI Commands via Docker
104
+
105
+ You can run Basic Memory CLI commands inside the container using `docker exec`:
106
+
107
+ ### Basic Commands
108
+
109
+ ```bash
110
+ # Check status
111
+ docker exec basic-memory-server basic-memory status
112
+
113
+ # Sync files
114
+ docker exec basic-memory-server basic-memory sync
115
+
116
+ # Show help
117
+ docker exec basic-memory-server basic-memory --help
118
+ ```
119
+
120
+ ### Managing Projects with Volume Mounts
121
+
122
+ When using Docker volumes, you'll need to configure projects to point to your mounted directories:
123
+
124
+ 1. **Check current configuration:**
125
+ ```bash
126
+ docker exec basic-memory-server cat /root/.basic-memory/config.json
127
+ ```
128
+
129
+ 2. **Add a project for your mounted volume:**
130
+ ```bash
131
+ # If you mounted /path/to/your/vault to /app/data
132
+ docker exec basic-memory-server basic-memory project create my-vault /app/data
133
+
134
+ # Set it as default
135
+ docker exec basic-memory-server basic-memory project set-default my-vault
136
+ ```
137
+
138
+ 3. **Sync the new project:**
139
+ ```bash
140
+ docker exec basic-memory-server basic-memory sync
141
+ ```
142
+
143
+ ### Example: Setting up an Obsidian Vault
144
+
145
+ If you mounted your Obsidian vault like this in docker-compose.yml:
146
+ ```yaml
147
+ volumes:
148
+ - /Users/yourname/Documents/ObsidianVault:/app/data:rw
149
+ ```
150
+
151
+ Then configure it:
152
+ ```bash
153
+ # Create project pointing to mounted vault
154
+ docker exec basic-memory-server basic-memory project create obsidian /app/data
155
+
156
+ # Set as default
157
+ docker exec basic-memory-server basic-memory project set-default obsidian
158
+
159
+ # Sync to index all files
160
+ docker exec basic-memory-server basic-memory sync
161
+ ```
162
+
163
+ ### Environment Variables
164
+
165
+ Configure Basic Memory using environment variables:
166
+
167
+ ```yaml
168
+ environment:
169
+
170
+ # Default project
171
+ - BASIC_MEMORY_DEFAULT_PROJECT=main
172
+
173
+ # Enable real-time sync
174
+ - BASIC_MEMORY_SYNC_CHANGES=true
175
+
176
+ # Logging level
177
+ - BASIC_MEMORY_LOG_LEVEL=INFO
178
+
179
+ # Sync delay in milliseconds
180
+ - BASIC_MEMORY_SYNC_DELAY=1000
181
+ ```
182
+
183
+ ## File Permissions
184
+
185
+ ### Linux/macOS
186
+
187
+ Ensure your knowledge directories have proper permissions:
188
+
189
+ ```bash
190
+ # Make directories readable/writable
191
+ chmod -R 755 /path/to/your/obsidian-vault
192
+
193
+ # If using specific user/group
194
+ chown -R $USER:$USER /path/to/your/obsidian-vault
195
+ ```
196
+
197
+ ### Windows
198
+
199
+ When using Docker Desktop on Windows, ensure the directories are shared:
200
+
201
+ 1. Open Docker Desktop
202
+ 2. Go to Settings → Resources → File Sharing
203
+ 3. Add your knowledge directory path
204
+ 4. Apply & Restart
205
+
206
+ ## Troubleshooting
207
+
208
+ ### Common Issues
209
+
210
+ 1. **File Watching Not Working:**
211
+ - Ensure volume mounts are read-write (`:rw`)
212
+ - Check directory permissions
213
+ - On Linux, may need to increase inotify limits:
214
+ ```bash
215
+ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
216
+ sudo sysctl -p
217
+ ```
218
+
219
+ 2. **Configuration Not Persisting:**
220
+ - Use named volumes for `/root/.basic-memory`
221
+ - Check volume mount permissions
222
+
223
+ 3. **Network Connectivity:**
224
+ - For HTTP transport, ensure port 8000 is exposed
225
+ - Check firewall settings
226
+
227
+ ### Debug Mode
228
+
229
+ Run with debug logging:
230
+
231
+ ```yaml
232
+ environment:
233
+ - BASIC_MEMORY_LOG_LEVEL=DEBUG
234
+ ```
235
+
236
+ View logs:
237
+
238
+ ```bash
239
+ docker-compose logs -f basic-memory
240
+ ```
241
+
242
+
243
+ ## Security Considerations
244
+
245
+ 1. **Docker Security:**
246
+ The container runs as root for simplicity. For production, consider additional security measures.
247
+
248
+ 2. **Volume Permissions:**
249
+ Ensure mounted directories have appropriate permissions and don't expose sensitive data.
250
+
251
+ 3. **Network Security:**
252
+ If using HTTP transport, consider using reverse proxy with SSL/TLS and authentication if the endpoint is available on
253
+ a network.
254
+
255
+ 4. **IMPORTANT:** The HTTP endpoints have no authorization. They should not be exposed on a public network.
256
+
257
+ ## Integration Examples
258
+
259
+ ### Claude Desktop with Docker
260
+
261
+ The recommended way to connect Claude Desktop to the containerized Basic Memory is using `mcp-proxy`, which converts the HTTP transport to STDIO that Claude Desktop expects:
262
+
263
+ 1. **Start the Docker container:**
264
+ ```bash
265
+ docker-compose up -d
266
+ ```
267
+
268
+ 2. **Configure Claude Desktop** to use mcp-proxy:
269
+ ```json
270
+ {
271
+ "mcpServers": {
272
+ "basic-memory": {
273
+ "command": "uvx",
274
+ "args": [
275
+ "mcp-proxy",
276
+ "http://localhost:8000/mcp"
277
+ ]
278
+ }
279
+ }
280
+ }
281
+ ```
282
+
283
+
284
+ ## Support
285
+
286
+ For Docker-specific issues:
287
+
288
+ 1. Check the [troubleshooting section](#troubleshooting) above
289
+ 2. Review container logs: `docker-compose logs basic-memory`
290
+ 3. Verify volume mounts: `docker inspect basic-memory-server`
291
+ 4. Test file permissions: `docker exec basic-memory-server ls -la /root`
292
+
293
+ For general Basic Memory support, see the main [README](../README.md)
294
+ and [documentation](https://memory.basicmachines.co/).
295
+
296
+ ## GitHub Container Registry Images
297
+
298
+ ### Available Images
299
+
300
+ Pre-built Docker images are available on GitHub Container Registry at [`ghcr.io/basicmachines-co/basic-memory`](https://github.com/basicmachines-co/basic-memory/pkgs/container/basic-memory).
301
+
302
+ **Supported architectures:**
303
+ - `linux/amd64` (Intel/AMD x64)
304
+ - `linux/arm64` (ARM64, including Apple Silicon)
305
+
306
+ **Available tags:**
307
+ - `latest` - Latest stable release
308
+ - `v0.13.8`, `v0.13.7`, etc. - Specific version tags
309
+ - `v0.13`, `v0.12`, etc. - Major.minor tags
310
+
311
+ ### Automated Builds
312
+
313
+ Docker images are automatically built and published when new releases are tagged:
314
+
315
+ 1. **Release Process:** When a git tag matching `v*` (e.g., `v0.13.8`) is pushed, the CI workflow automatically:
316
+ - Builds multi-platform Docker images
317
+ - Pushes to GitHub Container Registry with appropriate tags
318
+ - Uses native GitHub integration for seamless publishing
319
+
320
+ 2. **CI/CD Pipeline:** The Docker workflow includes:
321
+ - Multi-platform builds (AMD64 and ARM64)
322
+ - Layer caching for faster builds
323
+ - Automatic tagging with semantic versioning
324
+ - Security scanning and optimization
325
+
326
+ ### Setup Requirements (For Maintainers)
327
+
328
+ GitHub Container Registry integration is automatic for this repository:
329
+
330
+ 1. **No external setup required** - GHCR is natively integrated with GitHub
331
+ 2. **Automatic permissions** - Uses `GITHUB_TOKEN` with `packages: write` permission
332
+ 3. **Public by default** - Images are automatically public for public repositories
333
+
334
+ The Docker CI workflow (`.github/workflows/docker.yml`) handles everything automatically when version tags are pushed.