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.
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude-code-review.yml +4 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CHANGELOG.md +245 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/PKG-INFO +13 -2
- {basic_memory-0.15.2 → basic_memory-0.16.1}/README.md +11 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/ai-assistant-guide-extended.md +7 -26
- basic_memory-0.16.1/docs/cloud-cli.md +726 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/justfile +1 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/pyproject.toml +1 -0
- basic_memory-0.16.1/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +569 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-11 Basic Memory API Performance Optimization.md +10 -69
- basic_memory-0.16.1/specs/SPEC-12 OpenTelemetry Observability.md +182 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-13 CLI Authentication with Subscription Validation.md +42 -552
- basic_memory-0.16.1/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +210 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +27 -18
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-16 MCP Cloud Service Consolidation.md +163 -82
- basic_memory-0.16.1/specs/SPEC-19 Sync Performance and Memory Optimization.md +1046 -0
- basic_memory-0.16.1/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +1216 -0
- basic_memory-0.16.1/specs/SPEC-4 Notes Web UI Component Architecture.md +311 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-6 Explicit Project Parameter Architecture.md +58 -47
- basic_memory-0.16.1/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +324 -0
- basic_memory-0.16.1/specs/SPEC-9 Signed Header Tenant Information.md +196 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/__init__.py +1 -1
- basic_memory-0.16.1/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +49 -0
- basic_memory-0.16.1/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +37 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/project_router.py +80 -12
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/resource_router.py +14 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/auth.py +5 -5
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/__init__.py +1 -2
- basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/bisync_commands.py +110 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/cloud_utils.py +3 -2
- basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/core_commands.py +195 -0
- basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/rclone_commands.py +301 -0
- basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/rclone_config.py +110 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/rclone_installer.py +61 -10
- basic_memory-0.16.1/src/basic_memory/cli/commands/cloud/upload.py +233 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/upload_command.py +39 -8
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/command_utils.py +14 -6
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/db.py +3 -3
- basic_memory-0.16.1/src/basic_memory/cli/commands/project.py +876 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/status.py +17 -2
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/main.py +0 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/config.py +33 -11
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/deps.py +2 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/file_utils.py +20 -75
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/ignore_utils.py +16 -14
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/claude_conversations_importer.py +6 -1
- basic_memory-0.16.1/src/basic_memory/markdown/entity_parser.py +240 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/__init__.py +0 -2
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/build_context.py +1 -25
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/canvas.py +8 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/read_note.py +0 -8
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/search.py +3 -3
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/utils.py +0 -70
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/write_note.py +7 -18
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/knowledge.py +7 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/project.py +5 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/entity_repository.py +69 -16
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/sync_report.py +25 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/entity_service.py +8 -1
- basic_memory-0.16.1/src/basic_memory/services/exceptions.py +37 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/file_service.py +162 -24
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/initialization.py +0 -10
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/project_service.py +44 -10
- basic_memory-0.16.1/src/basic_memory/sync/sync_service.py +1245 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/watch_service.py +14 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/utils.py +58 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/cli/test_project_commands_integration.py +3 -3
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_disable_permalinks_integration.py +3 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_project_router.py +365 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_claude_conversations.py +52 -0
- basic_memory-0.16.1/tests/cli/test_project_add_with_local_path.py +149 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_upload.py +185 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/conftest.py +2 -0
- basic_memory-0.16.1/tests/markdown/test_date_frontmatter_parsing.py +236 -0
- basic_memory-0.16.1/tests/markdown/test_entity_parser_error_handling.py +293 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_permalink_collision_file_overwrite.py +24 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_read_note.py +1 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_utils.py +1 -82
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_write_note.py +10 -10
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_entity_repository.py +166 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_entity_repository_upsert.py +30 -0
- basic_memory-0.16.1/tests/repository/test_entity_upsert_issue_187.py +132 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_schemas.py +1 -1
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_entity_service.py +49 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_service.py +157 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_sync_service.py +669 -14
- basic_memory-0.16.1/tests/sync/test_sync_service_incremental.py +790 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_sync_wikilink_issue.py +20 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service.py +82 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_config.py +100 -1
- basic_memory-0.16.1/tests/test_rclone_commands.py +353 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_file_utils.py +0 -82
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_frontmatter_obsidian_compatible.py +97 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_utf8_handling.py +7 -5
- {basic_memory-0.15.2 → basic_memory-0.16.1}/uv.lock +214 -0
- basic_memory-0.15.2/docs/cloud-cli.md +0 -730
- basic_memory-0.15.2/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +0 -193
- basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -765
- basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/core_commands.py +0 -288
- basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/mount_commands.py +0 -295
- basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -288
- basic_memory-0.15.2/src/basic_memory/cli/commands/cloud/upload.py +0 -128
- basic_memory-0.15.2/src/basic_memory/cli/commands/project.py +0 -355
- basic_memory-0.15.2/src/basic_memory/cli/commands/sync.py +0 -59
- basic_memory-0.15.2/src/basic_memory/markdown/entity_parser.py +0 -135
- basic_memory-0.15.2/src/basic_memory/mcp/tools/sync_status.py +0 -261
- basic_memory-0.15.2/src/basic_memory/services/exceptions.py +0 -22
- basic_memory-0.15.2/src/basic_memory/services/sync_status_service.py +0 -198
- basic_memory-0.15.2/src/basic_memory/sync/sync_service.py +0 -776
- basic_memory-0.15.2/test-int/cli/test_sync_commands_integration.py +0 -61
- basic_memory-0.15.2/tests/cli/test_bisync_commands.py +0 -463
- basic_memory-0.15.2/tests/cli/test_cloud_utils.py +0 -326
- basic_memory-0.15.2/tests/mcp/test_tool_sync_status.py +0 -170
- basic_memory-0.15.2/tests/services/test_sync_status_service.py +0 -262
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/agents/python-developer.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/agents/system-architect.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/spec.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.dockerignore +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/dependabot.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/release.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.github/workflows/test.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.gitignore +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/.python-version +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CITATION.cff +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CLA.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CLAUDE.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/CONTRIBUTING.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/Dockerfile +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/LICENSE +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/SECURITY.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/docker-compose.yml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/Docker.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/docs/character-handling.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/llms-install.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/smithery.yaml +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-1 Specification-Driven Development Process.md +0 -0
- /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
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-17 Semantic Search with ChromaDB.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-18 AI Memory Management Tool.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-2 Slash Commands Reference.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-3 Agent Definitions.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-8 TigrisFS Integration.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/db.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/conftest.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/test-int/test_sync_performance_benchmark.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/Screenshot.png +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/conftest.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_async_client.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_relation_background_resolution.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/conftest.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_cloud_authentication.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_db_migration_deduplication.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_deps.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v0.15.0-RELEASE-DOCS.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/README.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/api-performance.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/background-relations.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/basic-memory-home.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/bug-fixes.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/chatgpt-integration.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-authentication.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-bisync.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-mode-usage.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/cloud-mount.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/default-project-mode.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/env-file-removal.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/env-var-overrides.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/explicit-project-parameter.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/gitignore-integration.md +0 -0
- {basic_memory-0.15.2 → basic_memory-0.16.1}/v15-docs/project-root-env-var.md +0 -0
- {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.
|
|
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
|

|
|
47
48
|
[](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
|

|
|
8
8
|
[](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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
- `
|
|
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
|
-
|
|
2707
|
+
note_type="spec",
|
|
2727
2708
|
project="main"
|
|
2728
2709
|
)
|
|
2729
2710
|
```
|