basic-memory 0.15.2__tar.gz → 0.16.1__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 (380) hide show
  1. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude-code-review.yml +4 -1
  2. {basic_memory-0.15.2 → basic_memory-0.16.1}/CHANGELOG.md +245 -0
  3. {basic_memory-0.15.2 → basic_memory-0.16.1}/PKG-INFO +13 -2
  4. {basic_memory-0.15.2 → basic_memory-0.16.1}/README.md +11 -1
  5. {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/ai-assistant-guide-extended.md +7 -26
  6. basic_memory-0.16.1/docs/cloud-cli.md +726 -0
  7. {basic_memory-0.15.2 → basic_memory-0.16.1}/justfile +1 -1
  8. {basic_memory-0.15.2 → basic_memory-0.16.1}/pyproject.toml +1 -0
  9. basic_memory-0.16.1/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +569 -0
  10. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-11 Basic Memory API Performance Optimization.md +10 -69
  11. basic_memory-0.16.1/specs/SPEC-12 OpenTelemetry Observability.md +182 -0
  12. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-13 CLI Authentication with Subscription Validation.md +42 -552
  13. basic_memory-0.16.1/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +210 -0
  14. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +27 -18
  15. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-16 MCP Cloud Service Consolidation.md +163 -82
  16. basic_memory-0.16.1/specs/SPEC-19 Sync Performance and Memory Optimization.md +1046 -0
  17. basic_memory-0.16.1/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +1216 -0
  18. basic_memory-0.16.1/specs/SPEC-4 Notes Web UI Component Architecture.md +311 -0
  19. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-6 Explicit Project Parameter Architecture.md +58 -47
  20. basic_memory-0.16.1/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +324 -0
  21. basic_memory-0.16.1/specs/SPEC-9 Signed Header Tenant Information.md +196 -0
  22. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/__init__.py +1 -1
  23. basic_memory-0.16.1/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +49 -0
  24. basic_memory-0.16.1/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +37 -0
  25. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/project_router.py +80 -12
  26. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/resource_router.py +14 -0
  27. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/auth.py +5 -5
  28. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/__init__.py +1 -2
  29. basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/bisync_commands.py +110 -0
  30. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/cloud_utils.py +3 -2
  31. basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/core_commands.py +195 -0
  32. basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/rclone_commands.py +301 -0
  33. basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/rclone_config.py +110 -0
  34. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/rclone_installer.py +61 -10
  35. basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/upload.py +233 -0
  36. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/upload_command.py +39 -8
  37. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/command_utils.py +14 -6
  38. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/db.py +3 -3
  39. basic_memory-0.16.1/src/basic_memory/cli/commands/project.py +876 -0
  40. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/status.py +17 -2
  41. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/main.py +0 -1
  42. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/config.py +33 -11
  43. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/deps.py +2 -0
  44. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/file_utils.py +20 -75
  45. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/ignore_utils.py +16 -14
  46. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/claude_conversations_importer.py +6 -1
  47. basic_memory-0.16.1/src/basic_memory/markdown/entity_parser.py +240 -0
  48. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/__init__.py +0 -2
  49. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/build_context.py +1 -25
  50. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/canvas.py +8 -1
  51. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/read_note.py +0 -8
  52. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/search.py +3 -3
  53. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/utils.py +0 -70
  54. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/write_note.py +7 -18
  55. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/knowledge.py +7 -0
  56. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/project.py +5 -0
  57. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/entity_repository.py +69 -16
  58. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/sync_report.py +25 -1
  59. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/entity_service.py +8 -1
  60. basic_memory-0.16.1/src/basic_memory/services/exceptions.py +37 -0
  61. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/file_service.py +162 -24
  62. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/initialization.py +0 -10
  63. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/project_service.py +44 -10
  64. basic_memory-0.16.1/src/basic_memory/sync/sync_service.py +1245 -0
  65. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/watch_service.py +14 -0
  66. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/utils.py +58 -0
  67. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/cli/test_project_commands_integration.py +3 -3
  68. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_disable_permalinks_integration.py +3 -0
  69. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_project_router.py +365 -0
  70. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_claude_conversations.py +52 -0
  71. basic_memory-0.16.1/tests/cli/test_project_add_with_local_path.py +149 -0
  72. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_upload.py +185 -1
  73. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/conftest.py +2 -0
  74. basic_memory-0.16.1/tests/markdown/test_date_frontmatter_parsing.py +236 -0
  75. basic_memory-0.16.1/tests/markdown/test_entity_parser_error_handling.py +293 -0
  76. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_permalink_collision_file_overwrite.py +24 -0
  77. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_read_note.py +1 -1
  78. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_utils.py +1 -82
  79. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_write_note.py +10 -10
  80. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_entity_repository.py +166 -0
  81. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_entity_repository_upsert.py +30 -0
  82. basic_memory-0.16.1/tests/repository/test_entity_upsert_issue_187.py +132 -0
  83. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_schemas.py +1 -1
  84. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_entity_service.py +49 -0
  85. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_service.py +157 -0
  86. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_sync_service.py +669 -14
  87. basic_memory-0.16.1/tests/sync/test_sync_service_incremental.py +790 -0
  88. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_sync_wikilink_issue.py +20 -0
  89. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service.py +82 -0
  90. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_config.py +100 -1
  91. basic_memory-0.16.1/tests/test_rclone_commands.py +353 -0
  92. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_file_utils.py +0 -82
  93. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_frontmatter_obsidian_compatible.py +97 -0
  94. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_utf8_handling.py +7 -5
  95. {basic_memory-0.15.2 → basic_memory-0.16.1}/uv.lock +214 -0
  96. basic_memory-0.15.2/docs/cloud-cli.md +0 -730
  97. basic_memory-0.15.2/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +0 -193
  98. basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -765
  99. basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/core_commands.py +0 -288
  100. basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/mount_commands.py +0 -295
  101. basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -288
  102. basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/upload.py +0 -128
  103. basic_memory-0.15.2/src/basic_memory/cli/commands/project.py +0 -355
  104. basic_memory-0.15.2/src/basic_memory/cli/commands/sync.py +0 -59
  105. basic_memory-0.15.2/src/basic_memory/markdown/entity_parser.py +0 -135
  106. basic_memory-0.15.2/src/basic_memory/mcp/tools/sync_status.py +0 -261
  107. basic_memory-0.15.2/src/basic_memory/services/exceptions.py +0 -22
  108. basic_memory-0.15.2/src/basic_memory/services/sync_status_service.py +0 -198
  109. basic_memory-0.15.2/src/basic_memory/sync/sync_service.py +0 -776
  110. basic_memory-0.15.2/test-int/cli/test_sync_commands_integration.py +0 -61
  111. basic_memory-0.15.2/tests/cli/test_bisync_commands.py +0 -463
  112. basic_memory-0.15.2/tests/cli/test_cloud_utils.py +0 -326
  113. basic_memory-0.15.2/tests/mcp/test_tool_sync_status.py +0 -170
  114. basic_memory-0.15.2/tests/services/test_sync_status_service.py +0 -262
  115. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/agents/python-developer.md +0 -0
  116. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/agents/system-architect.md +0 -0
  117. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/beta.md +0 -0
  118. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/changelog.md +0 -0
  119. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/release-check.md +0 -0
  120. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/release.md +0 -0
  121. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/spec.md +0 -0
  122. {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/test-live.md +0 -0
  123. {basic_memory-0.15.2 → basic_memory-0.16.1}/.dockerignore +0 -0
  124. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  125. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  126. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  127. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  128. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/dependabot.yml +0 -0
  129. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude-issue-triage.yml +0 -0
  130. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude.yml +0 -0
  131. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/dev-release.yml +0 -0
  132. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/docker.yml +0 -0
  133. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/pr-title.yml +0 -0
  134. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/release.yml +0 -0
  135. {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/test.yml +0 -0
  136. {basic_memory-0.15.2 → basic_memory-0.16.1}/.gitignore +0 -0
  137. {basic_memory-0.15.2 → basic_memory-0.16.1}/.python-version +0 -0
  138. {basic_memory-0.15.2 → basic_memory-0.16.1}/CITATION.cff +0 -0
  139. {basic_memory-0.15.2 → basic_memory-0.16.1}/CLA.md +0 -0
  140. {basic_memory-0.15.2 → basic_memory-0.16.1}/CLAUDE.md +0 -0
  141. {basic_memory-0.15.2 → basic_memory-0.16.1}/CODE_OF_CONDUCT.md +0 -0
  142. {basic_memory-0.15.2 → basic_memory-0.16.1}/CONTRIBUTING.md +0 -0
  143. {basic_memory-0.15.2 → basic_memory-0.16.1}/Dockerfile +0 -0
  144. {basic_memory-0.15.2 → basic_memory-0.16.1}/LICENSE +0 -0
  145. {basic_memory-0.15.2 → basic_memory-0.16.1}/SECURITY.md +0 -0
  146. {basic_memory-0.15.2 → basic_memory-0.16.1}/docker-compose.yml +0 -0
  147. {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/Docker.md +0 -0
  148. {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/character-handling.md +0 -0
  149. {basic_memory-0.15.2 → basic_memory-0.16.1}/llms-install.md +0 -0
  150. {basic_memory-0.15.2 → basic_memory-0.16.1}/smithery.yaml +0 -0
  151. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-1 Specification-Driven Development Process.md +0 -0
  152. /basic_memory-0.15.2/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md → /basic_memory-0.16.1/specs/SPEC-14 Cloud Git Versioning & GitHub Backup.md +0 -0
  153. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-17 Semantic Search with ChromaDB.md +0 -0
  154. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-18 AI Memory Management Tool.md +0 -0
  155. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-2 Slash Commands Reference.md +0 -0
  156. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-3 Agent Definitions.md +0 -0
  157. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +0 -0
  158. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-8 TigrisFS Integration.md +0 -0
  159. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +0 -0
  160. {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +0 -0
  161. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/alembic.ini +0 -0
  162. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/env.py +0 -0
  163. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/migrations.py +0 -0
  164. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/script.py.mako +0 -0
  165. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
  166. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
  167. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
  168. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
  169. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
  170. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
  171. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
  172. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/__init__.py +0 -0
  173. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/app.py +0 -0
  174. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/__init__.py +0 -0
  175. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/directory_router.py +0 -0
  176. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/importer_router.py +0 -0
  177. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/knowledge_router.py +0 -0
  178. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/management_router.py +0 -0
  179. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/memory_router.py +0 -0
  180. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/prompt_router.py +0 -0
  181. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/search_router.py +0 -0
  182. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/utils.py +0 -0
  183. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/template_loader.py +0 -0
  184. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/__init__.py +0 -0
  185. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/app.py +0 -0
  186. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
  187. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
  188. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
  189. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
  190. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
  191. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
  192. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/mcp.py +0 -0
  193. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/tool.py +0 -0
  194. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/db.py +0 -0
  195. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/__init__.py +0 -0
  196. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/base.py +0 -0
  197. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/chatgpt_importer.py +0 -0
  198. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/claude_projects_importer.py +0 -0
  199. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/memory_json_importer.py +0 -0
  200. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/utils.py +0 -0
  201. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/__init__.py +0 -0
  202. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/markdown_processor.py +0 -0
  203. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/plugins.py +0 -0
  204. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/schemas.py +0 -0
  205. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/utils.py +0 -0
  206. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/__init__.py +0 -0
  207. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/async_client.py +0 -0
  208. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/project_context.py +0 -0
  209. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/__init__.py +0 -0
  210. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
  211. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
  212. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
  213. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/search.py +0 -0
  214. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/utils.py +0 -0
  215. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
  216. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/resources/project_info.py +0 -0
  217. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/server.py +0 -0
  218. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
  219. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/delete_note.py +0 -0
  220. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/edit_note.py +0 -0
  221. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/list_directory.py +0 -0
  222. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/move_note.py +0 -0
  223. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/project_management.py +0 -0
  224. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/read_content.py +0 -0
  225. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
  226. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/view_note.py +0 -0
  227. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/__init__.py +0 -0
  228. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/base.py +0 -0
  229. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/search.py +0 -0
  230. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/__init__.py +0 -0
  231. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/observation_repository.py +0 -0
  232. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/project_info_repository.py +0 -0
  233. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/project_repository.py +0 -0
  234. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/relation_repository.py +0 -0
  235. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/repository.py +0 -0
  236. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/search_repository.py +0 -0
  237. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/__init__.py +0 -0
  238. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/base.py +0 -0
  239. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/cloud.py +0 -0
  240. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/delete.py +0 -0
  241. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/directory.py +0 -0
  242. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/importer.py +0 -0
  243. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/memory.py +0 -0
  244. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/project_info.py +0 -0
  245. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/prompt.py +0 -0
  246. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/request.py +0 -0
  247. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/response.py +0 -0
  248. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/search.py +0 -0
  249. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/__init__.py +0 -0
  250. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/context_service.py +0 -0
  251. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/directory_service.py +0 -0
  252. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/link_resolver.py +0 -0
  253. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/search_service.py +0 -0
  254. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/service.py +0 -0
  255. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/__init__.py +0 -0
  256. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/background_sync.py +0 -0
  257. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
  258. {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/templates/prompts/search.hbs +0 -0
  259. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/BENCHMARKS.md +0 -0
  260. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/cli/test_version_integration.py +0 -0
  261. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/conftest.py +0 -0
  262. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_build_context_underscore.py +0 -0
  263. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_build_context_validation.py +0 -0
  264. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
  265. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_default_project_mode_integration.py +0 -0
  266. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_delete_note_integration.py +0 -0
  267. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_edit_note_integration.py +0 -0
  268. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_list_directory_integration.py +0 -0
  269. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_move_note_integration.py +0 -0
  270. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_project_management_integration.py +0 -0
  271. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_project_state_sync_integration.py +0 -0
  272. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_read_content_integration.py +0 -0
  273. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_read_note_integration.py +0 -0
  274. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_search_integration.py +0 -0
  275. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
  276. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_write_note_integration.py +0 -0
  277. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_db_wal_mode.py +0 -0
  278. {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_sync_performance_benchmark.py +0 -0
  279. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/Non-MarkdownFileSupport.pdf +0 -0
  280. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/Screenshot.png +0 -0
  281. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/__init__.py +0 -0
  282. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/conftest.py +0 -0
  283. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_async_client.py +0 -0
  284. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_continue_conversation_template.py +0 -0
  285. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_directory_router.py +0 -0
  286. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_importer_router.py +0 -0
  287. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_knowledge_router.py +0 -0
  288. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_management_router.py +0 -0
  289. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_memory_router.py +0 -0
  290. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_project_router_operations.py +0 -0
  291. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_prompt_router.py +0 -0
  292. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_relation_background_resolution.py +0 -0
  293. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_resource_router.py +0 -0
  294. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_search_router.py +0 -0
  295. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_search_template.py +0 -0
  296. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_template_loader.py +0 -0
  297. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_template_loader_helpers.py +0 -0
  298. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/conftest.py +0 -0
  299. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_cli_tools.py +0 -0
  300. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_cloud_authentication.py +0 -0
  301. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_ignore_utils.py +0 -0
  302. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_chatgpt.py +0 -0
  303. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_claude_projects.py +0 -0
  304. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_memory_json.py +0 -0
  305. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
  306. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/importers/test_importer_base.py +0 -0
  307. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/importers/test_importer_utils.py +0 -0
  308. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/__init__.py +0 -0
  309. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_entity_parser.py +0 -0
  310. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_markdown_plugins.py +0 -0
  311. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_markdown_processor.py +0 -0
  312. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_observation_edge_cases.py +0 -0
  313. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_parser_edge_cases.py +0 -0
  314. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_relation_edge_cases.py +0 -0
  315. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_task_detection.py +0 -0
  316. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/conftest.py +0 -0
  317. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
  318. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_prompts.py +0 -0
  319. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_resources.py +0 -0
  320. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_build_context.py +0 -0
  321. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_canvas.py +0 -0
  322. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_delete_note.py +0 -0
  323. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_edit_note.py +0 -0
  324. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_list_directory.py +0 -0
  325. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_move_note.py +0 -0
  326. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_read_content.py +0 -0
  327. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_recent_activity.py +0 -0
  328. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_resource.py +0 -0
  329. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_search.py +0 -0
  330. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_view_note.py +0 -0
  331. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
  332. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_observation_repository.py +0 -0
  333. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_project_info_repository.py +0 -0
  334. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_project_repository.py +0 -0
  335. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_relation_repository.py +0 -0
  336. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_repository.py +0 -0
  337. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_search_repository.py +0 -0
  338. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
  339. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_base_timeframe_minimum.py +0 -0
  340. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_serialization.py +0 -0
  341. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_url.py +0 -0
  342. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_url_validation.py +0 -0
  343. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_search.py +0 -0
  344. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_context_service.py +0 -0
  345. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_directory_service.py +0 -0
  346. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_entity_service_disable_permalinks.py +0 -0
  347. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_file_service.py +0 -0
  348. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_initialization.py +0 -0
  349. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_link_resolver.py +0 -0
  350. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_removal_bug.py +0 -0
  351. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_service_operations.py +0 -0
  352. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_search_service.py +0 -0
  353. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_character_conflicts.py +0 -0
  354. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_tmp_files.py +0 -0
  355. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service_edge_cases.py +0 -0
  356. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service_reload.py +0 -0
  357. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_db_migration_deduplication.py +0 -0
  358. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_deps.py +0 -0
  359. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_production_cascade_delete.py +0 -0
  360. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_parse_tags.py +0 -0
  361. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_permalink_formatting.py +0 -0
  362. {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_validate_project_path.py +0 -0
  363. {basic_memory-0.15.2 → basic_memory-0.16.1}/v0.15.0-RELEASE-DOCS.md +0 -0
  364. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/README.md +0 -0
  365. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/api-performance.md +0 -0
  366. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/background-relations.md +0 -0
  367. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/basic-memory-home.md +0 -0
  368. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/bug-fixes.md +0 -0
  369. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/chatgpt-integration.md +0 -0
  370. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-authentication.md +0 -0
  371. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-bisync.md +0 -0
  372. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-mode-usage.md +0 -0
  373. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-mount.md +0 -0
  374. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/default-project-mode.md +0 -0
  375. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/env-file-removal.md +0 -0
  376. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/env-var-overrides.md +0 -0
  377. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/explicit-project-parameter.md +0 -0
  378. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/gitignore-integration.md +0 -0
  379. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/project-root-env-var.md +0 -0
  380. {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/sqlite-performance.md +0 -0
@@ -71,9 +71,12 @@ jobs:
71
71
  - [ ] Proper error handling and logging
72
72
  - [ ] Performance considerations addressed
73
73
  - [ ] No sensitive data in logs or commits
74
+
75
+ ## Compatability
76
+ - [ ] File path comparisons must be windows compatible
77
+ - [ ] Avoid using emojis and unicode characters in console and log output
74
78
 
75
79
  Read the CLAUDE.md file for detailed project context. For each checklist item, verify if it's satisfied and comment on any that need attention. Use inline comments for specific code issues and post a summary with checklist results.
76
80
 
77
81
  # Allow broader tool access for thorough code review
78
82
  claude_args: '--allowed-tools "Bash(gh pr:*),Bash(gh issue:*),Bash(gh api:*),Bash(git log:*),Bash(git show:*),Read,Grep,Glob"'
79
-
@@ -1,5 +1,250 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.16.1 (2025-11-11)
4
+
5
+ ### Bug Fixes
6
+
7
+ - **#422**: Handle Windows line endings in rclone bisync
8
+ ([`e9d0a94`](https://github.com/basicmachines-co/basic-memory/commit/e9d0a94))
9
+ - Added `--compare=modtime` flag to rclone bisync to ignore size differences from line ending conversions
10
+ - Fixes issue where LF→CRLF conversion on Windows was treated as file corruption
11
+ - Resolves "corrupted on transfer: sizes differ" errors during cloud sync on Windows
12
+ - Users will need to run `--resync` once after updating to establish new baseline
13
+
14
+ ## v0.16.0 (2025-11-10)
15
+
16
+ ### Features
17
+
18
+ - **#417**: Add run_in_background parameter to sync endpoint
19
+ ([`7ccec7e`](https://github.com/basicmachines-co/basic-memory/commit/7ccec7e))
20
+ - New `run_in_background` parameter for async sync operations
21
+ - Improved API flexibility for long-running sync tasks
22
+ - Comprehensive test coverage for background sync behavior
23
+
24
+ - **#405**: SPEC-20 Simplified Project-Scoped Rclone Sync
25
+ ([`0b3272a`](https://github.com/basicmachines-co/basic-memory/commit/0b3272a))
26
+ - Simplified and more reliable cloud synchronization
27
+ - Project-scoped rclone configuration
28
+ - Better error handling and status reporting
29
+
30
+ - **#384**: Streaming Foundation & Async I/O Consolidation (SPEC-19)
31
+ ([`e78345f`](https://github.com/basicmachines-co/basic-memory/commit/e78345f))
32
+ - Foundation for streaming support in future releases
33
+ - Consolidated async I/O patterns across codebase
34
+ - Improved performance and resource management
35
+
36
+ - **#364**: Add circuit breaker for file sync failures
37
+ ([`434cdf2`](https://github.com/basicmachines-co/basic-memory/commit/434cdf2))
38
+ - Prevents cascading failures during sync operations
39
+ - Automatic recovery from transient errors
40
+ - Better resilience in cloud sync scenarios
41
+
42
+ - **#362**: Add --verbose and --no-gitignore options to cloud upload
43
+ ([`7f9c1a9`](https://github.com/basicmachines-co/basic-memory/commit/7f9c1a9))
44
+ - Enhanced upload control with verbose logging
45
+ - Option to bypass gitignore filtering when needed
46
+ - Better debugging and troubleshooting capabilities
47
+
48
+ - **#391**: Add delete_notes parameter to remove project endpoint
49
+ ([`c9946ec`](https://github.com/basicmachines-co/basic-memory/commit/c9946ec))
50
+ - Option to delete notes when removing projects
51
+ - Safer project cleanup workflows
52
+ - Prevents accidental data loss
53
+
54
+ ### Bug Fixes
55
+
56
+ - **#420**: Skip archive files during cloud upload
57
+ ([`49b2adc`](https://github.com/basicmachines-co/basic-memory/commit/49b2adc))
58
+ - Prevents uploading of zip, tar, gz and other archive files
59
+ - Reduces storage usage and upload time
60
+ - Better file filtering during cloud operations
61
+
62
+ - **#419**: Rename write_note entity_type to note_type for clarity
63
+ ([`1646572`](https://github.com/basicmachines-co/basic-memory/commit/1646572))
64
+ - Clearer parameter naming in write_note tool
65
+ - Improved API consistency and documentation
66
+ - Better developer experience
67
+
68
+ - **#418**: Quote string values in YAML frontmatter to handle special characters
69
+ ([`f0d7398`](https://github.com/basicmachines-co/basic-memory/commit/f0d7398))
70
+ - Fixes YAML parsing errors with special characters
71
+ - More robust frontmatter handling
72
+ - Prevents data corruption in edge cases
73
+
74
+ - **#415**: Handle dict objects in write_resource endpoint
75
+ ([`4614fd0`](https://github.com/basicmachines-co/basic-memory/commit/4614fd0))
76
+ - Fixes errors when writing dictionary resources
77
+ - Better type handling in resource endpoints
78
+ - Improved API robustness
79
+
80
+ - **#414**: Replace Unicode arrows with ASCII for Windows compatibility
81
+ ([`fc01f6a`](https://github.com/basicmachines-co/basic-memory/commit/fc01f6a))
82
+ - Fixes display issues on Windows terminals
83
+ - Better cross-platform compatibility
84
+ - Improved CLI user experience on Windows
85
+
86
+ - **#411**: Windows CLI Unicode encoding errors
87
+ ([`0ba6f21`](https://github.com/basicmachines-co/basic-memory/commit/0ba6f21))
88
+ - Resolves Unicode encoding issues on Windows
89
+ - Better handling of international characters
90
+ - Improved Windows platform support
91
+
92
+ - **#410**: Various rclone fixes for cloud sync on Windows
93
+ ([`c9946ec`](https://github.com/basicmachines-co/basic-memory/commit/c9946ec))
94
+ - Fixes cloud sync reliability on Windows
95
+ - Better path handling for Windows filesystem
96
+ - Improved rclone integration on Windows
97
+
98
+ - **#402**: Normalize YAML frontmatter types to prevent AttributeError
99
+ ([`a7d7cc5`](https://github.com/basicmachines-co/basic-memory/commit/a7d7cc5))
100
+ - Fixes AttributeError when reading frontmatter
101
+ - More robust type normalization
102
+ - Better error handling in markdown parsing
103
+
104
+ - **#396**: Strip duplicate headers in edit_note replace_section
105
+ ([`021af74`](https://github.com/basicmachines-co/basic-memory/commit/021af74))
106
+ - Prevents duplicate headers when replacing sections
107
+ - Cleaner note editing behavior
108
+ - Better content consistency
109
+
110
+ - **#395**: Simplify search_notes schema by removing Optional wrappers
111
+ ([`d775f7b`](https://github.com/basicmachines-co/basic-memory/commit/d775f7b))
112
+ - Cleaner API schema definition
113
+ - Better type safety and validation
114
+ - Improved developer experience
115
+
116
+ - **#394**: Add explicit type annotations to MCP tool parameters
117
+ ([`581b7b1`](https://github.com/basicmachines-co/basic-memory/commit/581b7b1))
118
+ - Better type safety in MCP tools
119
+ - Improved IDE support and autocomplete
120
+ - Clearer tool documentation
121
+
122
+ - **#389**: Handle null, empty, and string 'None' title in markdown frontmatter
123
+ ([`bb8da31`](https://github.com/basicmachines-co/basic-memory/commit/bb8da31))
124
+ - Fixes errors with malformed frontmatter titles
125
+ - More robust title handling
126
+ - Better error recovery
127
+
128
+ - **#380**: Optimize sync memory usage to prevent OOM on large projects
129
+ ([`4fd6d0c`](https://github.com/basicmachines-co/basic-memory/commit/4fd6d0c))
130
+ - Prevents out-of-memory errors on large knowledge bases
131
+ - Better memory management during sync
132
+ - Improved scalability
133
+
134
+ - **#379**: Handle YAML parsing errors gracefully in update_frontmatter
135
+ ([`32236cd`](https://github.com/basicmachines-co/basic-memory/commit/32236cd))
136
+ - Better error handling for malformed YAML
137
+ - Graceful degradation instead of crashes
138
+ - Improved robustness
139
+
140
+ - **#377**: Preserve mtime on WebDAV upload
141
+ ([`e6c8e36`](https://github.com/basicmachines-co/basic-memory/commit/e6c8e36))
142
+ - Maintains file modification times during upload
143
+ - Better sync accuracy
144
+ - Prevents unnecessary re-syncing
145
+
146
+ - **#370**: Prevent deleted projects from being recreated by background sync
147
+ ([`449b62d`](https://github.com/basicmachines-co/basic-memory/commit/449b62d))
148
+ - Fixes race condition with project deletion
149
+ - Better lifecycle management
150
+ - Prevents unwanted project recreation
151
+
152
+ - **#369**: Use filesystem timestamps for entity sync instead of database operation time
153
+ ([`b7497d7`](https://github.com/basicmachines-co/basic-memory/commit/b7497d7))
154
+ - More accurate sync detection
155
+ - Better handling of external file modifications
156
+ - Improved sync reliability
157
+
158
+ - **#368**: Handle YAML parsing errors and missing entity_type in markdown files
159
+ ([`d1431bd`](https://github.com/basicmachines-co/basic-memory/commit/d1431bd))
160
+ - Better error handling for malformed markdown
161
+ - Graceful handling of missing metadata
162
+ - Improved robustness
163
+
164
+ - **#367**: Resolve UNIQUE constraint violation in entity upsert with observations
165
+ ([`171bef7`](https://github.com/basicmachines-co/basic-memory/commit/171bef7))
166
+ - Fixes database constraint errors during sync
167
+ - Better handling of duplicate observations
168
+ - Improved data integrity
169
+
170
+ - **#366**: Terminate sync immediately when project is deleted
171
+ ([`729a5a3`](https://github.com/basicmachines-co/basic-memory/commit/729a5a3))
172
+ - Faster project deletion
173
+ - Better resource cleanup
174
+ - Improved user experience
175
+
176
+ - **#357**: Make project creation endpoint idempotent
177
+ ([`53fb13b`](https://github.com/basicmachines-co/basic-memory/commit/53fb13b))
178
+ - Prevents errors when creating existing projects
179
+ - Better API reliability
180
+ - Improved cloud integration
181
+
182
+ - **#353**: Handle None text values in Claude conversations importer
183
+ ([`bd6c834`](https://github.com/basicmachines-co/basic-memory/commit/bd6c834))
184
+ - Fixes import errors with empty messages
185
+ - Better error handling in importers
186
+ - Improved data migration
187
+
188
+ ### Performance Improvements
189
+
190
+ - Force full database sync after project sync/bisync operations
191
+ ([`2ad0ee9`](https://github.com/basicmachines-co/basic-memory/commit/2ad0ee9))
192
+ - Ensures database consistency after cloud operations
193
+ - Better sync reliability
194
+ - Improved data integrity
195
+
196
+ ### Documentation
197
+
198
+ - Add free trial information to README
199
+ ([`a7d7cc5`](https://github.com/basicmachines-co/basic-memory/commit/a7d7cc5), [`8aaddb6`](https://github.com/basicmachines-co/basic-memory/commit/8aaddb6))
200
+ - Updated README with Basic Memory Cloud trial info
201
+ - Better onboarding experience
202
+ - Clearer pricing information
203
+
204
+ - Announce Basic Memory Cloud launch in README
205
+ ([`d756531`](https://github.com/basicmachines-co/basic-memory/commit/d756531))
206
+ - Official cloud service announcement
207
+ - Updated documentation for cloud features
208
+ - Improved product positioning
209
+
210
+ ### Migration Guide
211
+
212
+ No manual migration required. Upgrade with:
213
+
214
+ ```bash
215
+ # Update via uv
216
+ uv tool upgrade basic-memory
217
+
218
+ # Or install fresh
219
+ uv tool install basic-memory
220
+ ```
221
+
222
+ **What's New in v0.16.0:**
223
+ - Streaming foundation and consolidated async I/O (SPEC-19)
224
+ - Simplified project-scoped rclone sync (SPEC-20)
225
+ - Circuit breaker for sync failure resilience
226
+ - Enhanced Windows platform support
227
+ - Improved cloud upload with verbose and gitignore options
228
+ - Better error handling across YAML parsing and frontmatter
229
+ - Memory optimization for large projects
230
+ - Archive file filtering during upload
231
+
232
+ **Breaking Changes:**
233
+ - `write_note` parameter renamed: `entity_type` → `note_type` for clarity
234
+
235
+ ### Installation
236
+
237
+ ```bash
238
+ # Latest stable release
239
+ uv tool install basic-memory
240
+
241
+ # Update existing installation
242
+ uv tool upgrade basic-memory
243
+
244
+ # Docker
245
+ docker pull ghcr.io/basicmachines-co/basic-memory:v0.16.0
246
+ ```
247
+
3
248
  ## v0.15.2 (2025-10-14)
4
249
 
5
250
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-memory
3
- Version: 0.15.2
3
+ Version: 0.16.1
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
@@ -17,6 +17,7 @@ Requires-Dist: fastapi[standard]>=0.115.8
17
17
  Requires-Dist: fastmcp>=2.10.2
18
18
  Requires-Dist: greenlet>=3.1.1
19
19
  Requires-Dist: icecream>=2.1.3
20
+ Requires-Dist: logfire>=0.73.0
20
21
  Requires-Dist: loguru>=0.7.3
21
22
  Requires-Dist: markdown-it-py>=3.0.0
22
23
  Requires-Dist: mcp>=1.2.0
@@ -46,6 +47,16 @@ Description-Content-Type: text/markdown
46
47
  ![](https://badge.mcpx.dev?type=dev 'MCP Dev')
47
48
  [![smithery badge](https://smithery.ai/badge/@basicmachines-co/basic-memory)](https://smithery.ai/server/@basicmachines-co/basic-memory)
48
49
 
50
+ ## 🚀 Basic Memory Cloud is Live!
51
+
52
+ - **Cross-device and multi-platform support is here.** Your knowledge graph now works on desktop, web, and mobile - seamlessly synced across all your AI tools (Claude, ChatGPT, Gemini, Claude Code, and Codex)
53
+ - **Early Supporter Pricing:** Early users get 25% off forever.
54
+ The open source project continues as always. Cloud just makes it work everywhere.
55
+
56
+ [Sign up now →](https://basicmemory.com/beta)
57
+
58
+ with a 7 day free trial
59
+
49
60
  # Basic Memory
50
61
 
51
62
  Basic Memory lets you build persistent knowledge through natural conversations with Large Language Models (LLMs) like
@@ -479,4 +490,4 @@ and submitting PRs.
479
490
  </picture>
480
491
  </a>
481
492
 
482
- Built with ♥️ by Basic Machines
493
+ Built with ♥️ by Basic Machines
@@ -7,6 +7,16 @@
7
7
  ![](https://badge.mcpx.dev?type=dev 'MCP Dev')
8
8
  [![smithery badge](https://smithery.ai/badge/@basicmachines-co/basic-memory)](https://smithery.ai/server/@basicmachines-co/basic-memory)
9
9
 
10
+ ## 🚀 Basic Memory Cloud is Live!
11
+
12
+ - **Cross-device and multi-platform support is here.** Your knowledge graph now works on desktop, web, and mobile - seamlessly synced across all your AI tools (Claude, ChatGPT, Gemini, Claude Code, and Codex)
13
+ - **Early Supporter Pricing:** Early users get 25% off forever.
14
+ The open source project continues as always. Cloud just makes it work everywhere.
15
+
16
+ [Sign up now →](https://basicmemory.com/beta)
17
+
18
+ with a 7 day free trial
19
+
10
20
  # Basic Memory
11
21
 
12
22
  Basic Memory lets you build persistent knowledge through natural conversations with Large Language Models (LLMs) like
@@ -440,4 +450,4 @@ and submitting PRs.
440
450
  </picture>
441
451
  </a>
442
452
 
443
- Built with ♥️ by Basic Machines
453
+ Built with ♥️ by Basic Machines
@@ -77,25 +77,6 @@ SQLite Database (Index)
77
77
  3. Files are parsed and indexed in SQLite
78
78
  4. MCP server exposes indexed data to AI
79
79
  5. AI can query, traverse, and update knowledge graph
80
-
81
- ### Version 0.15.0 Changes
82
-
83
- **Breaking Change: Stateless Architecture**
84
- - All MCP tools now require explicit `project` parameter
85
- - No implicit project context carried between calls
86
- - Exception: `default_project_mode` config option enables fallback
87
-
88
- **Three-Tier Project Resolution**:
89
- 1. CLI constraint: `--project name` flag (highest priority)
90
- 2. Explicit parameter: `project="name"` in tool calls
91
- 3. Default mode: `default_project_mode=true` in config (fallback)
92
-
93
- **Why This Matters**:
94
- - More predictable behavior across sessions
95
- - Explicit project selection prevents errors
96
- - Multi-project workflows more reliable
97
- - Single-project users can enable default mode for convenience
98
-
99
80
  ---
100
81
 
101
82
  ## Project Management
@@ -576,7 +557,7 @@ Adopt GraphQL instead of REST for our API layer.
576
557
  """,
577
558
  folder="decisions",
578
559
  tags=["decision", "api", "graphql"],
579
- entity_type="decision",
560
+ note_type="decision",
580
561
  project="main"
581
562
  )
582
563
  ```
@@ -613,7 +594,7 @@ await write_note(
613
594
  """,
614
595
  folder="meetings",
615
596
  tags=["meeting", "api", "team"],
616
- entity_type="meeting",
597
+ note_type="meeting",
617
598
  project="main"
618
599
  )
619
600
  ```
@@ -665,7 +646,7 @@ Specification for user authentication system using JWT tokens.
665
646
  """,
666
647
  folder="specs",
667
648
  tags=["spec", "auth", "security"],
668
- entity_type="spec",
649
+ note_type="spec",
669
650
  project="main"
670
651
  )
671
652
  ```
@@ -1631,7 +1612,7 @@ await write_note(
1631
1612
  {related_entities}
1632
1613
  """,
1633
1614
  folder="decisions",
1634
- entity_type="decision",
1615
+ note_type="decision",
1635
1616
  project="main"
1636
1617
  )
1637
1618
  ```
@@ -2706,14 +2687,14 @@ await write_note(
2706
2687
 
2707
2688
  ### Content Management
2708
2689
 
2709
- **write_note(title, content, folder, tags, entity_type, project)**
2690
+ **write_note(title, content, folder, tags, note_type, project)**
2710
2691
  - Create or update markdown notes
2711
2692
  - Parameters:
2712
2693
  - `title` (required): Note title
2713
2694
  - `content` (required): Markdown content
2714
2695
  - `folder` (required): Destination folder
2715
2696
  - `tags` (optional): List of tags
2716
- - `entity_type` (optional): Entity type (note, person, meeting, etc.)
2697
+ - `note_type` (optional): Type of note (stored in frontmatter). Can be "note", "person", "meeting", "guide", etc.
2717
2698
  - `project` (required unless default_project_mode): Target project
2718
2699
  - Returns: Created/updated entity with permalink
2719
2700
  - Example:
@@ -2723,7 +2704,7 @@ await write_note(
2723
2704
  content="# API Design\n...",
2724
2705
  folder="specs",
2725
2706
  tags=["api", "design"],
2726
- entity_type="spec",
2707
+ note_type="spec",
2727
2708
  project="main"
2728
2709
  )
2729
2710
  ```