basic-memory 0.17.5__tar.gz → 0.17.6__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.
Files changed (428) hide show
  1. {basic_memory-0.17.5 → basic_memory-0.17.6}/CHANGELOG.md +13 -0
  2. {basic_memory-0.17.5 → basic_memory-0.17.6}/Dockerfile +10 -4
  3. {basic_memory-0.17.5 → basic_memory-0.17.6}/PKG-INFO +1 -1
  4. {basic_memory-0.17.5 → basic_memory-0.17.6}/justfile +10 -0
  5. {basic_memory-0.17.5 → basic_memory-0.17.6}/pyproject.toml +0 -3
  6. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/__init__.py +1 -1
  7. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/app.py +0 -6
  8. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/core_commands.py +0 -1
  9. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/server.py +3 -3
  10. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/coordinator.py +1 -1
  11. basic_memory-0.17.5/specs/SPEC-1 Specification-Driven Development Process.md +0 -156
  12. basic_memory-0.17.5/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +0 -569
  13. basic_memory-0.17.5/specs/SPEC-11 Basic Memory API Performance Optimization.md +0 -186
  14. basic_memory-0.17.5/specs/SPEC-12 OpenTelemetry Observability.md +0 -182
  15. basic_memory-0.17.5/specs/SPEC-13 CLI Authentication with Subscription Validation.md +0 -917
  16. basic_memory-0.17.5/specs/SPEC-14 Cloud Git Versioning & GitHub Backup.md +0 -210
  17. basic_memory-0.17.5/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +0 -210
  18. basic_memory-0.17.5/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +0 -273
  19. basic_memory-0.17.5/specs/SPEC-16 MCP Cloud Service Consolidation.md +0 -800
  20. basic_memory-0.17.5/specs/SPEC-17 Semantic Search with ChromaDB.md +0 -1439
  21. basic_memory-0.17.5/specs/SPEC-18 AI Memory Management Tool.md +0 -528
  22. basic_memory-0.17.5/specs/SPEC-19 Sync Performance and Memory Optimization.md +0 -1046
  23. basic_memory-0.17.5/specs/SPEC-2 Slash Commands Reference.md +0 -120
  24. basic_memory-0.17.5/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +0 -1216
  25. basic_memory-0.17.5/specs/SPEC-3 Agent Definitions.md +0 -108
  26. basic_memory-0.17.5/specs/SPEC-4 Notes Web UI Component Architecture.md +0 -311
  27. basic_memory-0.17.5/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +0 -201
  28. basic_memory-0.17.5/specs/SPEC-6 Explicit Project Parameter Architecture.md +0 -497
  29. basic_memory-0.17.5/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +0 -324
  30. basic_memory-0.17.5/specs/SPEC-8 TigrisFS Integration.md +0 -886
  31. basic_memory-0.17.5/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +0 -1114
  32. basic_memory-0.17.5/specs/SPEC-9 Signed Header Tenant Information.md +0 -196
  33. basic_memory-0.17.5/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +0 -390
  34. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/beta.md +0 -0
  35. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/changelog.md +0 -0
  36. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/release-check.md +0 -0
  37. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/release.md +0 -0
  38. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/spec.md +0 -0
  39. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/test-live.md +0 -0
  40. {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/settings.json +0 -0
  41. {basic_memory-0.17.5 → basic_memory-0.17.6}/.dockerignore +0 -0
  42. {basic_memory-0.17.5 → basic_memory-0.17.6}/.env.example +0 -0
  43. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  44. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  45. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  46. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  47. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/dependabot.yml +0 -0
  48. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude-code-review.yml +0 -0
  49. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude-issue-triage.yml +0 -0
  50. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude.yml +0 -0
  51. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/dev-release.yml +0 -0
  52. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/docker.yml +0 -0
  53. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/pr-title.yml +0 -0
  54. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/release.yml +0 -0
  55. {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/test.yml +0 -0
  56. {basic_memory-0.17.5 → basic_memory-0.17.6}/.gitignore +0 -0
  57. {basic_memory-0.17.5 → basic_memory-0.17.6}/.python-version +0 -0
  58. {basic_memory-0.17.5 → basic_memory-0.17.6}/CITATION.cff +0 -0
  59. {basic_memory-0.17.5 → basic_memory-0.17.6}/CLA.md +0 -0
  60. {basic_memory-0.17.5 → basic_memory-0.17.6}/CLAUDE.md +0 -0
  61. {basic_memory-0.17.5 → basic_memory-0.17.6}/CODE_OF_CONDUCT.md +0 -0
  62. {basic_memory-0.17.5 → basic_memory-0.17.6}/CONTRIBUTING.md +0 -0
  63. {basic_memory-0.17.5 → basic_memory-0.17.6}/LICENSE +0 -0
  64. {basic_memory-0.17.5 → basic_memory-0.17.6}/README.md +0 -0
  65. {basic_memory-0.17.5 → basic_memory-0.17.6}/SECURITY.md +0 -0
  66. {basic_memory-0.17.5 → basic_memory-0.17.6}/docker-compose-postgres.yml +0 -0
  67. {basic_memory-0.17.5 → basic_memory-0.17.6}/docker-compose.yml +0 -0
  68. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/ARCHITECTURE.md +0 -0
  69. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/Docker.md +0 -0
  70. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/ai-assistant-guide-extended.md +0 -0
  71. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/character-handling.md +0 -0
  72. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/cloud-cli.md +0 -0
  73. {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/testing-coverage.md +0 -0
  74. {basic_memory-0.17.5 → basic_memory-0.17.6}/llms-install.md +0 -0
  75. {basic_memory-0.17.5 → basic_memory-0.17.6}/smithery.yaml +0 -0
  76. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/alembic.ini +0 -0
  77. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/env.py +0 -0
  78. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/migrations.py +0 -0
  79. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/script.py.mako +0 -0
  80. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
  81. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  82. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  83. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
  84. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
  85. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
  86. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
  87. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
  88. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
  89. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  90. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  91. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
  92. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
  93. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
  94. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/__init__.py +0 -0
  95. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/app.py +0 -0
  96. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/container.py +0 -0
  97. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/__init__.py +0 -0
  98. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/directory_router.py +0 -0
  99. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/importer_router.py +0 -0
  100. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/knowledge_router.py +0 -0
  101. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/management_router.py +0 -0
  102. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/memory_router.py +0 -0
  103. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/project_router.py +0 -0
  104. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/prompt_router.py +0 -0
  105. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/resource_router.py +0 -0
  106. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/search_router.py +0 -0
  107. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/utils.py +0 -0
  108. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/template_loader.py +0 -0
  109. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/__init__.py +0 -0
  110. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/__init__.py +0 -0
  111. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
  112. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
  113. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/knowledge_router.py +0 -0
  114. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
  115. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/project_router.py +0 -0
  116. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
  117. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
  118. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/search_router.py +0 -0
  119. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/__init__.py +0 -0
  120. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/auth.py +0 -0
  121. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/__init__.py +0 -0
  122. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
  123. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
  124. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
  125. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
  126. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
  127. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
  128. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
  129. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
  130. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
  131. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/command_utils.py +0 -0
  132. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/db.py +0 -0
  133. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/format.py +0 -0
  134. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  135. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  136. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  137. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  138. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/mcp.py +0 -0
  139. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/project.py +0 -0
  140. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/status.py +0 -0
  141. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/telemetry.py +0 -0
  142. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/tool.py +0 -0
  143. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/container.py +0 -0
  144. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/main.py +0 -0
  145. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/config.py +0 -0
  146. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/db.py +0 -0
  147. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/__init__.py +0 -0
  148. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/config.py +0 -0
  149. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/db.py +0 -0
  150. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/importers.py +0 -0
  151. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/projects.py +0 -0
  152. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/repositories.py +0 -0
  153. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/services.py +0 -0
  154. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps.py +0 -0
  155. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/file_utils.py +0 -0
  156. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/ignore_utils.py +0 -0
  157. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/__init__.py +0 -0
  158. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/base.py +0 -0
  159. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/chatgpt_importer.py +0 -0
  160. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
  161. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/claude_projects_importer.py +0 -0
  162. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/memory_json_importer.py +0 -0
  163. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/utils.py +0 -0
  164. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/__init__.py +0 -0
  165. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/entity_parser.py +0 -0
  166. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/markdown_processor.py +0 -0
  167. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/plugins.py +0 -0
  168. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/schemas.py +0 -0
  169. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/utils.py +0 -0
  170. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/__init__.py +0 -0
  171. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/async_client.py +0 -0
  172. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/__init__.py +0 -0
  173. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/directory.py +0 -0
  174. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/knowledge.py +0 -0
  175. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/memory.py +0 -0
  176. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/project.py +0 -0
  177. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/resource.py +0 -0
  178. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/search.py +0 -0
  179. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/container.py +0 -0
  180. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/project_context.py +0 -0
  181. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  182. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
  183. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
  184. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  185. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/search.py +0 -0
  186. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/utils.py +0 -0
  187. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
  188. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/resources/project_info.py +0 -0
  189. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/__init__.py +0 -0
  190. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/build_context.py +0 -0
  191. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/canvas.py +0 -0
  192. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
  193. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  194. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/edit_note.py +0 -0
  195. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/list_directory.py +0 -0
  196. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/move_note.py +0 -0
  197. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/project_management.py +0 -0
  198. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/read_content.py +0 -0
  199. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/read_note.py +0 -0
  200. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  201. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/search.py +0 -0
  202. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/utils.py +0 -0
  203. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/view_note.py +0 -0
  204. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/write_note.py +0 -0
  205. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/__init__.py +0 -0
  206. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/base.py +0 -0
  207. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/knowledge.py +0 -0
  208. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/project.py +0 -0
  209. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/search.py +0 -0
  210. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/project_resolver.py +0 -0
  211. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/__init__.py +0 -0
  212. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/entity_repository.py +0 -0
  213. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/observation_repository.py +0 -0
  214. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/postgres_search_repository.py +0 -0
  215. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/project_info_repository.py +0 -0
  216. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/project_repository.py +0 -0
  217. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/relation_repository.py +0 -0
  218. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/repository.py +0 -0
  219. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_index_row.py +0 -0
  220. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_repository.py +0 -0
  221. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_repository_base.py +0 -0
  222. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/sqlite_search_repository.py +0 -0
  223. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/runtime.py +0 -0
  224. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/__init__.py +0 -0
  225. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/base.py +0 -0
  226. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/cloud.py +0 -0
  227. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/delete.py +0 -0
  228. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/directory.py +0 -0
  229. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/importer.py +0 -0
  230. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/memory.py +0 -0
  231. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/project_info.py +0 -0
  232. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/prompt.py +0 -0
  233. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/request.py +0 -0
  234. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/response.py +0 -0
  235. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/search.py +0 -0
  236. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/sync_report.py +0 -0
  237. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/__init__.py +0 -0
  238. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/entity.py +0 -0
  239. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/resource.py +0 -0
  240. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/__init__.py +0 -0
  241. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/context_service.py +0 -0
  242. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/directory_service.py +0 -0
  243. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/entity_service.py +0 -0
  244. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/exceptions.py +0 -0
  245. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/file_service.py +0 -0
  246. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/initialization.py +0 -0
  247. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/link_resolver.py +0 -0
  248. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/project_service.py +0 -0
  249. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/search_service.py +0 -0
  250. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/service.py +0 -0
  251. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/__init__.py +0 -0
  252. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/background_sync.py +0 -0
  253. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/sync_service.py +0 -0
  254. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/watch_service.py +0 -0
  255. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/telemetry.py +0 -0
  256. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
  257. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/templates/prompts/search.hbs +0 -0
  258. {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/utils.py +0 -0
  259. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/BENCHMARKS.md +0 -0
  260. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/cli/test_project_commands_integration.py +0 -0
  261. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/cli/test_version_integration.py +0 -0
  262. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/conftest.py +0 -0
  263. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_build_context_underscore.py +0 -0
  264. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_build_context_validation.py +0 -0
  265. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
  266. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_default_project_mode_integration.py +0 -0
  267. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_delete_note_integration.py +0 -0
  268. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_edit_note_integration.py +0 -0
  269. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
  270. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_list_directory_integration.py +0 -0
  271. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_move_note_integration.py +0 -0
  272. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_project_management_integration.py +0 -0
  273. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_project_state_sync_integration.py +0 -0
  274. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_read_content_integration.py +0 -0
  275. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_read_note_integration.py +0 -0
  276. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_search_integration.py +0 -0
  277. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
  278. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_write_note_integration.py +0 -0
  279. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/test_db_wal_mode.py +0 -0
  280. {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/test_disable_permalinks_integration.py +0 -0
  281. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/Non-MarkdownFileSupport.pdf +0 -0
  282. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/README.md +0 -0
  283. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/Screenshot.png +0 -0
  284. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/__init__.py +0 -0
  285. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/conftest.py +0 -0
  286. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_api_container.py +0 -0
  287. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_async_client.py +0 -0
  288. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_continue_conversation_template.py +0 -0
  289. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_directory_router.py +0 -0
  290. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_importer_router.py +0 -0
  291. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_knowledge_router.py +0 -0
  292. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_management_router.py +0 -0
  293. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_memory_router.py +0 -0
  294. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_project_router.py +0 -0
  295. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_project_router_operations.py +0 -0
  296. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_prompt_router.py +0 -0
  297. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_relation_background_resolution.py +0 -0
  298. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_resource_router.py +0 -0
  299. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_search_router.py +0 -0
  300. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_search_template.py +0 -0
  301. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_template_loader.py +0 -0
  302. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_template_loader_helpers.py +0 -0
  303. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/__init__.py +0 -0
  304. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/conftest.py +0 -0
  305. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_directory_router.py +0 -0
  306. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_importer_router.py +0 -0
  307. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_knowledge_router.py +0 -0
  308. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_memory_router.py +0 -0
  309. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_project_router.py +0 -0
  310. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_prompt_router.py +0 -0
  311. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_resource_router.py +0 -0
  312. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_search_router.py +0 -0
  313. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
  314. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
  315. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_upload_path.py +0 -0
  316. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/conftest.py +0 -0
  317. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_auth_cli_auth.py +0 -0
  318. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_container.py +0 -0
  319. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_exit.py +0 -0
  320. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_tool_exit.py +0 -0
  321. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_tools.py +0 -0
  322. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cloud_authentication.py +0 -0
  323. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_ignore_utils.py +0 -0
  324. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_chatgpt.py +0 -0
  325. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_claude_conversations.py +0 -0
  326. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_claude_projects.py +0 -0
  327. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_memory_json.py +0 -0
  328. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_project_add_with_local_path.py +0 -0
  329. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_upload.py +0 -0
  330. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/conftest.py +0 -0
  331. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
  332. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_conversation_indexing.py +0 -0
  333. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_importer_base.py +0 -0
  334. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_importer_utils.py +0 -0
  335. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/__init__.py +0 -0
  336. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
  337. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_entity_parser.py +0 -0
  338. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_entity_parser_error_handling.py +0 -0
  339. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_markdown_plugins.py +0 -0
  340. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_markdown_processor.py +0 -0
  341. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_observation_edge_cases.py +0 -0
  342. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_parser_edge_cases.py +0 -0
  343. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_relation_edge_cases.py +0 -0
  344. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_task_detection.py +0 -0
  345. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/clients/__init__.py +0 -0
  346. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/clients/test_clients.py +0 -0
  347. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/conftest.py +0 -0
  348. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_async_client_modes.py +0 -0
  349. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_mcp_container.py +0 -0
  350. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
  351. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
  352. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_project_context.py +0 -0
  353. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_prompts.py +0 -0
  354. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
  355. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_resources.py +0 -0
  356. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_server_lifespan_branches.py +0 -0
  357. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_build_context.py +0 -0
  358. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_canvas.py +0 -0
  359. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_delete_note.py +0 -0
  360. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_edit_note.py +0 -0
  361. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_list_directory.py +0 -0
  362. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_move_note.py +0 -0
  363. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_project_management.py +0 -0
  364. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_read_content.py +0 -0
  365. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_read_note.py +0 -0
  366. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_recent_activity.py +0 -0
  367. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_resource.py +0 -0
  368. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_search.py +0 -0
  369. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_utils.py +0 -0
  370. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_view_note.py +0 -0
  371. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_write_note.py +0 -0
  372. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
  373. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
  374. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_repository.py +0 -0
  375. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_repository_upsert.py +0 -0
  376. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_upsert_issue_187.py +0 -0
  377. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_observation_repository.py +0 -0
  378. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_postgres_search_repository.py +0 -0
  379. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_project_info_repository.py +0 -0
  380. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_project_repository.py +0 -0
  381. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_relation_repository.py +0 -0
  382. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_repository.py +0 -0
  383. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_search_repository.py +0 -0
  384. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
  385. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_base_timeframe_minimum.py +0 -0
  386. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_serialization.py +0 -0
  387. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_url.py +0 -0
  388. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_url_validation.py +0 -0
  389. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
  390. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_schemas.py +0 -0
  391. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_search.py +0 -0
  392. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_context_service.py +0 -0
  393. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_directory_service.py +0 -0
  394. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_entity_service.py +0 -0
  395. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_entity_service_disable_permalinks.py +0 -0
  396. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_file_service.py +0 -0
  397. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_initialization.py +0 -0
  398. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
  399. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_link_resolver.py +0 -0
  400. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_removal_bug.py +0 -0
  401. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_service.py +0 -0
  402. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_service_operations.py +0 -0
  403. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_search_service.py +0 -0
  404. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_character_conflicts.py +0 -0
  405. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_coordinator.py +0 -0
  406. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_service.py +0 -0
  407. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_service_incremental.py +0 -0
  408. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_wikilink_issue.py +0 -0
  409. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_tmp_files.py +0 -0
  410. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service.py +0 -0
  411. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_atomic_adds.py +0 -0
  412. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_edge_cases.py +0 -0
  413. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_reload.py +0 -0
  414. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_config.py +0 -0
  415. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_deps.py +0 -0
  416. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_production_cascade_delete.py +0 -0
  417. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_project_resolver.py +0 -0
  418. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_rclone_commands.py +0 -0
  419. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_runtime.py +0 -0
  420. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_telemetry.py +0 -0
  421. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_file_utils.py +0 -0
  422. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
  423. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_parse_tags.py +0 -0
  424. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_permalink_formatting.py +0 -0
  425. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_timezone_utils.py +0 -0
  426. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_utf8_handling.py +0 -0
  427. {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_validate_project_path.py +0 -0
  428. {basic_memory-0.17.5 → basic_memory-0.17.6}/uv.lock +0 -0
@@ -1,5 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.17.6 (2026-01-17)
4
+
5
+ ### Bug Fixes
6
+
7
+ - **#510**: Fix Docker container Python symlink broken at runtime
8
+ ([`1799c94`](https://github.com/basicmachines-co/basic-memory/commit/1799c94))
9
+
10
+ ### Internal
11
+
12
+ - Remove logfire config and specs docs, reduce lifespan and sync logging to debug level
13
+ ([`d1d433d`](https://github.com/basicmachines-co/basic-memory/commit/d1d433d),
14
+ [`803f3ef`](https://github.com/basicmachines-co/basic-memory/commit/803f3ef))
15
+
3
16
  ## v0.17.5 (2026-01-11)
4
17
 
5
18
  ### Bug Fixes
@@ -8,8 +8,13 @@ ARG GID=1000
8
8
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
9
9
 
10
10
  # Set environment variables
11
+ # UV_PYTHON_INSTALL_DIR ensures Python is installed to a persistent location
12
+ # that survives in the final image (not in /root/.local which gets lost)
13
+ # UV_PYTHON_PREFERENCE=only-managed tells uv to use its managed Python version
11
14
  ENV PYTHONUNBUFFERED=1 \
12
- PYTHONDONTWRITEBYTECODE=1
15
+ PYTHONDONTWRITEBYTECODE=1 \
16
+ UV_PYTHON_INSTALL_DIR=/python \
17
+ UV_PYTHON_PREFERENCE=only-managed
13
18
 
14
19
  # Create a group and user with the provided UID/GID
15
20
  # Check if the GID already exists, if not create appgroup
@@ -19,9 +24,10 @@ RUN (getent group ${GID} || groupadd --gid ${GID} appgroup) && \
19
24
  # Copy the project into the image
20
25
  ADD . /app
21
26
 
22
- # Sync the project into a new environment, asserting the lockfile is up to date
27
+ # Install Python 3.13 explicitly and sync the project
23
28
  WORKDIR /app
24
- RUN uv sync --locked
29
+ RUN uv python install 3.13
30
+ RUN uv sync --locked --python 3.13
25
31
 
26
32
  # Create necessary directories and set ownership
27
33
  RUN mkdir -p /app/data/basic-memory /app/.basic-memory && \
@@ -43,4 +49,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
43
49
  CMD basic-memory --version || exit 1
44
50
 
45
51
  # Use the basic-memory entrypoint to run the MCP server with default SSE transport
46
- CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
52
+ CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.17.5
3
+ Version: 0.17.6
4
4
  Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
5
5
  Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
6
6
  Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
@@ -220,6 +220,11 @@ release version:
220
220
  echo "✅ Release {{version}} created successfully!"
221
221
  echo "📦 GitHub Actions will build and publish to PyPI"
222
222
  echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
223
+ echo ""
224
+ echo "📝 REMINDER: Update documentation sites after release is published:"
225
+ echo " 1. docs.basicmemory.com - Add release notes to src/pages/latest-releases.mdx"
226
+ echo " 2. basicmachines.co - Update version in src/components/sections/hero.tsx"
227
+ echo " See: .claude/commands/release/release.md for detailed instructions"
223
228
 
224
229
  # Create a beta release (e.g., just beta v0.13.2b1)
225
230
  beta version:
@@ -281,6 +286,11 @@ beta version:
281
286
  echo "📦 GitHub Actions will build and publish to PyPI as pre-release"
282
287
  echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
283
288
  echo "📥 Install with: uv tool install basic-memory --pre"
289
+ echo ""
290
+ echo "📝 REMINDER: For stable releases, update documentation sites:"
291
+ echo " 1. docs.basicmemory.com - Add release notes to src/pages/latest-releases.mdx"
292
+ echo " 2. basicmachines.co - Update version in src/components/sections/hero.tsx"
293
+ echo " See: .claude/commands/release/release.md for detailed instructions"
284
294
 
285
295
  # List all available recipes
286
296
  default:
@@ -146,6 +146,3 @@ omit = [
146
146
  "*/telemetry.py", # External analytics; tested lightly, excluded from strict coverage target
147
147
  "*/services/migration_service.py", # Complex migration scenarios
148
148
  ]
149
-
150
- [tool.logfire]
151
- ignore_no_config = true
@@ -1,7 +1,7 @@
1
1
  """basic-memory - Local-first knowledge management combining Zettelkasten with knowledge graphs"""
2
2
 
3
3
  # Package version - updated by release automation
4
- __version__ = "0.17.5"
4
+ __version__ = "0.17.6"
5
5
 
6
6
  # API version for FastAPI - independent of package version
7
7
  __api_version__ = "v0"
@@ -1,9 +1,3 @@
1
- # Suppress Logfire "not configured" warning - we only use Logfire in cloud/server contexts
2
- import os
3
-
4
- os.environ.setdefault("LOGFIRE_IGNORE_NO_CONFIG", "1")
5
-
6
- # Remove loguru's default handler IMMEDIATELY, before any other imports.
7
1
  # This prevents DEBUG logs from appearing on stdout during module-level
8
2
  # initialization (e.g., template_loader.TemplateLoader() logs at DEBUG level).
9
3
  from loguru import logger
@@ -139,7 +139,6 @@ def status() -> None:
139
139
  def setup() -> None:
140
140
  """Set up cloud sync by installing rclone and configuring credentials.
141
141
 
142
- SPEC-20: Simplified to project-scoped workflow.
143
142
  After setup, use project commands for syncing:
144
143
  bm project add <name> <path> --local-path ~/projects/<name>
145
144
  bm project bisync --name <name> --resync # First time
@@ -28,7 +28,7 @@ async def lifespan(app: FastMCP):
28
28
  container = McpContainer.create()
29
29
  set_container(container)
30
30
 
31
- logger.info(f"Starting Basic Memory MCP server (mode={container.mode.name})")
31
+ logger.debug(f"Starting Basic Memory MCP server (mode={container.mode.name})")
32
32
 
33
33
  # Show telemetry notice (first run only) and track startup
34
34
  show_notice_if_needed()
@@ -50,13 +50,13 @@ async def lifespan(app: FastMCP):
50
50
  yield
51
51
  finally:
52
52
  # Shutdown - coordinator handles clean task cancellation
53
- logger.info("Shutting down Basic Memory MCP server")
53
+ logger.debug("Shutting down Basic Memory MCP server")
54
54
  await sync_coordinator.stop()
55
55
 
56
56
  # Only shutdown DB if we created it (not if test fixture provided it)
57
57
  if engine_was_none:
58
58
  await db.shutdown_db()
59
- logger.info("Database connections closed")
59
+ logger.debug("Database connections closed")
60
60
  else: # pragma: no cover
61
61
  logger.debug("Skipping DB shutdown - engine provided externally")
62
62
 
@@ -78,7 +78,7 @@ class SyncCoordinator:
78
78
  """
79
79
  if not self.should_sync:
80
80
  if self.skip_reason:
81
- logger.info(f"{self.skip_reason} - skipping local file sync")
81
+ logger.debug(f"{self.skip_reason} - skipping local file sync")
82
82
  self._status = SyncStatus.STOPPED
83
83
  return
84
84
 
@@ -1,156 +0,0 @@
1
- ---
2
- title: 'SPEC-1: Specification-Driven Development Process'
3
- type: spec
4
- permalink: specs/spec-1-specification-driven-development-process
5
- tags:
6
- - process
7
- - specification
8
- - development
9
- - meta
10
- ---
11
-
12
- # SPEC-1: Specification-Driven Development Process
13
-
14
- ## Why
15
- We're implementing specification-driven development to solve the complexity and circular refactoring issues in our web development process.
16
- Instead of getting lost in framework details and type gymnastics, we start with clear specifications that drive implementation.
17
-
18
- The default approach of adhoc development with AI agents tends to result in:
19
- - Circular refactoring cycles
20
- - Fighting framework complexity
21
- - Lost context between sessions
22
- - Unclear requirements and scope
23
-
24
- ## What
25
- This spec defines our process for using basic-memory as the specification engine to build basic-memory-cloud.
26
- We're creating a recursive development pattern where basic-memory manages the specs that drive the development of basic-memory-cloud.
27
-
28
- **Affected Areas:**
29
- - All future component development
30
- - Architecture decisions
31
- - Agent collaboration workflows
32
- - Knowledge management and context preservation
33
-
34
- ## How (High Level)
35
-
36
- ### Specification Structure
37
-
38
- Name: Spec names should be numbered sequentially, followed by a description eg. `SPEC-X - Simple Description.md`.
39
- See: [[Spec-2: Slash Commands Reference]]
40
-
41
- Every spec is a complete thought containing:
42
- - **Why**: The reasoning and problem being solved
43
- - **What**: What is affected or changed
44
- - **How**: High-level approach to implementation
45
- - **How to Evaluate**: Testing/validation procedure
46
- - Additional context as needed
47
-
48
- ### Living Specification Format
49
-
50
- Specifications are **living documents** that evolve throughout implementation:
51
-
52
- **Progress Tracking:**
53
- - **Completed items**: Use ✅ checkmark emoji for implemented features
54
- - **Pending items**: Use `- [ ]` GitHub-style checkboxes for remaining tasks
55
- - **In-progress items**: Use `- [x]` when work is actively underway
56
-
57
- **Status Philosophy:**
58
- - **Avoid static status headers** like "COMPLETE" or "IN PROGRESS" that become stale
59
- - **Use checklists within content** to show granular implementation progress
60
- - **Keep specs informative** while providing clear progress visibility
61
- - **Update continuously** as understanding and implementation evolve
62
-
63
- **Example Format:**
64
- ```markdown
65
- ### ComponentName
66
- - ✅ Basic functionality implemented
67
- - ✅ Props and events defined
68
- - - [ ] Add sorting controls
69
- - - [ ] Improve accessibility
70
- - - [x] Currently implementing responsive design
71
- ```
72
-
73
- This creates **git-friendly progress tracking** where `[ ]` easily becomes `[x]` or ✅ when completed, and specs remain valuable throughout the development lifecycle.
74
-
75
-
76
- ## Claude Code
77
-
78
- We will leverage Claude Code capabilities to make the process semi-automated.
79
-
80
- - Slash commands: define repeatable steps in the process (create spec, implement, review, etc)
81
- - Agents: define roles to carry out instructions (front end developer, baskend developer, etc)
82
- - MCP tools: enable agents to implement specs via actions (write code, test, etc)
83
-
84
- ### Workflow
85
- 1. **Create**: Write spec as complete thought in `/specs` folder
86
- 2. **Discuss**: Iterate and refine through agent collaboration
87
- 3. **Implement**: Hand spec to appropriate specialist agent
88
- 4. **Validate**: Review implementation against spec criteria
89
- 5. **Document**: Update spec with learnings and decisions
90
-
91
- ### Slash Commands
92
-
93
- Claude slash commands are used to manage the flow.
94
- These are simple instructions to help make the process uniform.
95
- They can be updated and refined as needed.
96
-
97
- - `/spec create [name]` - Create new specification
98
- - `/spec status` - Show current spec states
99
- - `/spec implement [name]` - Hand to appropriate agent
100
- - `/spec review [name]` - Validate implementation
101
-
102
- ### Agent Orchestration
103
-
104
- Agents are defined with clear roles, for instance:
105
-
106
- - **system-architect**: Creates high-level specs, ADRs, architectural decisions
107
- - **vue-developer**: Component specs, UI patterns, frontend architecture
108
- - **python-developer**: Implementation specs, technical details, backend logic
109
- -
110
- - Each agent reads/updates specs through basic-memory tools.
111
-
112
- ## How to Evaluate
113
-
114
- ### Success Criteria
115
- - Specs provide clear, actionable guidance for implementation
116
- - Reduced circular refactoring and scope creep
117
- - Persistent context across development sessions
118
- - Clean separation between "what/why" and implementation details
119
- - Specs record a history of what happened and why for historical context
120
-
121
- ### Testing Procedure
122
- 1. Create a spec for an existing problematic component
123
- 2. Have an agent implement following only the spec
124
- 3. Compare result quality and development speed vs. ad-hoc approach
125
- 4. Measure context preservation across sessions
126
- 5. Evaluate spec clarity and completeness
127
-
128
- ### Metrics
129
- - Time from spec to working implementation
130
- - Number of refactoring cycles required
131
- - Agent understanding of requirements
132
- - Spec reusability for similar components
133
-
134
- ## Notes
135
- - Start simple: specs are just complete thoughts, not heavy processes
136
- - Use basic-memory's knowledge graph to link specs, decisions, components
137
- - Let the process evolve naturally based on what works
138
- - Focus on solving the actual problem: Manage complexity in development
139
-
140
- ## Observations
141
-
142
- - [problem] Web development without clear goals and documentation circular refactoring cycles #complexity
143
- - [solution] Specification-driven development reduces scope creep and context loss #process-improvement
144
- - [pattern] basic-memory as specification engine creates recursive development loop #meta-development
145
- - [workflow] Five-step process: Create → Discuss → Implement → Validate → Document #methodology
146
- - [tool] Slash commands provide uniform process automation #automation
147
- - [agent-pattern] Three specialized agents handle different implementation domains #specialization
148
- - [success-metric] Time from spec to working implementation measures process efficiency #measurement
149
- - [learning] Process should evolve naturally based on what works in practice #adaptation
150
- - [format] Living specifications use checklists for progress tracking instead of static status headers #documentation
151
- - [evolution] Specs evolve throughout implementation maintaining value as working documents #continuous-improvement
152
-
153
- ## Relations
154
-
155
- - spec [[Spec-2: Slash Commands Reference]]
156
- - spec [[Spec-3: Agent Definitions]]