basic-memory 0.13.8.dev1__tar.gz → 0.14.0__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 (285) hide show
  1. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/changelog.md +5 -2
  2. basic_memory-0.14.0/.claude/commands/test-live.md +595 -0
  3. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/claude.yml +1 -1
  4. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/release.yml +3 -0
  5. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CHANGELOG.md +121 -39
  6. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CLAUDE.md +3 -1
  7. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/PKG-INFO +1 -1
  8. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/__init__.py +1 -1
  9. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/utils.py +1 -1
  10. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/mcp.py +0 -1
  11. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/config.py +6 -2
  12. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/utils.py +3 -1
  13. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/build_context.py +6 -3
  14. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/move_note.py +155 -1
  15. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/read_note.py +6 -3
  16. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/search.py +115 -38
  17. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/utils.py +27 -4
  18. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/write_note.py +6 -2
  19. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/entity_repository.py +4 -4
  20. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/search_repository.py +153 -23
  21. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/memory.py +1 -1
  22. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/response.py +1 -1
  23. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/entity_service.py +8 -3
  24. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/sync_status_service.py +17 -0
  25. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_move_note_integration.py +133 -0
  26. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_edit_note.py +39 -0
  27. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_search.py +63 -22
  28. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_entity_repository_upsert.py +203 -0
  29. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_search_repository.py +80 -0
  30. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_schemas.py +30 -0
  31. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_entity_service.py +66 -0
  32. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_sync_status_service.py +49 -0
  33. basic_memory-0.14.0/tests/test_config.py +78 -0
  34. basic_memory-0.13.8.dev1/.claude/commands/check-health.md +0 -190
  35. basic_memory-0.13.8.dev1/.claude/commands/commands.md +0 -62
  36. basic_memory-0.13.8.dev1/.claude/commands/lint-fix.md +0 -145
  37. basic_memory-0.13.8.dev1/.claude/commands/test-coverage.md +0 -131
  38. basic_memory-0.13.8.dev1/.claude/commands/test-live.md +0 -410
  39. basic_memory-0.13.8.dev1/.mcp.json +0 -14
  40. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/beta.md +0 -0
  41. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/release-check.md +0 -0
  42. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/release.md +0 -0
  43. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.dockerignore +0 -0
  44. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  45. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  46. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  47. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  48. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/dependabot.yml +0 -0
  49. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/dev-release.yml +0 -0
  50. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/docker.yml +0 -0
  51. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/pr-title.yml +0 -0
  52. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/test.yml +0 -0
  53. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.gitignore +0 -0
  54. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.python-version +0 -0
  55. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CITATION.cff +0 -0
  56. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CLA.md +0 -0
  57. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CODE_OF_CONDUCT.md +0 -0
  58. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CONTRIBUTING.md +0 -0
  59. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/Dockerfile +0 -0
  60. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/LICENSE +0 -0
  61. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/README.md +0 -0
  62. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/SECURITY.md +0 -0
  63. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docker-compose.yml +0 -0
  64. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docs/AI Assistant Guide.md +0 -0
  65. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docs/Docker.md +0 -0
  66. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/justfile +0 -0
  67. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/llms-install.md +0 -0
  68. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/memory.json +0 -0
  69. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/pyproject.toml +0 -0
  70. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/smithery.yaml +0 -0
  71. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/alembic.ini +0 -0
  72. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/env.py +0 -0
  73. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/migrations.py +0 -0
  74. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/script.py.mako +0 -0
  75. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  76. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  77. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
  78. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
  79. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  80. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  81. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/__init__.py +0 -0
  82. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/app.py +0 -0
  83. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/__init__.py +0 -0
  84. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/directory_router.py +0 -0
  85. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/importer_router.py +0 -0
  86. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/knowledge_router.py +0 -0
  87. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/management_router.py +0 -0
  88. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/memory_router.py +0 -0
  89. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/project_router.py +0 -0
  90. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/prompt_router.py +0 -0
  91. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/resource_router.py +0 -0
  92. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/search_router.py +0 -0
  93. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/template_loader.py +0 -0
  94. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/__init__.py +0 -0
  95. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/app.py +0 -0
  96. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/__init__.py +0 -0
  97. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/auth.py +0 -0
  98. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/db.py +0 -0
  99. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  100. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  101. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  102. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  103. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/project.py +0 -0
  104. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/status.py +0 -0
  105. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/sync.py +0 -0
  106. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/tool.py +0 -0
  107. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/main.py +0 -0
  108. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/db.py +0 -0
  109. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/deps.py +0 -0
  110. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/file_utils.py +0 -0
  111. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/__init__.py +0 -0
  112. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/base.py +0 -0
  113. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/chatgpt_importer.py +0 -0
  114. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
  115. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/claude_projects_importer.py +0 -0
  116. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/memory_json_importer.py +0 -0
  117. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/utils.py +0 -0
  118. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/__init__.py +0 -0
  119. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/entity_parser.py +0 -0
  120. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/markdown_processor.py +0 -0
  121. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/plugins.py +0 -0
  122. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/schemas.py +0 -0
  123. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/__init__.py +0 -0
  124. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/async_client.py +0 -0
  125. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/auth_provider.py +0 -0
  126. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/external_auth_provider.py +0 -0
  127. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/project_session.py +0 -0
  128. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  129. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
  130. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
  131. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  132. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/search.py +0 -0
  133. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/sync_status.py +0 -0
  134. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/utils.py +0 -0
  135. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
  136. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/resources/project_info.py +0 -0
  137. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/server.py +0 -0
  138. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
  139. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/__init__.py +0 -0
  140. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/canvas.py +0 -0
  141. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  142. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/edit_note.py +0 -0
  143. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/list_directory.py +0 -0
  144. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/project_management.py +0 -0
  145. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/read_content.py +0 -0
  146. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  147. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/sync_status.py +0 -0
  148. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/view_note.py +0 -0
  149. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/__init__.py +0 -0
  150. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/base.py +0 -0
  151. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/knowledge.py +0 -0
  152. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/project.py +0 -0
  153. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/search.py +0 -0
  154. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/__init__.py +0 -0
  155. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/observation_repository.py +0 -0
  156. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/project_info_repository.py +0 -0
  157. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/project_repository.py +0 -0
  158. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/relation_repository.py +0 -0
  159. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/repository.py +0 -0
  160. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/__init__.py +0 -0
  161. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/base.py +0 -0
  162. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/delete.py +0 -0
  163. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/directory.py +0 -0
  164. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/importer.py +0 -0
  165. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/project_info.py +0 -0
  166. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/prompt.py +0 -0
  167. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/request.py +0 -0
  168. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/search.py +0 -0
  169. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/__init__.py +0 -0
  170. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/context_service.py +0 -0
  171. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/directory_service.py +0 -0
  172. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/exceptions.py +0 -0
  173. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/file_service.py +0 -0
  174. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/initialization.py +0 -0
  175. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/link_resolver.py +0 -0
  176. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/migration_service.py +0 -0
  177. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/project_service.py +0 -0
  178. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/search_service.py +0 -0
  179. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/service.py +0 -0
  180. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/__init__.py +0 -0
  181. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/background_sync.py +0 -0
  182. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/sync_service.py +0 -0
  183. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/watch_service.py +0 -0
  184. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
  185. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/templates/prompts/search.hbs +0 -0
  186. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/utils.py +0 -0
  187. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/cli/test_reset_integration.py +0 -0
  188. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/conftest.py +0 -0
  189. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_build_context_validation.py +0 -0
  190. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_delete_note_integration.py +0 -0
  191. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_edit_note_integration.py +0 -0
  192. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_list_directory_integration.py +0 -0
  193. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_project_management_integration.py +0 -0
  194. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_project_state_sync_integration.py +0 -0
  195. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_read_content_integration.py +0 -0
  196. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_read_note_integration.py +0 -0
  197. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_search_integration.py +0 -0
  198. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_write_note_integration.py +0 -0
  199. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/Non-MarkdownFileSupport.pdf +0 -0
  200. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/Screenshot.png +0 -0
  201. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/__init__.py +0 -0
  202. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/conftest.py +0 -0
  203. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_continue_conversation_template.py +0 -0
  204. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_directory_router.py +0 -0
  205. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_importer_router.py +0 -0
  206. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_knowledge_router.py +0 -0
  207. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_management_router.py +0 -0
  208. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_memory_router.py +0 -0
  209. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_project_router.py +0 -0
  210. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_project_router_operations.py +0 -0
  211. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_prompt_router.py +0 -0
  212. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_resource_router.py +0 -0
  213. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_search_router.py +0 -0
  214. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_search_template.py +0 -0
  215. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_template_loader.py +0 -0
  216. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_template_loader_helpers.py +0 -0
  217. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/conftest.py +0 -0
  218. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_auth_commands.py +0 -0
  219. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_cli_tools.py +0 -0
  220. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_chatgpt.py +0 -0
  221. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_claude_conversations.py +0 -0
  222. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_claude_projects.py +0 -0
  223. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_memory_json.py +0 -0
  224. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_project_commands.py +0 -0
  225. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_project_info.py +0 -0
  226. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_status.py +0 -0
  227. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_sync.py +0 -0
  228. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_version.py +0 -0
  229. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/conftest.py +0 -0
  230. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/importers/test_importer_base.py +0 -0
  231. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/importers/test_importer_utils.py +0 -0
  232. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/__init__.py +0 -0
  233. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_entity_parser.py +0 -0
  234. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_markdown_plugins.py +0 -0
  235. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_markdown_processor.py +0 -0
  236. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_observation_edge_cases.py +0 -0
  237. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_parser_edge_cases.py +0 -0
  238. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_relation_edge_cases.py +0 -0
  239. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_task_detection.py +0 -0
  240. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/conftest.py +0 -0
  241. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_auth_provider.py +0 -0
  242. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_prompts.py +0 -0
  243. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_resource_project_info.py +0 -0
  244. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_resources.py +0 -0
  245. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_server.py +0 -0
  246. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_build_context.py +0 -0
  247. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_canvas.py +0 -0
  248. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_delete_note.py +0 -0
  249. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_list_directory.py +0 -0
  250. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_move_note.py +0 -0
  251. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_read_note.py +0 -0
  252. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_recent_activity.py +0 -0
  253. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_resource.py +0 -0
  254. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_sync_status.py +0 -0
  255. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_utils.py +0 -0
  256. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_view_note.py +0 -0
  257. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_write_note.py +0 -0
  258. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_entity_repository.py +0 -0
  259. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_observation_repository.py +0 -0
  260. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_project_info_repository.py +0 -0
  261. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_project_repository.py +0 -0
  262. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_relation_repository.py +0 -0
  263. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_repository.py +0 -0
  264. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_memory_url.py +0 -0
  265. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_memory_url_validation.py +0 -0
  266. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_search.py +0 -0
  267. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_context_service.py +0 -0
  268. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_directory_service.py +0 -0
  269. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_file_service.py +0 -0
  270. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_initialization.py +0 -0
  271. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_link_resolver.py +0 -0
  272. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_project_service.py +0 -0
  273. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_project_service_operations.py +0 -0
  274. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_search_service.py +0 -0
  275. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_sync_service.py +0 -0
  276. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_sync_wikilink_issue.py +0 -0
  277. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_tmp_files.py +0 -0
  278. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_watch_service.py +0 -0
  279. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_watch_service_edge_cases.py +0 -0
  280. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/test_db_migration_deduplication.py +0 -0
  281. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_file_utils.py +0 -0
  282. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_parse_tags.py +0 -0
  283. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_permalink_formatting.py +0 -0
  284. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_utf8_handling.py +0 -0
  285. {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/uv.lock +0 -0
@@ -8,7 +8,7 @@ Analyze commits and generate formatted changelog entry for a version.
8
8
  ```
9
9
 
10
10
  **Parameters:**
11
- - `version` (required): Version like `v0.13.0` or `v0.13.0b4`
11
+ - `version` (required): Version like `v0.14.0` or `v0.14.0b1`
12
12
  - `type` (optional): `beta`, `rc`, or `stable` (default: `stable`)
13
13
 
14
14
  ## Implementation
@@ -59,8 +59,9 @@ You are an expert technical writer for the Basic Memory project. When the user r
59
59
  ### Step 3: Generate Changelog Entry
60
60
  Create formatted entry following existing CHANGELOG.md style:
61
61
 
62
+ Example:
62
63
  ```markdown
63
- ## v0.13.0 (2025-06-03)
64
+ ## <version> (<date>)
64
65
 
65
66
  ### Features
66
67
 
@@ -128,6 +129,8 @@ Create formatted entry following existing CHANGELOG.md style:
128
129
  ## Output Format
129
130
 
130
131
  ### For Beta Releases
132
+
133
+ Example:
131
134
  ```markdown
132
135
  ## v0.13.0b4 (2025-06-03)
133
136
 
@@ -0,0 +1,595 @@
1
+ # /project:test-live - Live Basic Memory Testing Suite
2
+
3
+ Execute comprehensive real-world testing of Basic Memory using the installed version.
4
+ All test results are recorded as notes in a dedicated test project.
5
+
6
+ ## Usage
7
+ ```
8
+ /project:test-live [phase]
9
+ ```
10
+
11
+ **Parameters:**
12
+ - `phase` (optional): Specific test phase to run (`recent`, `core`, `features`, `edge`, `workflows`, `stress`, or `all`)
13
+ - `recent` - Focus on recent changes and new features (recommended for regular testing)
14
+ - `core` - Essential tools only (Tier 1: write_note, read_note, search_notes, edit_note, list_projects, switch_project)
15
+ - `features` - Core + important workflows (Tier 1 + Tier 2)
16
+ - `all` - Comprehensive testing of all tools and scenarios
17
+
18
+ ## Implementation
19
+
20
+ You are an expert QA engineer conducting live testing of Basic Memory.
21
+ When the user runs `/project:test-live`, execute comprehensive test plan:
22
+
23
+ ## Tool Testing Priority
24
+
25
+ ### **Tier 1: Critical Core (Always Test)**
26
+ 1. **write_note** - Foundation of all knowledge creation
27
+ 2. **read_note** - Primary knowledge retrieval mechanism
28
+ 3. **search_notes** - Essential for finding information
29
+ 4. **edit_note** - Core content modification capability
30
+ 5. **list_memory_projects** - Project discovery and status
31
+ 6. **switch_project** - Context switching for multi-project workflows
32
+
33
+ ### **Tier 2: Important Workflows (Usually Test)**
34
+ 7. **recent_activity** - Understanding what's changed
35
+ 8. **build_context** - Conversation continuity via memory:// URLs
36
+ 9. **create_memory_project** - Essential for project setup
37
+ 10. **move_note** - Knowledge organization
38
+ 11. **sync_status** - Understanding system state
39
+
40
+ ### **Tier 3: Enhanced Functionality (Sometimes Test)**
41
+ 12. **view_note** - Claude Desktop artifact display
42
+ 13. **read_content** - Raw content access
43
+ 14. **delete_note** - Content removal
44
+ 15. **list_directory** - File system exploration
45
+ 16. **set_default_project** - Configuration
46
+ 17. **delete_project** - Administrative cleanup
47
+
48
+ ### **Tier 4: Specialized (Rarely Test)**
49
+ 18. **canvas** - Obsidian visualization (specialized use case)
50
+ 19. **MCP Prompts** - Enhanced UX tools (ai_assistant_guide, continue_conversation)
51
+
52
+ ### Pre-Test Setup
53
+
54
+ 1. **Environment Verification**
55
+ - Verify basic-memory is installed and accessible via MCP
56
+ - Check version and confirm it's the expected release
57
+ - Test MCP connection and tool availability
58
+
59
+ 2. **Recent Changes Analysis** (if phase includes 'recent' or 'all')
60
+ - Run `git log --oneline -20` to examine recent commits
61
+ - Identify new features, bug fixes, and enhancements
62
+ - Generate targeted test scenarios for recent changes
63
+ - Prioritize regression testing for recently fixed issues
64
+
65
+ 3. **Test Project Creation**
66
+
67
+ Run the bash `date` command to get the current date/time.
68
+
69
+ ```
70
+ Create project: "basic-memory-testing-[timestamp]"
71
+ Location: ~/basic-memory-testing-[timestamp]
72
+ Purpose: Record all test observations and results
73
+ ```
74
+
75
+ Make sure to switch to the newly created project with the `switch_project()` tool.
76
+
77
+ 4. **Baseline Documentation**
78
+ Create initial test session note with:
79
+ - Test environment details
80
+ - Version being tested
81
+ - Recent changes identified (if applicable)
82
+ - Test objectives and scope
83
+ - Start timestamp
84
+
85
+ ### Phase 0: Recent Changes Validation (if 'recent' or 'all' phase)
86
+
87
+ Based on recent commit analysis, create targeted test scenarios:
88
+
89
+ **Recent Changes Test Protocol:**
90
+ 1. **Feature Addition Tests** - For each new feature identified:
91
+ - Test basic functionality
92
+ - Test integration with existing tools
93
+ - Verify documentation accuracy
94
+ - Test edge cases and error handling
95
+
96
+ 2. **Bug Fix Regression Tests** - For each recent fix:
97
+ - Recreate the original problem scenario
98
+ - Verify the fix works as expected
99
+ - Test related functionality isn't broken
100
+ - Document the verification in test notes
101
+
102
+ 3. **Performance/Enhancement Validation** - For optimizations:
103
+ - Establish baseline timing
104
+ - Compare with expected improvements
105
+ - Test under various load conditions
106
+ - Document performance observations
107
+
108
+ **Example Recent Changes (Update based on actual git log):**
109
+ - Watch Service Restart (#156): Test project creation → file modification → automatic restart
110
+ - Cross-Project Moves (#161): Test move_note with cross-project detection
111
+ - Docker Environment Support (#174): Test BASIC_MEMORY_HOME behavior
112
+ - MCP Server Logging (#164): Verify log level configurations
113
+
114
+ ### Phase 1: Core Functionality Validation (Tier 1 Tools)
115
+
116
+ Test essential MCP tools that form the foundation of Basic Memory:
117
+
118
+ **1. write_note Tests (Critical):**
119
+ - ✅ Basic note creation with frontmatter
120
+ - ✅ Special characters and Unicode in titles
121
+ - ✅ Various content types (lists, headings, code blocks)
122
+ - ✅ Empty notes and minimal content edge cases
123
+ - ⚠️ Error handling for invalid parameters
124
+
125
+ **2. read_note Tests (Critical):**
126
+ - ✅ Read by title, permalink, memory:// URLs
127
+ - ✅ Non-existent notes (error handling)
128
+ - ✅ Notes with complex markdown formatting
129
+ - ⚠️ Performance with large notes (>10MB)
130
+
131
+ **3. search_notes Tests (Critical):**
132
+ - ✅ Simple text queries across content
133
+ - ✅ Tag-based searches with multiple tags
134
+ - ✅ Boolean operators (AND, OR, NOT)
135
+ - ✅ Empty/no results scenarios
136
+ - ⚠️ Performance with 100+ notes
137
+
138
+ **4. edit_note Tests (Critical):**
139
+ - ✅ Append operations preserving frontmatter
140
+ - ✅ Prepend operations
141
+ - ✅ Find/replace with validation
142
+ - ✅ Section replacement under headers
143
+ - ⚠️ Error scenarios (invalid operations)
144
+
145
+ **5. list_memory_projects Tests (Critical):**
146
+ - ✅ Display all projects with status indicators
147
+ - ✅ Current and default project identification
148
+ - ✅ Empty project list handling
149
+ - ✅ Project metadata accuracy
150
+
151
+ **6. switch_project Tests (Critical):**
152
+ - ✅ Switch between existing projects
153
+ - ✅ Context preservation during switch
154
+ - ⚠️ Invalid project name handling
155
+ - ✅ Confirmation of successful switch
156
+
157
+ ### Phase 2: Important Workflows (Tier 2 Tools)
158
+
159
+ **7. recent_activity Tests (Important):**
160
+ - ✅ Various timeframes ("today", "1 week", "1d")
161
+ - ✅ Type filtering capabilities
162
+ - ✅ Empty project scenarios
163
+ - ⚠️ Performance with many recent changes
164
+
165
+ **8. build_context Tests (Important):**
166
+ - ✅ Different depth levels (1, 2, 3+)
167
+ - ✅ Various timeframes for context
168
+ - ✅ memory:// URL navigation
169
+ - ⚠️ Performance with complex relation graphs
170
+
171
+ **9. create_memory_project Tests (Important):**
172
+ - ✅ Create projects dynamically
173
+ - ✅ Set default during creation
174
+ - ✅ Path validation and creation
175
+ - ⚠️ Invalid paths and names
176
+ - ✅ Integration with existing projects
177
+
178
+ **10. move_note Tests (Important):**
179
+ - ✅ Move within same project
180
+ - ✅ Cross-project moves with detection (#161)
181
+ - ✅ Automatic folder creation
182
+ - ✅ Database consistency validation
183
+ - ⚠️ Special characters in paths
184
+
185
+ **11. sync_status Tests (Important):**
186
+ - ✅ Background operation monitoring
187
+ - ✅ File synchronization status
188
+ - ✅ Project sync state reporting
189
+ - ⚠️ Error state handling
190
+
191
+ ### Phase 3: Enhanced Functionality (Tier 3 Tools)
192
+
193
+ **12. view_note Tests (Enhanced):**
194
+ - ✅ Claude Desktop artifact display
195
+ - ✅ Title extraction from frontmatter
196
+ - ✅ Unicode and emoji content rendering
197
+ - ⚠️ Error handling for non-existent notes
198
+
199
+ **13. read_content Tests (Enhanced):**
200
+ - ✅ Raw file content access
201
+ - ✅ Binary file handling
202
+ - ✅ Image file reading
203
+ - ⚠️ Large file performance
204
+
205
+ **14. delete_note Tests (Enhanced):**
206
+ - ✅ Single note deletion
207
+ - ✅ Database consistency after deletion
208
+ - ⚠️ Non-existent note handling
209
+ - ✅ Confirmation of successful deletion
210
+
211
+ **15. list_directory Tests (Enhanced):**
212
+ - ✅ Directory content listing
213
+ - ✅ Depth control and filtering
214
+ - ✅ File name globbing
215
+ - ⚠️ Empty directory handling
216
+
217
+ **16. set_default_project Tests (Enhanced):**
218
+ - ✅ Change default project
219
+ - ✅ Configuration persistence
220
+ - ⚠️ Invalid project handling
221
+
222
+ **17. delete_project Tests (Enhanced):**
223
+ - ✅ Project removal from config
224
+ - ✅ Database cleanup
225
+ - ⚠️ Default project protection
226
+ - ⚠️ Non-existent project handling
227
+
228
+ ### Phase 4: Edge Case Exploration
229
+
230
+ **Boundary Testing:**
231
+ - Very long titles and content (stress limits)
232
+ - Empty projects and notes
233
+ - Unicode, emojis, special symbols
234
+ - Deeply nested folder structures
235
+ - Circular relations and self-references
236
+ - Maximum relation depths
237
+
238
+ **Error Scenarios:**
239
+ - Invalid memory:// URLs
240
+ - Missing files referenced in database
241
+ - Invalid project names and paths
242
+ - Malformed note structures
243
+ - Concurrent operation conflicts
244
+
245
+ **Performance Testing:**
246
+ - Create 100+ notes rapidly
247
+ - Complex search queries
248
+ - Deep relation chains (5+ levels)
249
+ - Rapid successive operations
250
+ - Memory usage monitoring
251
+
252
+ ### Phase 5: Real-World Workflow Scenarios
253
+
254
+ **Meeting Notes Pipeline:**
255
+ 1. Create meeting notes with action items
256
+ 2. Extract action items using edit_note
257
+ 3. Build relations to project documents
258
+ 4. Update progress incrementally
259
+ 5. Search and track completion
260
+
261
+ **Research Knowledge Building:**
262
+ 1. Create research topic hierarchy
263
+ 2. Build complex relation networks
264
+ 3. Add incremental findings over time
265
+ 4. Search for connections and patterns
266
+ 5. Reorganize as knowledge evolves
267
+
268
+ **Multi-Project Workflow:**
269
+ 1. Technical documentation project
270
+ 2. Personal recipe collection project
271
+ 3. Learning/course notes project
272
+ 4. Switch contexts during conversation
273
+ 5. Cross-reference related concepts
274
+
275
+ **Content Evolution:**
276
+ 1. Start with basic notes
277
+ 2. Enhance with relations and observations
278
+ 3. Reorganize file structure using moves
279
+ 4. Update content with edit operations
280
+ 5. Validate knowledge graph integrity
281
+
282
+ ### Phase 6: Specialized Tools Testing (Tier 4)
283
+
284
+ **18. canvas Tests (Specialized):**
285
+ - ✅ JSON Canvas generation
286
+ - ✅ Node and edge creation
287
+ - ✅ Obsidian compatibility
288
+ - ⚠️ Complex graph handling
289
+
290
+ **19. MCP Prompts Tests (Specialized):**
291
+ - ✅ ai_assistant_guide output
292
+ - ✅ continue_conversation functionality
293
+ - ✅ Formatted search results
294
+ - ✅ Enhanced activity reports
295
+
296
+ ### Phase 7: Integration & File Watching Tests
297
+
298
+ **File System Integration:**
299
+ - ✅ Watch service behavior with file changes
300
+ - ✅ Project creation → watch restart (#156)
301
+ - ✅ Multi-project synchronization
302
+ - ⚠️ MCP→API→DB→File stack validation
303
+
304
+ **Real Integration Testing:**
305
+ - ✅ End-to-end file watching vs manual operations
306
+ - ✅ Cross-session persistence
307
+ - ✅ Database consistency across operations
308
+ - ⚠️ Performance under real file system changes
309
+
310
+ ### Phase 8: Creative Stress Testing
311
+
312
+ **Creative Exploration:**
313
+ - Rapid project creation/switching patterns
314
+ - Unusual but valid markdown structures
315
+ - Creative observation categories
316
+ - Novel relation types and patterns
317
+ - Unexpected tool combinations
318
+
319
+ **Stress Scenarios:**
320
+ - Bulk operations (many notes quickly)
321
+ - Complex nested moves and edits
322
+ - Deep context building
323
+ - Complex boolean search expressions
324
+ - Resource constraint testing
325
+
326
+ ## Test Execution Guidelines
327
+
328
+ ### Quick Testing (core/features phases)
329
+ - Focus on Tier 1 tools (core) or Tier 1+2 (features)
330
+ - Test essential functionality and common edge cases
331
+ - Record critical issues immediately
332
+ - Complete in 15-20 minutes
333
+
334
+ ### Comprehensive Testing (all phase)
335
+ - Cover all tiers systematically
336
+ - Include specialized tools and stress testing
337
+ - Document performance baselines
338
+ - Complete in 45-60 minutes
339
+
340
+ ### Recent Changes Focus (recent phase)
341
+ - Analyze git log for recent commits
342
+ - Generate targeted test scenarios
343
+ - Focus on regression testing for fixes
344
+ - Validate new features thoroughly
345
+
346
+ ## Test Observation Format
347
+
348
+ Record ALL observations immediately as Basic Memory notes:
349
+
350
+ ```markdown
351
+ ---
352
+ title: Test Session [Phase] YYYY-MM-DD HH:MM
353
+ tags: [testing, v0.13.0, live-testing, [phase]]
354
+ permalink: test-session-[phase]-[timestamp]
355
+ ---
356
+
357
+ # Test Session [Phase] - [Date/Time]
358
+
359
+ ## Environment
360
+ - Basic Memory version: [version]
361
+ - MCP connection: [status]
362
+ - Test project: [name]
363
+ - Phase focus: [description]
364
+
365
+ ## Test Results
366
+
367
+ ### ✅ Successful Operations
368
+ - [timestamp] ✅ write_note: Created note with emoji title 📝 #tier1 #functionality
369
+ - [timestamp] ✅ search_notes: Boolean query returned 23 results in 0.4s #tier1 #performance
370
+ - [timestamp] ✅ edit_note: Append operation preserved frontmatter #tier1 #reliability
371
+
372
+ ### ⚠️ Issues Discovered
373
+ - [timestamp] ⚠️ move_note: Slow with deep folder paths (2.1s) #tier2 #performance
374
+ - [timestamp] 🚨 search_notes: Unicode query returned unexpected results #tier1 #bug #critical
375
+ - [timestamp] ⚠️ build_context: Context lost for memory:// URLs #tier2 #issue
376
+
377
+ ### 🚀 Enhancements Identified
378
+ - edit_note could benefit from preview mode #ux-improvement
379
+ - search_notes needs fuzzy matching for typos #feature-idea
380
+ - move_note could auto-suggest folder creation #usability
381
+
382
+ ### 📊 Performance Metrics
383
+ - Average write_note time: 0.3s
384
+ - Search with 100+ notes: 0.6s
385
+ - Project switch overhead: 0.1s
386
+ - Memory usage: [observed levels]
387
+
388
+ ## Relations
389
+ - tests [[Basic Memory v0.13.0]]
390
+ - part_of [[Live Testing Suite]]
391
+ - found_issues [[Bug Report: Unicode Search]]
392
+ - discovered [[Performance Optimization Opportunities]]
393
+ ```
394
+
395
+ ## Quality Assessment Areas
396
+
397
+ **User Experience & Usability:**
398
+ - Tool instruction clarity and examples
399
+ - Error message actionability
400
+ - Response time acceptability
401
+ - Tool consistency and discoverability
402
+ - Learning curve and intuitiveness
403
+
404
+ **System Behavior:**
405
+ - Context preservation across operations
406
+ - memory:// URL navigation reliability
407
+ - Multi-step workflow cohesion
408
+ - Edge case graceful handling
409
+ - Recovery from user errors
410
+
411
+ **Documentation Alignment:**
412
+ - Tool output clarity and helpfulness
413
+ - Behavior vs. documentation accuracy
414
+ - Example validity and usefulness
415
+ - Real-world vs. documented workflows
416
+
417
+ **Mental Model Validation:**
418
+ - Natural user expectation alignment
419
+ - Surprising behavior identification
420
+ - Mistake recovery ease
421
+ - Knowledge graph concept naturalness
422
+
423
+ **Performance & Reliability:**
424
+ - Operation completion times
425
+ - Consistency across sessions
426
+ - Scaling behavior with growth
427
+ - Unexpected slowness identification
428
+
429
+ ## Error Documentation Protocol
430
+
431
+ For each error discovered:
432
+
433
+ 1. **Immediate Recording**
434
+ - Create dedicated error note
435
+ - Include exact reproduction steps
436
+ - Capture error messages verbatim
437
+ - Note system state when error occurred
438
+
439
+ 2. **Error Note Format**
440
+ ```markdown
441
+ ---
442
+ title: Bug Report - [Short Description]
443
+ tags: [bug, testing, v0.13.0, [severity]]
444
+ ---
445
+
446
+ # Bug Report: [Description]
447
+
448
+ ## Reproduction Steps
449
+ 1. [Exact steps to reproduce]
450
+ 2. [Include all parameters used]
451
+ 3. [Note any special conditions]
452
+
453
+ ## Expected Behavior
454
+ [What should have happened]
455
+
456
+ ## Actual Behavior
457
+ [What actually happened]
458
+
459
+ ## Error Messages
460
+ ```
461
+ [Exact error text]
462
+ ```
463
+
464
+ ## Environment
465
+ - Version: [version]
466
+ - Project: [name]
467
+ - Timestamp: [when]
468
+
469
+ ## Severity
470
+ - [ ] Critical (blocks major functionality)
471
+ - [ ] High (impacts user experience)
472
+ - [ ] Medium (workaround available)
473
+ - [ ] Low (minor inconvenience)
474
+
475
+ ## Relations
476
+ - discovered_during [[Test Session [Phase]]]
477
+ - affects [[Feature Name]]
478
+ ```
479
+
480
+ ## Success Metrics Tracking
481
+
482
+ **Quantitative Measures:**
483
+ - Test scenario completion rate
484
+ - Bug discovery count with severity
485
+ - Performance benchmark establishment
486
+ - Tool coverage completeness
487
+
488
+ **Qualitative Measures:**
489
+ - Conversation flow naturalness
490
+ - Knowledge graph quality
491
+ - User experience insights
492
+ - System reliability assessment
493
+
494
+ ## Test Execution Flow
495
+
496
+ 1. **Setup Phase** (5 minutes)
497
+ - Verify environment and create test project
498
+ - Record baseline system state
499
+ - Establish performance benchmarks
500
+
501
+ 2. **Core Testing** (15-20 minutes per phase)
502
+ - Execute test scenarios systematically
503
+ - Record observations immediately
504
+ - Note timestamps for performance tracking
505
+ - Explore variations when interesting behaviors occur
506
+
507
+ 3. **Documentation** (5 minutes per phase)
508
+ - Create phase summary note
509
+ - Link related test observations
510
+ - Update running issues list
511
+ - Record enhancement ideas
512
+
513
+ 4. **Analysis Phase** (10 minutes)
514
+ - Review all observations across phases
515
+ - Identify patterns and trends
516
+ - Create comprehensive summary report
517
+ - Generate development recommendations
518
+
519
+ ## Testing Success Criteria
520
+
521
+ ### Core Testing (Tier 1) - Must Pass
522
+ - All 6 critical tools function correctly
523
+ - No critical bugs in essential workflows
524
+ - Acceptable performance for basic operations
525
+ - Error handling works as expected
526
+
527
+ ### Feature Testing (Tier 1+2) - Should Pass
528
+ - All 11 core + important tools function
529
+ - Workflow scenarios complete successfully
530
+ - Performance meets baseline expectations
531
+ - Integration points work correctly
532
+
533
+ ### Comprehensive Testing (All Tiers) - Complete Coverage
534
+ - All tools tested across all scenarios
535
+ - Edge cases and stress testing completed
536
+ - Performance baselines established
537
+ - Full documentation of issues and enhancements
538
+
539
+ ## Expected Outcomes
540
+
541
+ **System Validation:**
542
+ - Feature verification prioritized by tier importance
543
+ - Recent changes validated for regression
544
+ - Performance baseline establishment
545
+ - Bug identification with severity assessment
546
+
547
+ **Knowledge Base Creation:**
548
+ - Prioritized testing documentation
549
+ - Real usage examples for user guides
550
+ - Recent changes validation records
551
+ - Performance insights for optimization
552
+
553
+ **Development Insights:**
554
+ - Tier-based bug priority list
555
+ - Recent changes impact assessment
556
+ - Enhancement ideas from real usage
557
+ - User experience improvement areas
558
+
559
+ ## Post-Test Deliverables
560
+
561
+ 1. **Test Summary Note**
562
+ - Overall results and findings
563
+ - Critical issues requiring immediate attention
564
+ - Enhancement opportunities discovered
565
+ - System readiness assessment
566
+
567
+ 2. **Bug Report Collection**
568
+ - All discovered issues with reproduction steps
569
+ - Severity and impact assessments
570
+ - Suggested fixes where applicable
571
+
572
+ 3. **Performance Baseline**
573
+ - Timing data for all operations
574
+ - Scaling behavior observations
575
+ - Resource usage patterns
576
+
577
+ 4. **UX Improvement Recommendations**
578
+ - Usability enhancement suggestions
579
+ - Documentation improvement areas
580
+ - Tool design optimization ideas
581
+
582
+ 5. **Updated TESTING.md**
583
+ - Incorporate new test scenarios discovered
584
+ - Update based on real execution experience
585
+ - Add performance benchmarks and targets
586
+
587
+ ## Context
588
+ - Uses real installed basic-memory version
589
+ - Tests complete MCP→API→DB→File stack
590
+ - Creates living documentation in Basic Memory itself
591
+ - Follows integration over isolation philosophy
592
+ - Prioritizes testing by tool importance and usage frequency
593
+ - Adapts to recent development changes dynamically
594
+ - Focuses on real usage patterns over checklist validation
595
+ - Generates actionable insights prioritized by impact
@@ -111,4 +111,4 @@ jobs:
111
111
  uses: anthropics/claude-code-action@beta
112
112
  with:
113
113
  anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
114
- allowed_tools: Bash(uv run pytest),Bash(uv run ruff check . --fix),Bash(uv run ruff format .),Bash(uv run pyright),Bash(just test),Bash(just lint),Bash(just format),Bash(just type-check),Bash(just check),Read,Write,Edit,MultiEdit,Glob,Grep,LS
114
+ allowed_tools: Bash(uv run pytest),Bash(uv run ruff check . --fix),Bash(uv run ruff format .),Bash(uv run pyright),Bash(just test),Bash(just lint),Bash(just format),Bash(just type-check),Bash(just check),Read,Write,Edit,MultiEdit,Glob,Grep,LS, mcp__web_search
@@ -57,6 +57,8 @@ jobs:
57
57
  name: Update Homebrew Formula
58
58
  needs: release
59
59
  runs-on: ubuntu-latest
60
+ # Only run for stable releases (not dev, beta, or rc versions)
61
+ if: ${{ !contains(github.ref_name, 'dev') && !contains(github.ref_name, 'b') && !contains(github.ref_name, 'rc') }}
60
62
  permissions:
61
63
  contents: write
62
64
  actions: read
@@ -80,3 +82,4 @@ jobs:
80
82
  env:
81
83
  # Personal Access Token with repo scope for homebrew-basic-memory repo
82
84
  COMMITTER_TOKEN: ${{ secrets.HOMEBREW_TOKEN }}
85
+