basic-memory 0.2.11__tar.gz → 0.17.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 (473) hide show
  1. basic_memory-0.17.0/.claude/commands/release/beta.md +95 -0
  2. basic_memory-0.17.0/.claude/commands/release/changelog.md +160 -0
  3. basic_memory-0.17.0/.claude/commands/release/release-check.md +131 -0
  4. basic_memory-0.17.0/.claude/commands/release/release.md +169 -0
  5. basic_memory-0.17.0/.claude/commands/spec.md +51 -0
  6. basic_memory-0.17.0/.claude/commands/test-live.md +622 -0
  7. basic_memory-0.17.0/.claude/settings.json +5 -0
  8. basic_memory-0.17.0/.dockerignore +60 -0
  9. basic_memory-0.17.0/.env.example +28 -0
  10. basic_memory-0.17.0/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  11. basic_memory-0.17.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  12. basic_memory-0.17.0/.github/ISSUE_TEMPLATE/documentation.md +19 -0
  13. basic_memory-0.17.0/.github/ISSUE_TEMPLATE/feature_request.md +28 -0
  14. basic_memory-0.17.0/.github/dependabot.yml +12 -0
  15. basic_memory-0.17.0/.github/workflows/claude-code-review.yml +82 -0
  16. basic_memory-0.17.0/.github/workflows/claude-issue-triage.yml +71 -0
  17. basic_memory-0.17.0/.github/workflows/claude.yml +68 -0
  18. basic_memory-0.17.0/.github/workflows/dev-release.yml +53 -0
  19. basic_memory-0.17.0/.github/workflows/docker.yml +61 -0
  20. basic_memory-0.17.0/.github/workflows/release.yml +85 -0
  21. basic_memory-0.17.0/.github/workflows/test.yml +113 -0
  22. {basic_memory-0.2.11 → basic_memory-0.17.0}/.gitignore +12 -0
  23. basic_memory-0.17.0/CHANGELOG.md +2216 -0
  24. basic_memory-0.17.0/CLA.md +71 -0
  25. basic_memory-0.17.0/CLAUDE.md +345 -0
  26. basic_memory-0.17.0/CONTRIBUTING.md +277 -0
  27. basic_memory-0.17.0/Dockerfile +46 -0
  28. basic_memory-0.17.0/PKG-INFO +617 -0
  29. basic_memory-0.17.0/README.md +571 -0
  30. basic_memory-0.17.0/SECURITY.md +13 -0
  31. basic_memory-0.17.0/docker-compose-postgres.yml +42 -0
  32. basic_memory-0.17.0/docker-compose.yml +83 -0
  33. basic_memory-0.17.0/docs/Docker.md +365 -0
  34. basic_memory-0.17.0/docs/ai-assistant-guide-extended.md +3240 -0
  35. basic_memory-0.17.0/docs/character-handling.md +241 -0
  36. basic_memory-0.17.0/docs/cloud-cli.md +726 -0
  37. basic_memory-0.17.0/justfile +271 -0
  38. basic_memory-0.17.0/llms-install.md +128 -0
  39. basic_memory-0.17.0/pyproject.toml +143 -0
  40. basic_memory-0.17.0/smithery.yaml +15 -0
  41. basic_memory-0.17.0/specs/SPEC-1 Specification-Driven Development Process.md +156 -0
  42. basic_memory-0.17.0/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +569 -0
  43. basic_memory-0.17.0/specs/SPEC-11 Basic Memory API Performance Optimization.md +186 -0
  44. basic_memory-0.17.0/specs/SPEC-12 OpenTelemetry Observability.md +182 -0
  45. basic_memory-0.17.0/specs/SPEC-13 CLI Authentication with Subscription Validation.md +917 -0
  46. basic_memory-0.17.0/specs/SPEC-14 Cloud Git Versioning & GitHub Backup.md +210 -0
  47. basic_memory-0.17.0/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +210 -0
  48. basic_memory-0.17.0/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +273 -0
  49. basic_memory-0.17.0/specs/SPEC-16 MCP Cloud Service Consolidation.md +800 -0
  50. basic_memory-0.17.0/specs/SPEC-17 Semantic Search with ChromaDB.md +1439 -0
  51. basic_memory-0.17.0/specs/SPEC-18 AI Memory Management Tool.md +528 -0
  52. basic_memory-0.17.0/specs/SPEC-19 Sync Performance and Memory Optimization.md +1046 -0
  53. basic_memory-0.17.0/specs/SPEC-2 Slash Commands Reference.md +120 -0
  54. basic_memory-0.17.0/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +1216 -0
  55. basic_memory-0.17.0/specs/SPEC-3 Agent Definitions.md +108 -0
  56. basic_memory-0.17.0/specs/SPEC-4 Notes Web UI Component Architecture.md +311 -0
  57. basic_memory-0.17.0/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +201 -0
  58. basic_memory-0.17.0/specs/SPEC-6 Explicit Project Parameter Architecture.md +497 -0
  59. basic_memory-0.17.0/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +324 -0
  60. basic_memory-0.17.0/specs/SPEC-8 TigrisFS Integration.md +886 -0
  61. basic_memory-0.17.0/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +1114 -0
  62. basic_memory-0.17.0/specs/SPEC-9 Signed Header Tenant Information.md +196 -0
  63. basic_memory-0.17.0/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +390 -0
  64. basic_memory-0.17.0/src/basic_memory/__init__.py +7 -0
  65. {basic_memory-0.2.11 → basic_memory-0.17.0/src/basic_memory/alembic}/alembic.ini +1 -1
  66. basic_memory-0.17.0/src/basic_memory/alembic/env.py +181 -0
  67. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/migrations.py +4 -9
  68. basic_memory-0.17.0/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +131 -0
  69. basic_memory-0.17.0/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +51 -0
  70. basic_memory-0.17.0/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +120 -0
  71. basic_memory-0.17.0/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +112 -0
  72. basic_memory-0.17.0/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +49 -0
  73. basic_memory-0.17.0/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +49 -0
  74. basic_memory-0.17.0/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +56 -0
  75. basic_memory-0.17.0/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +44 -0
  76. basic_memory-0.17.0/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +113 -0
  77. basic_memory-0.17.0/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +37 -0
  78. basic_memory-0.17.0/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +239 -0
  79. basic_memory-0.17.0/src/basic_memory/api/app.py +131 -0
  80. basic_memory-0.17.0/src/basic_memory/api/routers/__init__.py +11 -0
  81. basic_memory-0.17.0/src/basic_memory/api/routers/directory_router.py +84 -0
  82. basic_memory-0.17.0/src/basic_memory/api/routers/importer_router.py +152 -0
  83. basic_memory-0.17.0/src/basic_memory/api/routers/knowledge_router.py +318 -0
  84. basic_memory-0.17.0/src/basic_memory/api/routers/management_router.py +80 -0
  85. basic_memory-0.17.0/src/basic_memory/api/routers/memory_router.py +90 -0
  86. basic_memory-0.17.0/src/basic_memory/api/routers/project_router.py +448 -0
  87. basic_memory-0.17.0/src/basic_memory/api/routers/prompt_router.py +260 -0
  88. basic_memory-0.17.0/src/basic_memory/api/routers/resource_router.py +249 -0
  89. basic_memory-0.17.0/src/basic_memory/api/routers/search_router.py +36 -0
  90. basic_memory-0.17.0/src/basic_memory/api/routers/utils.py +169 -0
  91. basic_memory-0.17.0/src/basic_memory/api/template_loader.py +292 -0
  92. basic_memory-0.17.0/src/basic_memory/api/v2/__init__.py +35 -0
  93. basic_memory-0.17.0/src/basic_memory/api/v2/routers/__init__.py +21 -0
  94. basic_memory-0.17.0/src/basic_memory/api/v2/routers/directory_router.py +93 -0
  95. basic_memory-0.17.0/src/basic_memory/api/v2/routers/importer_router.py +182 -0
  96. basic_memory-0.17.0/src/basic_memory/api/v2/routers/knowledge_router.py +413 -0
  97. basic_memory-0.17.0/src/basic_memory/api/v2/routers/memory_router.py +130 -0
  98. basic_memory-0.17.0/src/basic_memory/api/v2/routers/project_router.py +342 -0
  99. basic_memory-0.17.0/src/basic_memory/api/v2/routers/prompt_router.py +270 -0
  100. basic_memory-0.17.0/src/basic_memory/api/v2/routers/resource_router.py +286 -0
  101. basic_memory-0.17.0/src/basic_memory/api/v2/routers/search_router.py +73 -0
  102. basic_memory-0.17.0/src/basic_memory/cli/app.py +84 -0
  103. basic_memory-0.17.0/src/basic_memory/cli/auth.py +277 -0
  104. basic_memory-0.17.0/src/basic_memory/cli/commands/__init__.py +18 -0
  105. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/__init__.py +6 -0
  106. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/api_client.py +112 -0
  107. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/bisync_commands.py +110 -0
  108. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/cloud_utils.py +101 -0
  109. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/core_commands.py +195 -0
  110. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_commands.py +371 -0
  111. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_config.py +110 -0
  112. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/rclone_installer.py +263 -0
  113. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/upload.py +233 -0
  114. basic_memory-0.17.0/src/basic_memory/cli/commands/cloud/upload_command.py +124 -0
  115. basic_memory-0.17.0/src/basic_memory/cli/commands/command_utils.py +77 -0
  116. basic_memory-0.17.0/src/basic_memory/cli/commands/db.py +44 -0
  117. basic_memory-0.17.0/src/basic_memory/cli/commands/format.py +198 -0
  118. basic_memory-0.17.0/src/basic_memory/cli/commands/import_chatgpt.py +84 -0
  119. basic_memory-0.17.0/src/basic_memory/cli/commands/import_claude_conversations.py +87 -0
  120. basic_memory-0.17.0/src/basic_memory/cli/commands/import_claude_projects.py +86 -0
  121. basic_memory-0.17.0/src/basic_memory/cli/commands/import_memory_json.py +87 -0
  122. basic_memory-0.17.0/src/basic_memory/cli/commands/mcp.py +76 -0
  123. basic_memory-0.17.0/src/basic_memory/cli/commands/project.py +889 -0
  124. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/cli/commands/status.py +49 -31
  125. basic_memory-0.17.0/src/basic_memory/cli/commands/telemetry.py +81 -0
  126. basic_memory-0.17.0/src/basic_memory/cli/commands/tool.py +341 -0
  127. basic_memory-0.17.0/src/basic_memory/cli/main.py +28 -0
  128. basic_memory-0.17.0/src/basic_memory/config.py +616 -0
  129. basic_memory-0.17.0/src/basic_memory/db.py +394 -0
  130. basic_memory-0.17.0/src/basic_memory/deps.py +705 -0
  131. basic_memory-0.17.0/src/basic_memory/file_utils.py +478 -0
  132. basic_memory-0.17.0/src/basic_memory/ignore_utils.py +297 -0
  133. basic_memory-0.17.0/src/basic_memory/importers/__init__.py +27 -0
  134. basic_memory-0.17.0/src/basic_memory/importers/base.py +79 -0
  135. basic_memory-0.17.0/src/basic_memory/importers/chatgpt_importer.py +232 -0
  136. basic_memory-0.17.0/src/basic_memory/importers/claude_conversations_importer.py +180 -0
  137. basic_memory-0.17.0/src/basic_memory/importers/claude_projects_importer.py +148 -0
  138. basic_memory-0.17.0/src/basic_memory/importers/memory_json_importer.py +108 -0
  139. basic_memory-0.17.0/src/basic_memory/importers/utils.py +61 -0
  140. basic_memory-0.17.0/src/basic_memory/markdown/entity_parser.py +279 -0
  141. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/markdown_processor.py +26 -7
  142. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/plugins.py +43 -23
  143. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/schemas.py +1 -1
  144. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/utils.py +38 -14
  145. basic_memory-0.17.0/src/basic_memory/mcp/async_client.py +139 -0
  146. basic_memory-0.17.0/src/basic_memory/mcp/project_context.py +141 -0
  147. basic_memory-0.17.0/src/basic_memory/mcp/prompts/__init__.py +19 -0
  148. basic_memory-0.17.0/src/basic_memory/mcp/prompts/ai_assistant_guide.py +70 -0
  149. basic_memory-0.17.0/src/basic_memory/mcp/prompts/continue_conversation.py +62 -0
  150. basic_memory-0.17.0/src/basic_memory/mcp/prompts/recent_activity.py +188 -0
  151. basic_memory-0.17.0/src/basic_memory/mcp/prompts/search.py +57 -0
  152. basic_memory-0.17.0/src/basic_memory/mcp/prompts/utils.py +162 -0
  153. basic_memory-0.17.0/src/basic_memory/mcp/resources/ai_assistant_guide.md +283 -0
  154. basic_memory-0.17.0/src/basic_memory/mcp/resources/project_info.py +71 -0
  155. basic_memory-0.17.0/src/basic_memory/mcp/server.py +81 -0
  156. basic_memory-0.17.0/src/basic_memory/mcp/tools/__init__.py +48 -0
  157. basic_memory-0.17.0/src/basic_memory/mcp/tools/build_context.py +120 -0
  158. basic_memory-0.17.0/src/basic_memory/mcp/tools/canvas.py +152 -0
  159. basic_memory-0.17.0/src/basic_memory/mcp/tools/chatgpt_tools.py +190 -0
  160. basic_memory-0.17.0/src/basic_memory/mcp/tools/delete_note.py +242 -0
  161. basic_memory-0.17.0/src/basic_memory/mcp/tools/edit_note.py +324 -0
  162. basic_memory-0.17.0/src/basic_memory/mcp/tools/list_directory.py +168 -0
  163. basic_memory-0.17.0/src/basic_memory/mcp/tools/move_note.py +551 -0
  164. basic_memory-0.17.0/src/basic_memory/mcp/tools/project_management.py +201 -0
  165. basic_memory-0.17.0/src/basic_memory/mcp/tools/read_content.py +281 -0
  166. basic_memory-0.17.0/src/basic_memory/mcp/tools/read_note.py +267 -0
  167. basic_memory-0.17.0/src/basic_memory/mcp/tools/recent_activity.py +534 -0
  168. basic_memory-0.17.0/src/basic_memory/mcp/tools/search.py +385 -0
  169. basic_memory-0.17.0/src/basic_memory/mcp/tools/utils.py +540 -0
  170. basic_memory-0.17.0/src/basic_memory/mcp/tools/view_note.py +78 -0
  171. basic_memory-0.17.0/src/basic_memory/mcp/tools/write_note.py +230 -0
  172. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/__init__.py +3 -2
  173. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/knowledge.py +76 -17
  174. basic_memory-0.17.0/src/basic_memory/models/project.py +87 -0
  175. basic_memory-0.17.0/src/basic_memory/models/search.py +85 -0
  176. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/__init__.py +2 -0
  177. basic_memory-0.17.0/src/basic_memory/repository/entity_repository.py +503 -0
  178. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/observation_repository.py +36 -3
  179. basic_memory-0.17.0/src/basic_memory/repository/postgres_search_repository.py +379 -0
  180. basic_memory-0.17.0/src/basic_memory/repository/project_info_repository.py +10 -0
  181. basic_memory-0.17.0/src/basic_memory/repository/project_repository.py +128 -0
  182. basic_memory-0.17.0/src/basic_memory/repository/relation_repository.py +146 -0
  183. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/repository/repository.py +148 -29
  184. basic_memory-0.17.0/src/basic_memory/repository/search_index_row.py +95 -0
  185. basic_memory-0.17.0/src/basic_memory/repository/search_repository.py +94 -0
  186. basic_memory-0.17.0/src/basic_memory/repository/search_repository_base.py +241 -0
  187. basic_memory-0.17.0/src/basic_memory/repository/sqlite_search_repository.py +439 -0
  188. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/__init__.py +22 -9
  189. basic_memory-0.17.0/src/basic_memory/schemas/base.py +297 -0
  190. basic_memory-0.17.0/src/basic_memory/schemas/cloud.py +50 -0
  191. basic_memory-0.17.0/src/basic_memory/schemas/directory.py +30 -0
  192. basic_memory-0.17.0/src/basic_memory/schemas/importer.py +35 -0
  193. basic_memory-0.17.0/src/basic_memory/schemas/memory.py +285 -0
  194. basic_memory-0.17.0/src/basic_memory/schemas/project_info.py +212 -0
  195. basic_memory-0.17.0/src/basic_memory/schemas/prompt.py +90 -0
  196. basic_memory-0.17.0/src/basic_memory/schemas/request.py +112 -0
  197. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/response.py +9 -1
  198. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/search.py +38 -35
  199. basic_memory-0.17.0/src/basic_memory/schemas/sync_report.py +72 -0
  200. basic_memory-0.17.0/src/basic_memory/schemas/v2/__init__.py +27 -0
  201. basic_memory-0.17.0/src/basic_memory/schemas/v2/entity.py +129 -0
  202. basic_memory-0.17.0/src/basic_memory/schemas/v2/resource.py +46 -0
  203. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/__init__.py +2 -1
  204. basic_memory-0.17.0/src/basic_memory/services/context_service.py +601 -0
  205. basic_memory-0.17.0/src/basic_memory/services/directory_service.py +308 -0
  206. basic_memory-0.17.0/src/basic_memory/services/entity_service.py +864 -0
  207. basic_memory-0.17.0/src/basic_memory/services/exceptions.py +37 -0
  208. basic_memory-0.17.0/src/basic_memory/services/file_service.py +541 -0
  209. basic_memory-0.17.0/src/basic_memory/services/initialization.py +216 -0
  210. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/link_resolver.py +51 -56
  211. basic_memory-0.17.0/src/basic_memory/services/project_service.py +880 -0
  212. basic_memory-0.17.0/src/basic_memory/services/search_service.py +404 -0
  213. basic_memory-0.17.0/src/basic_memory/sync/__init__.py +6 -0
  214. basic_memory-0.17.0/src/basic_memory/sync/background_sync.py +26 -0
  215. basic_memory-0.17.0/src/basic_memory/sync/sync_service.py +1259 -0
  216. basic_memory-0.17.0/src/basic_memory/sync/watch_service.py +510 -0
  217. basic_memory-0.17.0/src/basic_memory/telemetry.py +249 -0
  218. basic_memory-0.17.0/src/basic_memory/templates/prompts/continue_conversation.hbs +110 -0
  219. basic_memory-0.17.0/src/basic_memory/templates/prompts/search.hbs +101 -0
  220. basic_memory-0.17.0/src/basic_memory/utils.py +468 -0
  221. basic_memory-0.17.0/test-int/BENCHMARKS.md +139 -0
  222. basic_memory-0.17.0/test-int/cli/test_project_commands_integration.py +165 -0
  223. basic_memory-0.17.0/test-int/cli/test_version_integration.py +15 -0
  224. basic_memory-0.17.0/test-int/conftest.py +349 -0
  225. basic_memory-0.17.0/test-int/mcp/test_build_context_underscore.py +171 -0
  226. basic_memory-0.17.0/test-int/mcp/test_build_context_validation.py +188 -0
  227. basic_memory-0.17.0/test-int/mcp/test_chatgpt_tools_integration.py +455 -0
  228. basic_memory-0.17.0/test-int/mcp/test_default_project_mode_integration.py +367 -0
  229. basic_memory-0.17.0/test-int/mcp/test_delete_note_integration.py +455 -0
  230. basic_memory-0.17.0/test-int/mcp/test_edit_note_integration.py +639 -0
  231. basic_memory-0.17.0/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +68 -0
  232. basic_memory-0.17.0/test-int/mcp/test_list_directory_integration.py +578 -0
  233. basic_memory-0.17.0/test-int/mcp/test_move_note_integration.py +641 -0
  234. basic_memory-0.17.0/test-int/mcp/test_project_management_integration.py +580 -0
  235. basic_memory-0.17.0/test-int/mcp/test_project_state_sync_integration.py +82 -0
  236. basic_memory-0.17.0/test-int/mcp/test_read_content_integration.py +384 -0
  237. basic_memory-0.17.0/test-int/mcp/test_read_note_integration.py +102 -0
  238. basic_memory-0.17.0/test-int/mcp/test_search_integration.py +501 -0
  239. basic_memory-0.17.0/test-int/mcp/test_single_project_mcp_integration.py +340 -0
  240. basic_memory-0.17.0/test-int/mcp/test_write_note_integration.py +474 -0
  241. basic_memory-0.17.0/test-int/test_db_wal_mode.py +166 -0
  242. basic_memory-0.17.0/test-int/test_disable_permalinks_integration.py +156 -0
  243. basic_memory-0.17.0/tests/Non-MarkdownFileSupport.pdf +0 -0
  244. basic_memory-0.17.0/tests/README.md +172 -0
  245. basic_memory-0.17.0/tests/Screenshot.png +0 -0
  246. basic_memory-0.17.0/tests/__init__.py +4 -0
  247. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/api/conftest.py +17 -3
  248. basic_memory-0.17.0/tests/api/test_async_client.py +56 -0
  249. basic_memory-0.17.0/tests/api/test_continue_conversation_template.py +145 -0
  250. basic_memory-0.17.0/tests/api/test_directory_router.py +412 -0
  251. basic_memory-0.17.0/tests/api/test_importer_router.py +465 -0
  252. basic_memory-0.17.0/tests/api/test_knowledge_router.py +1325 -0
  253. basic_memory-0.17.0/tests/api/test_management_router.py +211 -0
  254. basic_memory-0.17.0/tests/api/test_memory_router.py +146 -0
  255. basic_memory-0.17.0/tests/api/test_project_router.py +841 -0
  256. basic_memory-0.17.0/tests/api/test_project_router_operations.py +55 -0
  257. basic_memory-0.17.0/tests/api/test_prompt_router.py +155 -0
  258. basic_memory-0.17.0/tests/api/test_relation_background_resolution.py +40 -0
  259. basic_memory-0.17.0/tests/api/test_resource_router.py +454 -0
  260. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/api/test_search_router.py +46 -44
  261. basic_memory-0.17.0/tests/api/test_search_template.py +158 -0
  262. basic_memory-0.17.0/tests/api/test_template_loader.py +219 -0
  263. basic_memory-0.17.0/tests/api/test_template_loader_helpers.py +203 -0
  264. basic_memory-0.17.0/tests/api/v2/__init__.py +1 -0
  265. basic_memory-0.17.0/tests/api/v2/conftest.py +21 -0
  266. basic_memory-0.17.0/tests/api/v2/test_directory_router.py +129 -0
  267. basic_memory-0.17.0/tests/api/v2/test_importer_router.py +530 -0
  268. basic_memory-0.17.0/tests/api/v2/test_knowledge_router.py +407 -0
  269. basic_memory-0.17.0/tests/api/v2/test_memory_router.py +301 -0
  270. basic_memory-0.17.0/tests/api/v2/test_project_router.py +334 -0
  271. basic_memory-0.17.0/tests/api/v2/test_prompt_router.py +212 -0
  272. basic_memory-0.17.0/tests/api/v2/test_resource_router.py +267 -0
  273. basic_memory-0.17.0/tests/api/v2/test_search_router.py +289 -0
  274. basic_memory-0.17.0/tests/cli/conftest.py +58 -0
  275. basic_memory-0.17.0/tests/cli/test_cli_exit.py +48 -0
  276. basic_memory-0.17.0/tests/cli/test_cli_tool_exit.py +85 -0
  277. basic_memory-0.17.0/tests/cli/test_cli_tools.py +497 -0
  278. basic_memory-0.17.0/tests/cli/test_cloud_authentication.py +239 -0
  279. basic_memory-0.17.0/tests/cli/test_ignore_utils.py +315 -0
  280. basic_memory-0.17.0/tests/cli/test_import_chatgpt.py +199 -0
  281. basic_memory-0.17.0/tests/cli/test_import_claude_conversations.py +203 -0
  282. basic_memory-0.17.0/tests/cli/test_import_claude_projects.py +142 -0
  283. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/cli/test_import_memory_json.py +50 -29
  284. basic_memory-0.17.0/tests/cli/test_project_add_with_local_path.py +155 -0
  285. basic_memory-0.17.0/tests/cli/test_upload.py +512 -0
  286. basic_memory-0.17.0/tests/conftest.py +603 -0
  287. basic_memory-0.17.0/tests/db/test_issue_254_foreign_key_constraints.py +170 -0
  288. basic_memory-0.17.0/tests/importers/test_conversation_indexing.py +114 -0
  289. basic_memory-0.17.0/tests/importers/test_importer_base.py +130 -0
  290. basic_memory-0.17.0/tests/importers/test_importer_utils.py +60 -0
  291. basic_memory-0.17.0/tests/markdown/test_date_frontmatter_parsing.py +236 -0
  292. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_entity_parser.py +48 -14
  293. basic_memory-0.17.0/tests/markdown/test_entity_parser_error_handling.py +293 -0
  294. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_markdown_plugins.py +86 -2
  295. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_markdown_processor.py +5 -5
  296. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_parser_edge_cases.py +1 -1
  297. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/mcp/conftest.py +11 -9
  298. basic_memory-0.17.0/tests/mcp/test_obsidian_yaml_formatting.py +189 -0
  299. basic_memory-0.17.0/tests/mcp/test_permalink_collision_file_overwrite.py +385 -0
  300. basic_memory-0.17.0/tests/mcp/test_prompts.py +181 -0
  301. basic_memory-0.17.0/tests/mcp/test_resources.py +19 -0
  302. basic_memory-0.17.0/tests/mcp/test_tool_build_context.py +144 -0
  303. basic_memory-0.17.0/tests/mcp/test_tool_canvas.py +287 -0
  304. basic_memory-0.17.0/tests/mcp/test_tool_delete_note.py +98 -0
  305. basic_memory-0.17.0/tests/mcp/test_tool_edit_note.py +458 -0
  306. basic_memory-0.17.0/tests/mcp/test_tool_list_directory.py +223 -0
  307. basic_memory-0.17.0/tests/mcp/test_tool_move_note.py +953 -0
  308. basic_memory-0.17.0/tests/mcp/test_tool_read_content.py +495 -0
  309. basic_memory-0.17.0/tests/mcp/test_tool_read_note.py +467 -0
  310. basic_memory-0.17.0/tests/mcp/test_tool_recent_activity.py +135 -0
  311. basic_memory-0.17.0/tests/mcp/test_tool_resource.py +227 -0
  312. basic_memory-0.17.0/tests/mcp/test_tool_search.py +317 -0
  313. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/mcp/test_tool_utils.py +52 -8
  314. basic_memory-0.17.0/tests/mcp/test_tool_view_note.py +288 -0
  315. basic_memory-0.17.0/tests/mcp/test_tool_write_note.py +1138 -0
  316. basic_memory-0.17.0/tests/mcp/test_tool_write_note_kebab_filenames.py +392 -0
  317. basic_memory-0.17.0/tests/mcp/tools/test_chatgpt_tools.py +228 -0
  318. basic_memory-0.17.0/tests/repository/test_entity_repository.py +1054 -0
  319. basic_memory-0.17.0/tests/repository/test_entity_repository_upsert.py +468 -0
  320. basic_memory-0.17.0/tests/repository/test_entity_upsert_issue_187.py +135 -0
  321. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_observation_repository.py +132 -8
  322. basic_memory-0.17.0/tests/repository/test_project_info_repository.py +36 -0
  323. basic_memory-0.17.0/tests/repository/test_project_repository.py +297 -0
  324. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_relation_repository.py +162 -5
  325. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/repository/test_repository.py +8 -4
  326. basic_memory-0.17.0/tests/repository/test_search_repository.py +686 -0
  327. basic_memory-0.17.0/tests/repository/test_search_repository_edit_bug_fix.py +271 -0
  328. basic_memory-0.17.0/tests/schemas/test_base_timeframe_minimum.py +104 -0
  329. basic_memory-0.17.0/tests/schemas/test_memory_serialization.py +258 -0
  330. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/schemas/test_memory_url.py +21 -1
  331. basic_memory-0.17.0/tests/schemas/test_memory_url_validation.py +274 -0
  332. basic_memory-0.17.0/tests/schemas/test_schemas.py +510 -0
  333. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/schemas/test_search.py +20 -27
  334. basic_memory-0.17.0/tests/services/test_context_service.py +335 -0
  335. basic_memory-0.17.0/tests/services/test_directory_service.py +258 -0
  336. basic_memory-0.17.0/tests/services/test_entity_service.py +1941 -0
  337. basic_memory-0.17.0/tests/services/test_entity_service_disable_permalinks.py +220 -0
  338. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/services/test_file_service.py +74 -0
  339. basic_memory-0.17.0/tests/services/test_initialization.py +122 -0
  340. basic_memory-0.17.0/tests/services/test_link_resolver.py +359 -0
  341. basic_memory-0.17.0/tests/services/test_project_removal_bug.py +138 -0
  342. basic_memory-0.17.0/tests/services/test_project_service.py +1358 -0
  343. basic_memory-0.17.0/tests/services/test_project_service_operations.py +111 -0
  344. basic_memory-0.17.0/tests/services/test_search_service.py +936 -0
  345. basic_memory-0.17.0/tests/sync/test_character_conflicts.py +343 -0
  346. basic_memory-0.17.0/tests/sync/test_sync_service.py +2119 -0
  347. basic_memory-0.17.0/tests/sync/test_sync_service_incremental.py +790 -0
  348. basic_memory-0.17.0/tests/sync/test_sync_wikilink_issue.py +83 -0
  349. basic_memory-0.17.0/tests/sync/test_tmp_files.py +162 -0
  350. basic_memory-0.17.0/tests/sync/test_watch_service.py +529 -0
  351. basic_memory-0.17.0/tests/sync/test_watch_service_edge_cases.py +281 -0
  352. basic_memory-0.17.0/tests/sync/test_watch_service_reload.py +252 -0
  353. basic_memory-0.17.0/tests/test_config.py +598 -0
  354. basic_memory-0.17.0/tests/test_deps.py +206 -0
  355. basic_memory-0.17.0/tests/test_production_cascade_delete.py +353 -0
  356. basic_memory-0.17.0/tests/test_rclone_commands.py +647 -0
  357. basic_memory-0.17.0/tests/test_telemetry.py +276 -0
  358. basic_memory-0.17.0/tests/utils/test_file_utils.py +550 -0
  359. basic_memory-0.17.0/tests/utils/test_frontmatter_obsidian_compatible.py +280 -0
  360. basic_memory-0.17.0/tests/utils/test_parse_tags.py +68 -0
  361. basic_memory-0.17.0/tests/utils/test_permalink_formatting.py +123 -0
  362. basic_memory-0.17.0/tests/utils/test_timezone_utils.py +96 -0
  363. basic_memory-0.17.0/tests/utils/test_utf8_handling.py +197 -0
  364. basic_memory-0.17.0/tests/utils/test_validate_project_path.py +413 -0
  365. basic_memory-0.17.0/uv.lock +2355 -0
  366. basic_memory-0.2.11/.github/workflows/release.yml +0 -97
  367. basic_memory-0.2.11/.github/workflows/test.yml +0 -47
  368. basic_memory-0.2.11/CHANGELOG.md +0 -172
  369. basic_memory-0.2.11/CONTRIBUTING.md +0 -17
  370. basic_memory-0.2.11/Makefile +0 -42
  371. basic_memory-0.2.11/PKG-INFO +0 -291
  372. basic_memory-0.2.11/README.md +0 -258
  373. basic_memory-0.2.11/basic-memory.md +0 -1419
  374. basic_memory-0.2.11/installer/Basic.icns +0 -0
  375. basic_memory-0.2.11/installer/README.md +0 -16
  376. basic_memory-0.2.11/installer/icon.svg +0 -64
  377. basic_memory-0.2.11/installer/installer.py +0 -89
  378. basic_memory-0.2.11/installer/make_icons.sh +0 -27
  379. basic_memory-0.2.11/installer/setup.py +0 -50
  380. basic_memory-0.2.11/memory.json +0 -378
  381. basic_memory-0.2.11/pyproject.toml +0 -100
  382. basic_memory-0.2.11/scripts/install.sh +0 -36
  383. basic_memory-0.2.11/src/basic_memory/__init__.py +0 -3
  384. basic_memory-0.2.11/src/basic_memory/alembic/README +0 -1
  385. basic_memory-0.2.11/src/basic_memory/alembic/env.py +0 -75
  386. basic_memory-0.2.11/src/basic_memory/api/app.py +0 -66
  387. basic_memory-0.2.11/src/basic_memory/api/routers/__init__.py +0 -8
  388. basic_memory-0.2.11/src/basic_memory/api/routers/knowledge_router.py +0 -170
  389. basic_memory-0.2.11/src/basic_memory/api/routers/memory_router.py +0 -129
  390. basic_memory-0.2.11/src/basic_memory/api/routers/resource_router.py +0 -34
  391. basic_memory-0.2.11/src/basic_memory/api/routers/search_router.py +0 -28
  392. basic_memory-0.2.11/src/basic_memory/cli/app.py +0 -3
  393. basic_memory-0.2.11/src/basic_memory/cli/commands/__init__.py +0 -5
  394. basic_memory-0.2.11/src/basic_memory/cli/commands/db.py +0 -25
  395. basic_memory-0.2.11/src/basic_memory/cli/commands/import_memory_json.py +0 -143
  396. basic_memory-0.2.11/src/basic_memory/cli/commands/mcp.py +0 -20
  397. basic_memory-0.2.11/src/basic_memory/cli/commands/sync.py +0 -203
  398. basic_memory-0.2.11/src/basic_memory/cli/main.py +0 -14
  399. basic_memory-0.2.11/src/basic_memory/config.py +0 -57
  400. basic_memory-0.2.11/src/basic_memory/db.py +0 -152
  401. basic_memory-0.2.11/src/basic_memory/deps.py +0 -181
  402. basic_memory-0.2.11/src/basic_memory/file_utils.py +0 -214
  403. basic_memory-0.2.11/src/basic_memory/markdown/entity_parser.py +0 -120
  404. basic_memory-0.2.11/src/basic_memory/mcp/async_client.py +0 -8
  405. basic_memory-0.2.11/src/basic_memory/mcp/server.py +0 -15
  406. basic_memory-0.2.11/src/basic_memory/mcp/tools/__init__.py +0 -36
  407. basic_memory-0.2.11/src/basic_memory/mcp/tools/knowledge.py +0 -56
  408. basic_memory-0.2.11/src/basic_memory/mcp/tools/memory.py +0 -151
  409. basic_memory-0.2.11/src/basic_memory/mcp/tools/notes.py +0 -122
  410. basic_memory-0.2.11/src/basic_memory/mcp/tools/search.py +0 -29
  411. basic_memory-0.2.11/src/basic_memory/mcp/tools/utils.py +0 -154
  412. basic_memory-0.2.11/src/basic_memory/models/search.py +0 -34
  413. basic_memory-0.2.11/src/basic_memory/repository/entity_repository.py +0 -92
  414. basic_memory-0.2.11/src/basic_memory/repository/relation_repository.py +0 -71
  415. basic_memory-0.2.11/src/basic_memory/repository/search_repository.py +0 -261
  416. basic_memory-0.2.11/src/basic_memory/schemas/base.py +0 -178
  417. basic_memory-0.2.11/src/basic_memory/schemas/discovery.py +0 -28
  418. basic_memory-0.2.11/src/basic_memory/schemas/memory.py +0 -113
  419. basic_memory-0.2.11/src/basic_memory/schemas/request.py +0 -58
  420. basic_memory-0.2.11/src/basic_memory/services/context_service.py +0 -280
  421. basic_memory-0.2.11/src/basic_memory/services/entity_service.py +0 -294
  422. basic_memory-0.2.11/src/basic_memory/services/exceptions.py +0 -16
  423. basic_memory-0.2.11/src/basic_memory/services/file_service.py +0 -176
  424. basic_memory-0.2.11/src/basic_memory/services/search_service.py +0 -225
  425. basic_memory-0.2.11/src/basic_memory/sync/__init__.py +0 -5
  426. basic_memory-0.2.11/src/basic_memory/sync/file_change_scanner.py +0 -158
  427. basic_memory-0.2.11/src/basic_memory/sync/sync_service.py +0 -165
  428. basic_memory-0.2.11/src/basic_memory/sync/utils.py +0 -34
  429. basic_memory-0.2.11/src/basic_memory/sync/watch_service.py +0 -218
  430. basic_memory-0.2.11/src/basic_memory/utils.py +0 -87
  431. basic_memory-0.2.11/tests/api/test_knowledge_router.py +0 -482
  432. basic_memory-0.2.11/tests/api/test_memory_router.py +0 -106
  433. basic_memory-0.2.11/tests/api/test_resource_router.py +0 -91
  434. basic_memory-0.2.11/tests/cli/test_status.py +0 -160
  435. basic_memory-0.2.11/tests/cli/test_sync.py +0 -109
  436. basic_memory-0.2.11/tests/conftest.py +0 -347
  437. basic_memory-0.2.11/tests/edit_file_test.py +0 -19
  438. basic_memory-0.2.11/tests/mcp/test_tool_get_entity.py +0 -45
  439. basic_memory-0.2.11/tests/mcp/test_tool_knowledge.py +0 -87
  440. basic_memory-0.2.11/tests/mcp/test_tool_memory.py +0 -147
  441. basic_memory-0.2.11/tests/mcp/test_tool_notes.py +0 -238
  442. basic_memory-0.2.11/tests/mcp/test_tool_search.py +0 -65
  443. basic_memory-0.2.11/tests/repository/test_entity_repository.py +0 -408
  444. basic_memory-0.2.11/tests/schemas/test_schemas.py +0 -178
  445. basic_memory-0.2.11/tests/services/test_context_service.py +0 -159
  446. basic_memory-0.2.11/tests/services/test_entity_service.py +0 -504
  447. basic_memory-0.2.11/tests/services/test_link_resolver.py +0 -144
  448. basic_memory-0.2.11/tests/services/test_search_service.py +0 -185
  449. basic_memory-0.2.11/tests/sync/test_file_change_scanner.py +0 -245
  450. basic_memory-0.2.11/tests/sync/test_sync_service.py +0 -840
  451. basic_memory-0.2.11/tests/sync/test_watch_service.py +0 -121
  452. basic_memory-0.2.11/tests/test_basic_memory.py +0 -8
  453. basic_memory-0.2.11/tests/utils/test_file_utils.py +0 -243
  454. basic_memory-0.2.11/tests/utils/test_permalink_formatting.py +0 -67
  455. basic_memory-0.2.11/uv.lock +0 -1410
  456. {basic_memory-0.2.11 → basic_memory-0.17.0}/.github/workflows/pr-title.yml +0 -0
  457. {basic_memory-0.2.11 → basic_memory-0.17.0}/.python-version +0 -0
  458. {basic_memory-0.2.11 → basic_memory-0.17.0}/CITATION.cff +0 -0
  459. {basic_memory-0.2.11 → basic_memory-0.17.0}/CODE_OF_CONDUCT.md +0 -0
  460. {basic_memory-0.2.11 → basic_memory-0.17.0}/LICENSE +0 -0
  461. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/script.py.mako +0 -0
  462. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  463. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/api/__init__.py +0 -0
  464. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/cli/__init__.py +0 -0
  465. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/markdown/__init__.py +0 -0
  466. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/mcp/__init__.py +0 -0
  467. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/models/base.py +0 -0
  468. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/schemas/delete.py +0 -0
  469. {basic_memory-0.2.11 → basic_memory-0.17.0}/src/basic_memory/services/service.py +0 -0
  470. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/__init__.py +0 -0
  471. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_observation_edge_cases.py +0 -0
  472. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_relation_edge_cases.py +0 -0
  473. {basic_memory-0.2.11 → basic_memory-0.17.0}/tests/markdown/test_task_detection.py +0 -0
