basic-memory 0.18.0__tar.gz → 0.18.2__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.18.0 → basic_memory-0.18.2}/.gitignore +2 -0
- basic_memory-0.18.0/CLAUDE.md → basic_memory-0.18.2/AGENTS.md +20 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/CHANGELOG.md +53 -0
- basic_memory-0.18.2/CLAUDE.md +1 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/PKG-INFO +17 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/README.md +16 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/ARCHITECTURE.md +15 -2
- basic_memory-0.18.2/docs/NOTE-FORMAT.md +494 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/ai-assistant-guide-extended.md +49 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/justfile +28 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/pyproject.toml +2 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/server.json +2 -2
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/__init__.py +1 -1
- basic_memory-0.18.2/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +154 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/app.py +43 -25
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/knowledge_router.py +108 -53
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/memory_router.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/project_router.py +193 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/prompt_router.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/search_router.py +12 -9
- {basic_memory-0.18.0/src/basic_memory/api/routers → basic_memory-0.18.2/src/basic_memory/api/v2}/utils.py +29 -8
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/app.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/__init__.py +2 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/cloud_utils.py +2 -2
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/rclone_commands.py +12 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/command_utils.py +2 -2
- basic_memory-0.18.2/src/basic_memory/cli/commands/doctor.py +153 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/project.py +25 -17
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/status.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/tool.py +248 -27
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/main.py +1 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/__init__.py +4 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/services.py +83 -2
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/entity_parser.py +3 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/utils.py +4 -3
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/knowledge.py +23 -3
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/project.py +2 -2
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/project_context.py +17 -6
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/continue_conversation.py +6 -4
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/recent_activity.py +3 -5
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/search.py +8 -4
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/resources/project_info.py +1 -2
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/__init__.py +2 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/edit_note.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/move_note.py +3 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/recent_activity.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/search.py +113 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/write_note.py +4 -2
- basic_memory-0.18.2/src/basic_memory/repository/metadata_filters.py +139 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/postgres_search_repository.py +109 -28
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/search_repository.py +1 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/search_repository_base.py +2 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/sqlite_search_repository.py +127 -27
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/cloud.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/memory.py +4 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/search.py +22 -6
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/entity_service.py +220 -45
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/exceptions.py +6 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/search_service.py +22 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/sync/sync_service.py +5 -13
- basic_memory-0.18.2/test-int/cli/test_cli_tool_json_integration.py +126 -0
- basic_memory-0.18.2/test-int/mcp/test_smoke_integration.py +55 -0
- basic_memory-0.18.2/tests/api/v2/conftest.py +59 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_importer_router.py +3 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_knowledge_router.py +154 -3
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_project_router.py +26 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/cloud/test_cloud_api_client_and_utils.py +2 -2
- basic_memory-0.18.2/tests/cli/test_cli_tool_json_output.py +333 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_entity_parser_error_handling.py +94 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/clients/test_clients.py +1 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_prompts.py +1 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_recent_activity_prompt_modes.py +18 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_canvas.py +3 -1
- basic_memory-0.18.2/tests/mcp/test_tool_contracts.py +88 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_read_note.py +4 -1
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_recent_activity.py +4 -0
- basic_memory-0.18.2/tests/repository/test_metadata_filters.py +82 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_project_repository.py +23 -17
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_search_repository.py +106 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_memory_serialization.py +7 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_entity_service.py +64 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_link_resolver.py +18 -38
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_search_service.py +66 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_sync_service.py +2 -3
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_rclone_commands.py +17 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/uv.lock +15 -0
- basic_memory-0.18.0/src/basic_memory/api/routers/__init__.py +0 -11
- basic_memory-0.18.0/src/basic_memory/api/routers/directory_router.py +0 -84
- basic_memory-0.18.0/src/basic_memory/api/routers/importer_router.py +0 -152
- basic_memory-0.18.0/src/basic_memory/api/routers/knowledge_router.py +0 -364
- basic_memory-0.18.0/src/basic_memory/api/routers/management_router.py +0 -80
- basic_memory-0.18.0/src/basic_memory/api/routers/memory_router.py +0 -90
- basic_memory-0.18.0/src/basic_memory/api/routers/project_router.py +0 -472
- basic_memory-0.18.0/src/basic_memory/api/routers/prompt_router.py +0 -260
- basic_memory-0.18.0/src/basic_memory/api/routers/resource_router.py +0 -252
- basic_memory-0.18.0/src/basic_memory/api/routers/search_router.py +0 -36
- basic_memory-0.18.0/tests/api/conftest.py +0 -40
- basic_memory-0.18.0/tests/api/test_api_container.py +0 -62
- basic_memory-0.18.0/tests/api/test_async_client.py +0 -53
- basic_memory-0.18.0/tests/api/test_continue_conversation_template.py +0 -145
- basic_memory-0.18.0/tests/api/test_directory_router.py +0 -212
- basic_memory-0.18.0/tests/api/test_importer_router.py +0 -465
- basic_memory-0.18.0/tests/api/test_knowledge_router.py +0 -1406
- basic_memory-0.18.0/tests/api/test_management_router.py +0 -121
- basic_memory-0.18.0/tests/api/test_memory_router.py +0 -146
- basic_memory-0.18.0/tests/api/test_project_router.py +0 -843
- basic_memory-0.18.0/tests/api/test_project_router_operations.py +0 -55
- basic_memory-0.18.0/tests/api/test_prompt_router.py +0 -155
- basic_memory-0.18.0/tests/api/test_relation_background_resolution.py +0 -52
- basic_memory-0.18.0/tests/api/test_resource_router.py +0 -454
- basic_memory-0.18.0/tests/api/test_search_router.py +0 -179
- basic_memory-0.18.0/tests/api/test_search_template.py +0 -158
- basic_memory-0.18.0/tests/api/test_template_loader.py +0 -219
- basic_memory-0.18.0/tests/api/test_template_loader_helpers.py +0 -203
- basic_memory-0.18.0/tests/api/v2/conftest.py +0 -21
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/spec.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.claude/settings.json +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.dockerignore +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.env.example +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/dependabot.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/claude-code-review.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/release.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.github/workflows/test.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/.python-version +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/CITATION.cff +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/CLA.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/CONTRIBUTING.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/Dockerfile +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/LICENSE +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/SECURITY.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docker-compose.yml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/Docker.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/character-handling.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/cloud-cli.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/docs/testing-coverage.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/llms-install.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/smithery.yaml +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/core_commands.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/commands/routing.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/config.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/db.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/ignore_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/runtime.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/sync_report.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/v2/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/v2/entity.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/schemas/v2/resource.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/sync/coordinator.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/cli/test_routing_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/conftest.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_delete_directory_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_move_directory_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/test-int/test_disable_permalinks_integration.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/README.md +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/Screenshot.png +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/conftest.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_cli_exit.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_cloud_authentication.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_restore_commands.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_routing.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_snapshot_commands.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/conftest.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_markdown_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/clients/__init__.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_async_client_force_local.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_project_management.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_postgres_search_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_coordinator.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_sync_service_incremental.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_watch_service_atomic_adds.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_config.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_deps.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/test_runtime.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.18.0 → basic_memory-0.18.2}/tests/utils/test_validate_project_path.py +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AGENTS.md - Basic Memory Project Guide
|
|
2
2
|
|
|
3
3
|
## Project Overview
|
|
4
4
|
|
|
@@ -22,6 +22,10 @@ See the [README.md](README.md) file for a project overview.
|
|
|
22
22
|
- Run unit tests (Postgres): `just test-unit-postgres`
|
|
23
23
|
- Run integration tests (SQLite): `just test-int-sqlite`
|
|
24
24
|
- Run integration tests (Postgres): `just test-int-postgres`
|
|
25
|
+
- Run impacted tests: `just testmon` (pytest-testmon)
|
|
26
|
+
- Run MCP smoke test: `just test-smoke`
|
|
27
|
+
- Fast local loop: `just fast-check`
|
|
28
|
+
- Local consistency check: `just doctor`
|
|
25
29
|
- Generate HTML coverage: `just coverage`
|
|
26
30
|
- Single test: `pytest tests/path/to/test_file.py::test_function_name`
|
|
27
31
|
- Run benchmarks: `pytest test-int/test_sync_performance_benchmark.py -v -m "benchmark and not slow"`
|
|
@@ -36,6 +40,19 @@ See the [README.md](README.md) file for a project overview.
|
|
|
36
40
|
|
|
37
41
|
**Postgres Testing:** Uses [testcontainers](https://testcontainers-python.readthedocs.io/) which automatically spins up a Postgres instance in Docker. No manual database setup required - just have Docker running.
|
|
38
42
|
|
|
43
|
+
**Doctor Note:** `just doctor` runs with a temporary HOME/config so it won't touch your local Basic Memory settings. It leaves temp dirs in `/tmp` (safe to ignore or remove).
|
|
44
|
+
|
|
45
|
+
**Testmon Note:** When no files have changed, `just testmon` may collect 0 tests. That's expected and means no impacted tests were detected.
|
|
46
|
+
|
|
47
|
+
### Code/Test/Verify Loop (fast path)
|
|
48
|
+
|
|
49
|
+
1) **Code:** make changes.
|
|
50
|
+
2) **Test:** `just fast-check` (lint/format/typecheck + impacted tests + MCP smoke).
|
|
51
|
+
3) **Verify:** `just doctor` (end-to-end file ↔ DB loop in a temp project).
|
|
52
|
+
4) **Full gate (when needed):** `just test` or `just check` for SQLite + Postgres.
|
|
53
|
+
|
|
54
|
+
If testmon is “cold,” the first run may be long. Subsequent runs get much faster.
|
|
55
|
+
|
|
39
56
|
### Test Structure
|
|
40
57
|
|
|
41
58
|
- `tests/` - Unit tests for individual components (mocked, fast)
|
|
@@ -43,6 +60,7 @@ See the [README.md](README.md) file for a project overview.
|
|
|
43
60
|
- Both directories are covered by unified coverage reporting
|
|
44
61
|
- Benchmark tests in `test-int/` are marked with `@pytest.mark.benchmark`
|
|
45
62
|
- Slow tests are marked with `@pytest.mark.slow`
|
|
63
|
+
- Smoke tests are marked with `@pytest.mark.smoke`
|
|
46
64
|
|
|
47
65
|
### Code Style Guidelines
|
|
48
66
|
|
|
@@ -221,6 +239,7 @@ See SPEC-16 for full context manager refactor details.
|
|
|
221
239
|
|
|
222
240
|
**Local Commands:**
|
|
223
241
|
- Check sync status: `basic-memory status`
|
|
242
|
+
- Doctor check (file <-> DB loop): `basic-memory doctor`
|
|
224
243
|
- Import from Claude: `basic-memory import claude conversations`
|
|
225
244
|
- Import from ChatGPT: `basic-memory import chatgpt`
|
|
226
245
|
- Import from Memory JSON: `basic-memory import memory-json`
|
|
@@ -1,5 +1,58 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.18.2 (2026-02-11)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **#562**: Use VIRTUAL instead of STORED columns in SQLite migration
|
|
8
|
+
([`344e651`](https://github.com/basicmachines-co/basic-memory/commit/344e651))
|
|
9
|
+
- Fixes compatibility issue with SQLite STORED generated columns
|
|
10
|
+
|
|
11
|
+
## v0.18.1 (2026-02-11)
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- **#552**: Add `--format json` to CLI tool commands
|
|
16
|
+
([`a47c9c0`](https://github.com/basicmachines-co/basic-memory/commit/a47c9c0))
|
|
17
|
+
- CLI tool commands now support `--format json` for machine-readable output
|
|
18
|
+
|
|
19
|
+
- **#535**: Support `tag:` query shorthand in search
|
|
20
|
+
([`f1d50c2`](https://github.com/basicmachines-co/basic-memory/commit/f1d50c2))
|
|
21
|
+
- Use `tag:mytag` as a convenient shorthand in search queries
|
|
22
|
+
|
|
23
|
+
- **#532**: Fast edit entities, refactors for webui, enhanced search
|
|
24
|
+
([`530cbac`](https://github.com/basicmachines-co/basic-memory/commit/530cbac))
|
|
25
|
+
- Performance improvements for entity editing and search operations
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
- **#558**: Add X-Tigris-Consistent headers to all rclone commands
|
|
30
|
+
([`8489a3d`](https://github.com/basicmachines-co/basic-memory/commit/8489a3d))
|
|
31
|
+
- Ensures consistent reads from Tigris object storage during sync
|
|
32
|
+
|
|
33
|
+
- **#541**: Handle EntityCreationError as conflict
|
|
34
|
+
([`343a6e1`](https://github.com/basicmachines-co/basic-memory/commit/343a6e1))
|
|
35
|
+
|
|
36
|
+
- **#536**: Stabilize metadata filters on Postgres
|
|
37
|
+
([`009e849`](https://github.com/basicmachines-co/basic-memory/commit/009e849))
|
|
38
|
+
|
|
39
|
+
- **#533**: Fix recent_activity prompt defaults
|
|
40
|
+
([`24ca5f6`](https://github.com/basicmachines-co/basic-memory/commit/24ca5f6))
|
|
41
|
+
|
|
42
|
+
- **#530**: Prevent spurious `metadata: {}` in frontmatter output
|
|
43
|
+
([`e3ced49`](https://github.com/basicmachines-co/basic-memory/commit/e3ced49))
|
|
44
|
+
|
|
45
|
+
- Add POST legacy compat routes for v0.18.0 CLI
|
|
46
|
+
([`c46d7a6`](https://github.com/basicmachines-co/basic-memory/commit/c46d7a6))
|
|
47
|
+
|
|
48
|
+
- Restore legacy `/projects/projects` endpoint for older CLI versions
|
|
49
|
+
([`a0e754b`](https://github.com/basicmachines-co/basic-memory/commit/a0e754b))
|
|
50
|
+
|
|
51
|
+
### Internal
|
|
52
|
+
|
|
53
|
+
- **#538**: Add fast feedback loop tooling (`just fast-check`, `just doctor`, `just testmon`)
|
|
54
|
+
([`8072449`](https://github.com/basicmachines-co/basic-memory/commit/8072449))
|
|
55
|
+
|
|
3
56
|
## v0.18.0 (2026-01-28)
|
|
4
57
|
|
|
5
58
|
### Features
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
AGENTS.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.2
|
|
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
|
|
@@ -444,6 +444,8 @@ list_directory(dir_name, depth) - Browse directory contents with filtering
|
|
|
444
444
|
**Search & Discovery:**
|
|
445
445
|
```
|
|
446
446
|
search(query, page, page_size) - Search across your knowledge base
|
|
447
|
+
search_notes(query, page, page_size, search_type, types, entity_types, after_date, metadata_filters, tags, status, project) - Search with filters
|
|
448
|
+
search_by_metadata(filters, limit, offset, project) - Structured frontmatter search
|
|
447
449
|
```
|
|
448
450
|
|
|
449
451
|
**Project Management:**
|
|
@@ -542,16 +544,23 @@ just test
|
|
|
542
544
|
- `just test-int-postgres` - Run integration tests against Postgres
|
|
543
545
|
- `just test-windows` - Run Windows-specific tests (auto-skips on other platforms)
|
|
544
546
|
- `just test-benchmark` - Run performance benchmark tests
|
|
547
|
+
- `just testmon` - Run tests impacted by recent changes (pytest-testmon)
|
|
548
|
+
- `just test-smoke` - Run fast MCP end-to-end smoke test
|
|
549
|
+
- `just fast-check` - Run fix/format/typecheck + impacted tests + smoke test
|
|
550
|
+
- `just doctor` - Run local file <-> DB consistency checks with temp config
|
|
545
551
|
|
|
546
552
|
**Postgres Testing:**
|
|
547
553
|
|
|
548
554
|
Postgres tests use [testcontainers](https://testcontainers-python.readthedocs.io/) which automatically spins up a Postgres instance in Docker. No manual database setup required - just have Docker running.
|
|
549
555
|
|
|
556
|
+
**Testmon Note:** When no files have changed, `just testmon` may collect 0 tests. That's expected and means no impacted tests were detected.
|
|
557
|
+
|
|
550
558
|
**Test Markers:**
|
|
551
559
|
|
|
552
560
|
Tests use pytest markers for selective execution:
|
|
553
561
|
- `windows` - Windows-specific database optimizations
|
|
554
562
|
- `benchmark` - Performance tests (excluded from default runs)
|
|
563
|
+
- `smoke` - Fast MCP end-to-end smoke tests
|
|
555
564
|
|
|
556
565
|
**Other Development Commands:**
|
|
557
566
|
```bash
|
|
@@ -559,10 +568,17 @@ just install # Install with dev dependencies
|
|
|
559
568
|
just lint # Run linting checks
|
|
560
569
|
just typecheck # Run type checking
|
|
561
570
|
just format # Format code with ruff
|
|
571
|
+
just fast-check # Fast local loop (fix/format/typecheck + testmon + smoke)
|
|
572
|
+
just doctor # Local consistency check (temp config)
|
|
562
573
|
just check # Run all quality checks
|
|
563
574
|
just migration "msg" # Create database migration
|
|
564
575
|
```
|
|
565
576
|
|
|
577
|
+
**Local Consistency Check:**
|
|
578
|
+
```bash
|
|
579
|
+
basic-memory doctor # Verifies file <-> database sync in a temp project
|
|
580
|
+
```
|
|
581
|
+
|
|
566
582
|
See the [justfile](justfile) for the complete list of development commands.
|
|
567
583
|
|
|
568
584
|
## License
|
|
@@ -396,6 +396,8 @@ list_directory(dir_name, depth) - Browse directory contents with filtering
|
|
|
396
396
|
**Search & Discovery:**
|
|
397
397
|
```
|
|
398
398
|
search(query, page, page_size) - Search across your knowledge base
|
|
399
|
+
search_notes(query, page, page_size, search_type, types, entity_types, after_date, metadata_filters, tags, status, project) - Search with filters
|
|
400
|
+
search_by_metadata(filters, limit, offset, project) - Structured frontmatter search
|
|
399
401
|
```
|
|
400
402
|
|
|
401
403
|
**Project Management:**
|
|
@@ -494,16 +496,23 @@ just test
|
|
|
494
496
|
- `just test-int-postgres` - Run integration tests against Postgres
|
|
495
497
|
- `just test-windows` - Run Windows-specific tests (auto-skips on other platforms)
|
|
496
498
|
- `just test-benchmark` - Run performance benchmark tests
|
|
499
|
+
- `just testmon` - Run tests impacted by recent changes (pytest-testmon)
|
|
500
|
+
- `just test-smoke` - Run fast MCP end-to-end smoke test
|
|
501
|
+
- `just fast-check` - Run fix/format/typecheck + impacted tests + smoke test
|
|
502
|
+
- `just doctor` - Run local file <-> DB consistency checks with temp config
|
|
497
503
|
|
|
498
504
|
**Postgres Testing:**
|
|
499
505
|
|
|
500
506
|
Postgres tests use [testcontainers](https://testcontainers-python.readthedocs.io/) which automatically spins up a Postgres instance in Docker. No manual database setup required - just have Docker running.
|
|
501
507
|
|
|
508
|
+
**Testmon Note:** When no files have changed, `just testmon` may collect 0 tests. That's expected and means no impacted tests were detected.
|
|
509
|
+
|
|
502
510
|
**Test Markers:**
|
|
503
511
|
|
|
504
512
|
Tests use pytest markers for selective execution:
|
|
505
513
|
- `windows` - Windows-specific database optimizations
|
|
506
514
|
- `benchmark` - Performance tests (excluded from default runs)
|
|
515
|
+
- `smoke` - Fast MCP end-to-end smoke tests
|
|
507
516
|
|
|
508
517
|
**Other Development Commands:**
|
|
509
518
|
```bash
|
|
@@ -511,10 +520,17 @@ just install # Install with dev dependencies
|
|
|
511
520
|
just lint # Run linting checks
|
|
512
521
|
just typecheck # Run type checking
|
|
513
522
|
just format # Format code with ruff
|
|
523
|
+
just fast-check # Fast local loop (fix/format/typecheck + testmon + smoke)
|
|
524
|
+
just doctor # Local consistency check (temp config)
|
|
514
525
|
just check # Run all quality checks
|
|
515
526
|
just migration "msg" # Create database migration
|
|
516
527
|
```
|
|
517
528
|
|
|
529
|
+
**Local Consistency Check:**
|
|
530
|
+
```bash
|
|
531
|
+
basic-memory doctor # Verifies file <-> database sync in a temp project
|
|
532
|
+
```
|
|
533
|
+
|
|
518
534
|
See the [justfile](justfile) for the complete list of development commands.
|
|
519
535
|
|
|
520
536
|
## License
|
|
@@ -214,15 +214,28 @@ Example tool using typed client:
|
|
|
214
214
|
|
|
215
215
|
```python
|
|
216
216
|
@mcp.tool()
|
|
217
|
-
async def search_notes(
|
|
217
|
+
async def search_notes(
|
|
218
|
+
query: str,
|
|
219
|
+
project: str | None = None,
|
|
220
|
+
metadata_filters: dict | None = None,
|
|
221
|
+
tags: list[str] | None = None,
|
|
222
|
+
status: str | None = None,
|
|
223
|
+
) -> SearchResponse:
|
|
218
224
|
async with get_client() as client:
|
|
219
225
|
active_project = await get_active_project(client, project)
|
|
220
226
|
|
|
221
227
|
# Import client inside function to avoid circular imports
|
|
222
228
|
from basic_memory.mcp.clients import SearchClient
|
|
229
|
+
from basic_memory.schemas.search import SearchQuery
|
|
223
230
|
|
|
231
|
+
search_query = SearchQuery(
|
|
232
|
+
text=query,
|
|
233
|
+
metadata_filters=metadata_filters,
|
|
234
|
+
tags=tags,
|
|
235
|
+
status=status,
|
|
236
|
+
)
|
|
224
237
|
search_client = SearchClient(client, active_project.external_id)
|
|
225
|
-
return await search_client.search(
|
|
238
|
+
return await search_client.search(search_query.model_dump())
|
|
226
239
|
```
|
|
227
240
|
|
|
228
241
|
## Sync Coordination
|