@@ -0,0 +1,95 @@
1
+ # /beta - Create Beta Release
2
+
3
+ Create a new beta release using the automated justfile target with quality checks and tagging.
4
+
5
+ ## Usage
6
+ ```
7
+ /beta <version>
8
+ ```
9
+
10
+ **Parameters:**
11
+ - `version` (required): Beta version like `v0.13.2b1` or `v0.13.2rc1`
12
+
13
+ ## Implementation
14
+
15
+ You are an expert release manager for the Basic Memory project. When the user runs `/beta`, execute the following steps:
16
+
17
+ ### Step 1: Pre-flight Validation
18
+ 1. Verify version format matches `v\d+\.\d+\.\d+(b\d+|rc\d+)` pattern
19
+ 2. Check current git status for uncommitted changes
20
+ 3. Verify we're on the `main` branch
21
+ 4. Confirm no existing tag with this version
22
+
23
+ ### Step 2: Use Justfile Automation
24
+ Execute the automated beta release process:
25
+ ```bash
26
+ just beta <version>
27
+ ```
28
+
29
+ The justfile target handles:
30
+ - ✅ Beta version format validation (supports b1, b2, rc1, etc.)
31
+ - ✅ Git status and branch checks
32
+ - ✅ Quality checks (`just check` - lint, format, type-check, tests)
33
+ - ✅ Version update in `src/basic_memory/__init__.py`
34
+ - ✅ Automatic commit with proper message
35
+ - ✅ Tag creation and pushing to GitHub
36
+ - ✅ Beta release workflow trigger
37
+
38
+ ### Step 3: Monitor Beta Release
39
+ 1. Check GitHub Actions workflow starts successfully
40
+ 2. Monitor workflow at: https://github.com/basicmachines-co/basic-memory/actions
41
+ 3. Verify PyPI pre-release publication
42
+ 4. Test beta installation: `uv tool install basic-memory --pre`
43
+
44
+ ### Step 4: Beta Testing Instructions
45
+ Provide users with beta testing instructions:
46
+
47
+ ```bash
48
+ # Install/upgrade to beta
49
+ uv tool install basic-memory --pre
50
+
51
+ # Or upgrade existing installation
52
+ uv tool upgrade basic-memory --prerelease=allow
53
+ ```
54
+
55
+ ## Version Guidelines
56
+ - **First beta**: `v0.13.2b1`
57
+ - **Subsequent betas**: `v0.13.2b2`, `v0.13.2b3`, etc.
58
+ - **Release candidates**: `v0.13.2rc1`, `v0.13.2rc2`, etc.
59
+ - **Final release**: `v0.13.2` (use `/release` command)
60
+
61
+ ## Error Handling
62
+ - If `just beta` fails, examine the error output for specific issues
63
+ - If quality checks fail, fix issues and retry
64
+ - If version format is invalid, correct and retry
65
+ - If tag already exists, increment version number
66
+
67
+ ## Success Output
68
+ ```
69
+ ✅ Beta Release v0.13.2b1 Created Successfully!
70
+
71
+ 🏷️ Tag: v0.13.2b1
72
+ 🚀 GitHub Actions: Running
73
+ 📦 PyPI: Will be available in ~5 minutes as pre-release
74
+
75
+ Install/test with:
76
+ uv tool install basic-memory --pre
77
+
78
+ Monitor release: https://github.com/basicmachines-co/basic-memory/actions
79
+ ```
80
+
81
+ ## Beta Testing Workflow
82
+ 1. **Create beta**: Use `/beta v0.13.2b1`
83
+ 2. **Test features**: Install and validate new functionality
84
+ 3. **Fix issues**: Address bugs found during testing
85
+ 4. **Iterate**: Create `v0.13.2b2` if needed
86
+ 5. **Release candidate**: Create `v0.13.2rc1` when stable
87
+ 6. **Final release**: Use `/release v0.13.2` when ready
88
+
89
+ ## Context
90
+ - Beta releases are pre-releases for testing new features
91
+ - Automatically published to PyPI with pre-release flag
92
+ - Uses the automated justfile target for consistency
93
+ - Version is automatically updated in `__init__.py`
94
+ - Ideal for validating changes before stable release
95
+ - Supports both beta (b1, b2) and release candidate (rc1, rc2) versions
@@ -0,0 +1,160 @@
1
+ # /changelog - Generate or Update Changelog Entry
2
+
3
+ Analyze commits and generate formatted changelog entry for a version.
4
+
5
+ ## Usage
6
+ ```
7
+ /changelog <version> [type]
8
+ ```
9
+
10
+ **Parameters:**
11
+ - `version` (required): Version like `v0.14.0` or `v0.14.0b1`
12
+ - `type` (optional): `beta`, `rc`, or `stable` (default: `stable`)
13
+
14
+ ## Implementation
15
+
16
+ You are an expert technical writer for the Basic Memory project. When the user runs `/changelog`, execute the following steps:
17
+
18
+ ### Step 1: Version Analysis
19
+ 1. **Determine Commit Range**
20
+ ```bash
21
+ # Find last release tag
22
+ git tag -l "v*" --sort=-version:refname | grep -v "b\|rc" | head -1
23
+
24
+ # Get commits since last release
25
+ git log --oneline ${last_tag}..HEAD
26
+ ```
27
+
28
+ 2. **Parse Conventional Commits**
29
+ - Extract feat: (features)
30
+ - Extract fix: (bug fixes)
31
+ - Extract BREAKING CHANGE: (breaking changes)
32
+ - Extract chore:, docs:, test: (other improvements)
33
+
34
+ ### Step 2: Categorize Changes
35
+ 1. **Features (feat:)**
36
+ - New MCP tools
37
+ - New CLI commands
38
+ - New API endpoints
39
+ - Major functionality additions
40
+
41
+ 2. **Bug Fixes (fix:)**
42
+ - User-facing bug fixes
43
+ - Critical issues resolved
44
+ - Performance improvements
45
+ - Security fixes
46
+
47
+ 3. **Technical Improvements**
48
+ - Test coverage improvements
49
+ - Code quality enhancements
50
+ - Dependency updates
51
+ - Documentation updates
52
+
53
+ 4. **Breaking Changes**
54
+ - API changes
55
+ - Configuration changes
56
+ - Behavior changes
57
+ - Migration requirements
58
+
59
+ ### Step 3: Generate Changelog Entry
60
+ Create formatted entry following existing CHANGELOG.md style:
61
+
62
+ Example:
63
+ ```markdown
64
+ ## <version> (<date>)
65
+
66
+ ### Features
67
+
68
+ - **Multi-Project Management System** - Switch between projects instantly during conversations
69
+ ([`993e88a`](https://github.com/basicmachines-co/basic-memory/commit/993e88a))
70
+ - Instant project switching with session context
71
+ - Project-specific operations and isolation
72
+ - Project discovery and management tools
73
+
74
+ - **Advanced Note Editing** - Incremental editing with append, prepend, find/replace, and section operations
75
+ ([`6fc3904`](https://github.com/basicmachines-co/basic-memory/commit/6fc3904))
76
+ - `edit_note` tool with multiple operation types
77
+ - Smart frontmatter-aware editing
78
+ - Validation and error handling
79
+
80
+ ### Bug Fixes
81
+
82
+ - **#118**: Fix YAML tag formatting to follow standard specification
83
+ ([`2dc7e27`](https://github.com/basicmachines-co/basic-memory/commit/2dc7e27))
84
+
85
+ - **#110**: Make --project flag work consistently across CLI commands
86
+ ([`02dd91a`](https://github.com/basicmachines-co/basic-memory/commit/02dd91a))
87
+
88
+ ### Technical Improvements
89
+
90
+ - **Comprehensive Testing** - 100% test coverage with integration testing
91
+ ([`468a22f`](https://github.com/basicmachines-co/basic-memory/commit/468a22f))
92
+ - MCP integration test suite
93
+ - End-to-end testing framework
94
+ - Performance and edge case validation
95
+
96
+ ### Breaking Changes
97
+
98
+ - **Database Migration**: Automatic migration from per-project to unified database.
99
+ Data will be re-index from the filesystem, resulting in no data loss.
100
+ - **Configuration Changes**: Projects now synced between config.json and database
101
+ - **Full Backward Compatibility**: All existing setups continue to work seamlessly
102
+ ```
103
+
104
+ ### Step 4: Integration
105
+ 1. **Update CHANGELOG.md**
106
+ - Insert new entry at top
107
+ - Maintain consistent formatting
108
+ - Include commit links and issue references
109
+
110
+ 2. **Validation**
111
+ - Check all major changes are captured
112
+ - Verify commit links work
113
+ - Ensure issue numbers are correct
114
+
115
+ ## Smart Analysis Features
116
+
117
+ ### Automatic Classification
118
+ - Detect feature additions from file changes
119
+ - Identify bug fixes from commit messages
120
+ - Find breaking changes from code analysis
121
+ - Extract issue numbers from commit messages
122
+
123
+ ### Content Enhancement
124
+ - Add context for technical changes
125
+ - Include migration guidance for breaking changes
126
+ - Suggest installation/upgrade instructions
127
+ - Link to relevant documentation
128
+
129
+ ## Output Format
130
+
131
+ ### For Beta Releases
132
+
133
+ Example:
134
+ ```markdown
135
+ ## v0.13.0b4 (2025-06-03)
136
+
137
+ ### Beta Changes Since v0.13.0b3
138
+
139
+ - Fix FastMCP API compatibility issues
140
+ - Update dependencies to latest versions
141
+ - Resolve setuptools import error
142
+
143
+ ### Installation
144
+ ```bash
145
+ uv tool install basic-memory --prerelease=allow
146
+ ```
147
+
148
+ ### Known Issues
149
+ - [List any known issues for beta testing]
150
+ ```
151
+
152
+ ### For Stable Releases
153
+ Full changelog with complete feature list, organized by impact and category.
154
+
155
+ ## Context
156
+ - Follows existing CHANGELOG.md format and style
157
+ - Uses conventional commit standards
158
+ - Includes GitHub commit links for traceability
159
+ - Focuses on user-facing changes and value
160
+ - Maintains consistency with previous entries
@@ -0,0 +1,131 @@
1
+ # /release-check - Pre-flight Release Validation
2
+
3
+ Comprehensive pre-flight check for release readiness without making any changes.
4
+
5
+ ## Usage
6
+ ```
7
+ /release-check [version]
8
+ ```
9
+
10
+ **Parameters:**
11
+ - `version` (optional): Version to validate like `v0.13.0`. If not provided, determines from context.
12
+
13
+ ## Implementation
14
+
15
+ You are an expert QA engineer for the Basic Memory project. When the user runs `/release-check`, execute the following validation steps:
16
+
17
+ ### Step 1: Environment Validation
18
+ 1. **Git Status Check**
19
+ - Verify working directory is clean
20
+ - Confirm on `main` branch
21
+ - Check if ahead/behind origin
22
+
23
+ 2. **Version Validation**
24
+ - Validate version format if provided
25
+ - Check for existing tags with same version
26
+ - Verify version increments properly from last release
27
+
28
+ ### Step 2: Code Quality Gates
29
+ 1. **Test Suite Validation**
30
+ ```bash
31
+ just test
32
+ ```
33
+ - All tests must pass
34
+ - Check test coverage (target: 95%+)
35
+ - Validate no skipped critical tests
36
+
37
+ 2. **Code Quality Checks**
38
+ ```bash
39
+ just lint
40
+ just type-check
41
+ ```
42
+ - No linting errors
43
+ - No type checking errors
44
+ - Code formatting is consistent
45
+
46
+ ### Step 3: Documentation Validation
47
+ 1. **Changelog Check**
48
+ - CHANGELOG.md contains entry for target version
49
+ - Entry includes all major features and fixes
50
+ - Breaking changes are documented
51
+
52
+ 2. **Documentation Currency**
53
+ - README.md reflects current functionality
54
+ - CLI reference is up to date
55
+ - MCP tools are documented
56
+
57
+ ### Step 4: Dependency Validation
58
+ 1. **Security Scan**
59
+ - No known vulnerabilities in dependencies
60
+ - All dependencies are at appropriate versions
61
+ - No conflicting dependency versions
62
+
63
+ 2. **Build Validation**
64
+ - Package builds successfully
65
+ - All required files are included
66
+ - No missing dependencies
67
+
68
+ ### Step 5: Issue Tracking Validation
69
+ 1. **GitHub Issues Check**
70
+ - No critical open issues blocking release
71
+ - All milestone issues are resolved
72
+ - High-priority bugs are fixed
73
+
74
+ 2. **Testing Coverage**
75
+ - Integration tests pass
76
+ - MCP tool tests pass
77
+ - Cross-platform compatibility verified
78
+
79
+ ## Report Format
80
+
81
+ Generate a comprehensive report:
82
+
83
+ ```
84
+ 🔍 Release Readiness Check for v0.13.0
85
+
86
+ ✅ PASSED CHECKS:
87
+ ├── Git status clean
88
+ ├── On main branch
89
+ ├── All tests passing (744/744)
90
+ ├── Test coverage: 98.2%
91
+ ├── Type checking passed
92
+ ├── Linting passed
93
+ ├── CHANGELOG.md updated
94
+ └── No critical issues open
95
+
96
+ ⚠️ WARNINGS:
97
+ ├── 2 medium-priority issues still open
98
+ └── Documentation could be updated
99
+
100
+ ❌ BLOCKING ISSUES:
101
+ └── None found
102
+
103
+ 🎯 RELEASE READINESS: ✅ READY
104
+
105
+ Recommended next steps:
106
+ 1. Address warnings if desired
107
+ 2. Run `/release v0.13.0` when ready
108
+ ```
109
+
110
+ ## Validation Criteria
111
+
112
+ ### Must Pass (Blocking)
113
+ - [ ] All tests pass
114
+ - [ ] No type errors
115
+ - [ ] No linting errors
116
+ - [ ] Working directory clean
117
+ - [ ] On main branch
118
+ - [ ] CHANGELOG.md has version entry
119
+ - [ ] No critical open issues
120
+
121
+ ### Should Pass (Warnings)
122
+ - [ ] Test coverage >95%
123
+ - [ ] No medium-priority open issues
124
+ - [ ] Documentation up to date
125
+ - [ ] No dependency vulnerabilities
126
+
127
+ ## Context
128
+ - This is a read-only validation - makes no changes
129
+ - Provides confidence before running actual release
130
+ - Helps identify issues early in release process
131
+ - Can be run multiple times safely
@@ -0,0 +1,169 @@
1
+ # /release - Create Stable Release
2
+
3
+ Create a stable release using the automated justfile target with comprehensive validation.
4
+
5
+ ## Usage
6
+ ```
7
+ /release <version>
8
+ ```
9
+
10
+ **Parameters:**
11
+ - `version` (required): Release version like `v0.13.2`
12
+
13
+ ## Implementation
14
+
15
+ You are an expert release manager for the Basic Memory project. When the user runs `/release`, execute the following steps:
16
+
17
+ ### Step 1: Pre-flight Validation
18
+
19
+ #### Version Check
20
+ 1. Check current version in `src/basic_memory/__init__.py`
21
+ 2. Verify new version format matches `v\d+\.\d+\.\d+` pattern
22
+ 3. Confirm version is higher than current version
23
+
24
+ #### Git Status
25
+ 1. Check current git status for uncommitted changes
26
+ 2. Verify we're on the `main` branch
27
+ 3. Confirm no existing tag with this version
28
+
29
+ #### Documentation Validation
30
+ 1. **Changelog Check**
31
+ - CHANGELOG.md contains entry for target version
32
+ - Entry includes all major features and fixes
33
+ - Breaking changes are documented
34
+
35
+ ### Step 2: Use Justfile Automation
36
+ Execute the automated release process:
37
+ ```bash
38
+ just release <version>
39
+ ```
40
+
41
+ The justfile target handles:
42
+ - ✅ Version format validation
43
+ - ✅ Git status and branch checks
44
+ - ✅ Quality checks (`just check` - lint, format, type-check, tests)
45
+ - ✅ Version update in `src/basic_memory/__init__.py`
46
+ - ✅ Automatic commit with proper message
47
+ - ✅ Tag creation and pushing to GitHub
48
+ - ✅ Release workflow trigger (automatic on tag push)
49
+
50
+ The GitHub Actions workflow (`.github/workflows/release.yml`) then:
51
+ - ✅ Builds the package using `uv build`
52
+ - ✅ Creates GitHub release with auto-generated notes
53
+ - ✅ Publishes to PyPI
54
+ - ✅ Updates Homebrew formula (stable releases only)
55
+
56
+ ### Step 3: Monitor Release Process
57
+ 1. Verify tag push triggered the workflow (should start automatically within seconds)
58
+ 2. Monitor workflow progress at: https://github.com/basicmachines-co/basic-memory/actions
59
+ 3. Watch for successful completion of both jobs:
60
+ - `release` - Builds package and publishes to PyPI
61
+ - `homebrew` - Updates Homebrew formula (stable releases only)
62
+ 4. Check for any workflow failures and investigate logs if needed
63
+
64
+ ### Step 4: Post-Release Validation
65
+
66
+ #### GitHub Release
67
+ 1. Verify GitHub release is created at: https://github.com/basicmachines-co/basic-memory/releases/tag/<version>
68
+ 2. Check that release notes are auto-generated from commits
69
+ 3. Validate release assets (`.whl` and `.tar.gz` files are attached)
70
+
71
+ #### PyPI Publication
72
+ 1. Verify package published at: https://pypi.org/project/basic-memory/<version>/
73
+ 2. Test installation: `uv tool install basic-memory`
74
+ 3. Verify installed version: `basic-memory --version`
75
+
76
+ #### Homebrew Formula (Stable Releases Only)
77
+ 1. Check formula update at: https://github.com/basicmachines-co/homebrew-basic-memory
78
+ 2. Verify formula version matches release
79
+ 3. Test Homebrew installation: `brew install basicmachines-co/basic-memory/basic-memory`
80
+
81
+ #### Website Updates
82
+
83
+ **1. basicmachines.co** (`/Users/drew/code/basicmachines.co`)
84
+ - **Goal**: Update version number displayed on the homepage
85
+ - **Location**: Search for "Basic Memory v0." in the codebase to find version displays
86
+ - **What to update**:
87
+ - Hero section heading that shows "Basic Memory v{VERSION}"
88
+ - "What's New in v{VERSION}" section heading
89
+ - Feature highlights array (look for array of features with title/description)
90
+ - **Process**:
91
+ 1. Pull latest from GitHub: `git pull origin main`
92
+ 2. Create release branch: `git checkout -b release/v{VERSION}`
93
+ 3. Search codebase for current version number (e.g., "v0.16.1")
94
+ 4. Update version numbers to new release version
95
+ 5. Update feature highlights with 3-5 key features from this release (extract from CHANGELOG.md)
96
+ 6. Commit changes: `git commit -m "chore: update to v{VERSION}"`
97
+ 7. Push branch: `git push origin release/v{VERSION}`
98
+ - **Deploy**: Follow deployment process for basicmachines.co
99
+
100
+ **2. docs.basicmemory.com** (`/Users/drew/code/docs.basicmemory.com`)
101
+ - **Goal**: Add new release notes section to the latest-releases page
102
+ - **File**: `src/pages/latest-releases.mdx`
103
+ - **What to do**:
104
+ 1. Pull latest from GitHub: `git pull origin main`
105
+ 2. Create release branch: `git checkout -b release/v{VERSION}`
106
+ 3. Read the existing file to understand the format and structure
107
+ 4. Read `/Users/drew/code/basic-memory/CHANGELOG.md` to get release content
108
+ 5. Add new release section **at the top** (after MDX imports, before other releases)
109
+ 6. Follow the existing pattern:
110
+ - Heading: `## [v{VERSION}](github-link) — YYYY-MM-DD`
111
+ - Focus statement if applicable
112
+ - `<Info>` block with highlights (3-5 key items)
113
+ - Sections for Features, Bug Fixes, Breaking Changes, etc.
114
+ - Link to full changelog at the end
115
+ - Separator `---` between releases
116
+ 7. Commit changes: `git commit -m "docs: add v{VERSION} release notes"`
117
+ 8. Push branch: `git push origin release/v{VERSION}`
118
+ - **Source content**: Extract and format sections from CHANGELOG.md for this version
119
+ - **Deploy**: Follow deployment process for docs.basicmemory.com
120
+
121
+ **4. Announce Release**
122
+ - Post to Discord community if significant changes
123
+ - Update social media if major release
124
+ - Notify users via appropriate channels
125
+
126
+ ## Pre-conditions Check
127
+ Before starting, verify:
128
+ - [ ] All beta testing is complete
129
+ - [ ] Critical bugs are fixed
130
+ - [ ] Breaking changes are documented
131
+ - [ ] CHANGELOG.md is updated (if needed)
132
+ - [ ] Version number follows semantic versioning
133
+
134
+ ## Error Handling
135
+ - If `just release` fails, examine the error output for specific issues
136
+ - If quality checks fail, fix issues and retry
137
+ - If changelog entry missing, update CHANGELOG.md and commit before retrying
138
+ - If GitHub Actions fail, check workflow logs for debugging
139
+
140
+ ## Success Output
141
+ ```
142
+ 🎉 Stable Release v0.13.2 Created Successfully!
143
+
144
+ 🏷️ Tag: v0.13.2
145
+ 📋 GitHub Release: https://github.com/basicmachines-co/basic-memory/releases/tag/v0.13.2
146
+ 📦 PyPI: https://pypi.org/project/basic-memory/0.13.2/
147
+ 🍺 Homebrew: https://github.com/basicmachines-co/homebrew-basic-memory
148
+ 🚀 GitHub Actions: Completed
149
+
150
+ Install with pip/uv:
151
+ uv tool install basic-memory
152
+
153
+ Install with Homebrew:
154
+ brew install basicmachines-co/basic-memory/basic-memory
155
+
156
+ Users can now upgrade:
157
+ uv tool upgrade basic-memory
158
+ brew upgrade basic-memory
159
+ ```
160
+
161
+ ## Context
162
+ - This creates production releases used by end users
163
+ - Must pass all quality gates before proceeding
164
+ - Uses the automated justfile target for consistency
165
+ - Version is automatically updated in `__init__.py`
166
+ - Triggers automated GitHub release with changelog
167
+ - Package is published to PyPI for `pip` and `uv` users
168
+ - Homebrew formula is automatically updated for stable releases
169
+ - Supports multiple installation methods (uv, pip, Homebrew)
@@ -0,0 +1,51 @@
1
+ ---
2
+ allowed-tools: mcp__basic-memory__write_note, mcp__basic-memory__read_note, mcp__basic-memory__search_notes, mcp__basic-memory__edit_note
3
+ argument-hint: [create|status|show|review] [spec-name]
4
+ description: Manage specifications in our development process
5
+ ---
6
+
7
+ ## Context
8
+
9
+ Specifications are managed in the Basic Memory "specs" project. All specs live in a centralized location accessible across all repositories via MCP tools.
10
+
11
+ See SPEC-1 and SPEC-2 in the "specs" project for the full specification-driven development process.
12
+
13
+ Available commands:
14
+ - `create [name]` - Create new specification
15
+ - `status` - Show all spec statuses
16
+ - `show [spec-name]` - Read a specific spec
17
+ - `review [spec-name]` - Review implementation against spec
18
+
19
+ ## Your task
20
+
21
+ Execute the spec command: `/spec $ARGUMENTS`
22
+
23
+ ### If command is "create":
24
+ 1. Get next SPEC number by searching existing specs in "specs" project
25
+ 2. Create new spec using template from SPEC-2
26
+ 3. Use mcp__basic-memory__write_note with project="specs"
27
+ 4. Include standard sections: Why, What, How, How to Evaluate
28
+
29
+ ### If command is "status":
30
+ 1. Use mcp__basic-memory__search_notes with project="specs"
31
+ 2. Display table with spec number, title, and progress
32
+ 3. Show completion status from checkboxes in content
33
+
34
+ ### If command is "show":
35
+ 1. Use mcp__basic-memory__read_note with project="specs"
36
+ 2. Display the full spec content
37
+
38
+ ### If command is "review":
39
+ 1. Read the specified spec and its "How to Evaluate" section
40
+ 2. Review current implementation against success criteria with careful evaluation of:
41
+ - **Functional completeness** - All specified features working
42
+ - **Test coverage analysis** - Actual test files and coverage percentage
43
+ - Count existing test files vs required components/APIs/composables
44
+ - Verify unit tests, integration tests, and end-to-end tests
45
+ - Check for missing test categories (component, API, workflow)
46
+ - **Code quality metrics** - TypeScript compilation, linting, performance
47
+ - **Architecture compliance** - Component isolation, state management patterns
48
+ - **Documentation completeness** - Implementation matches specification
49
+ 3. Provide honest, accurate assessment - do not overstate completeness
50
+ 4. Document findings and update spec with review results using mcp__basic-memory__edit_note
51
+ 5. If gaps found, clearly identify what still needs to be implemented/tested