basic-memory 0.21.3__tar.gz → 0.21.4__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.21.3 → basic_memory-0.21.4}/AGENTS.md +25 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CONTRIBUTING.md +0 -34
- {basic_memory-0.21.3 → basic_memory-0.21.4}/PKG-INFO +1 -1
- {basic_memory-0.21.3 → basic_memory-0.21.4}/server.json +2 -2
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/services.py +4 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/write_note.py +1 -5
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_param_aliases_integration.py +33 -8
- basic_memory-0.21.4/tests/deps/test_task_failure_callback.py +38 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/SKILL.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/references/javascript/frameworks.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/references/javascript/patterns.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/references/python/integrations.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/references/python/logging-patterns.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.agents/skills/instrumentation/references/rust/patterns.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/spec.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.claude/settings.json +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.dockerignore +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.env.example +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/dependabot.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/claude-code-review.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/release.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.github/workflows/test.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.gitignore +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/.python-version +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CHANGELOG.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CITATION.cff +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CLA.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CLAUDE.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/Dockerfile +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/LICENSE +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/README.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/SECURITY.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docker-compose.yml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/ARCHITECTURE.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/Docker.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/NOTE-FORMAT.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/SPEC-PER-PROJECT-ROUTING.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/ai-assistant-guide-extended.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/character-handling.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/cloud-cli.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/cloud-semantic-search-value.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/logfire-instrumentation-strategy.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/mcp-ui-bakeoff-instructions.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/metadata-search.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/post-v0.18.0-test-plan.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/releases/v0.19.0.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/semantic-search-test-log.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/semantic-search.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/specs/SPEC-LOCAL-PLUS-PUBLISH.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/specs/SPEC-SCHEMA-IMPL.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/specs/SPEC-SCHEMA.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/docs/testing-coverage.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/justfile +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/llms-install.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/pyproject.toml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/skills-lock.json +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/smithery.yaml +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/d7e8f9a0b1c2_add_structured_metadata_indexes.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/h1b2c3d4e5f6_add_postgres_vector_search_tables.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/i2c3d4e5f6g7_auto_backfill_semantic_embeddings.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/j3d4e5f6g7h8_rename_entity_type_to_note_type.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/k4e5f6g7h8i9_add_created_by_and_last_updated_by_to_entity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/l5g6h7i8j9k0_add_note_content_table.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/m6h7i8j9k0l1_add_vector_sync_fingerprints.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/alembic/versions/n7i8j9k0l1m2_cleanup_sqlite_search_orphans.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/knowledge_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/project_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/schema_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/search_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/analytics.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/auto_update.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/core_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/project_sync.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/restore.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/schemas.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/snapshot.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/workspace.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/command_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/doctor.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/orphans.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/routing.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/update.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/promo.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/config.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/db.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/ignore_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/indexing/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/indexing/batch_indexer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/indexing/batching.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/indexing/models.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/knowledge.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/project.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/formatting.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/cloud_info.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/release_notes.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/resources/ui.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/cloud_info.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/release_notes.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/ui_sdk.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/tools/workspaces.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/note-preview-mcp-ui.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/note-preview-tool-ui.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/note-preview-vanilla.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/search-results-mcp-ui.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/search-results-tool-ui.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/html/search-results-vanilla.html +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/sdk.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/mcp/ui/templates.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/embedding_provider.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/embedding_provider_factory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/fastembed_provider.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/metadata_filters.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/note_content_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/openai_provider.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/postgres_search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/search_repository_base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/semantic_errors.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/repository/sqlite_search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/runtime.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/diff.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/inference.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/parser.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schema/validator.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/sync_report.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/v2/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/v2/entity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/v2/graph.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/schemas/v2/resource.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/sync/coordinator.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/workspace_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_cli_tool_edit_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_cli_tool_json_failure_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_cli_tool_json_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_routing_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_search_notes_meta_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/compare_search_benchmarks.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-01.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-02.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-03.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-04.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-05.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-06.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-07.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-08.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-09.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-10.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-11.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-12.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-13.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-14.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-15.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-16.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-17.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-18.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-19.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/people/drift-person-20.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/drift/schema/Person.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/array-single.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/empty-note.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/explicit-overrides-type.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/inline-and-type.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/no-frontmatter.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/relation-only.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/type-no-schema.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/edge-cases/unicode-fields.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/ada-lovelace.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/alan-turing.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/anders-hejlsberg.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/andrej-karpathy.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/barbara-liskov.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/bjarne-stroustrup.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/brendan-eich.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/claude-shannon.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/dennis-ritchie.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/dijkstra.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/donald-knuth.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/fei-fei-li.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/geoffrey-hinton.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/grace-hopper.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/guido-van-rossum.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/james-gosling.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/john-carmack.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/ken-thompson.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/larry-page.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/leslie-lamport.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/linus-torvalds.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/margaret-hamilton.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/rasmus-lerdorf.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/richard-stallman.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/rob-pike.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/satoshi-nakamoto.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/tim-berners-lee.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/vint-cerf.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/yann-lecun.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/inference/people/yukihiro-matsumoto.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/schemas/Book.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/schemas/Meeting.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/schemas/Person.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/schemas/SoftwareProject.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/schemas/StrictSchema.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/basic-memory.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/explicit-ref-note.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/no-schema-note.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/paul-graham.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/rich-hickey.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/valid/standup-2024-01-15.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/warnings/extra-observations.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/warnings/missing-multiple.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/warnings/missing-required.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/fixtures/schema/warnings/wrong-enum-value.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_delete_directory_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_long_relation_type_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_move_directory_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_output_format_json_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_pagination_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_permalink_collision_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_smoke_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_string_params_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_ui_sdk_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_workspace_permalink_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/corpus.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/metrics.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/report.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/test_multiterm_semantic_queries.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/test_search_diagnostics.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/test_semantic_coverage.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/semantic/test_semantic_quality.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_disable_permalinks_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/helpers.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/test_diff_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/test_inference_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/test_parser_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_schema/test_validator_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_search_performance_benchmark.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/test-int/test_sync_batching_integration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/README.md +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/Screenshot.png +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_importer_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_knowledge_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_knowledge_router_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_memory_hydration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_orphan_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_project_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_schema_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_search_hydration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_search_router_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_utils_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/api/v2/test_workspace_permalink_headers.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_project_sync_command.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_rclone_installer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_upload_command_routing.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_analytics.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_auto_update.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_exit.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_tool_json_output.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cloud_authentication.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cloud_promo.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_cloud_status.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_db_reindex.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_db_reset_exit.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_db_reset_zombie_check.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_json_output.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_orphans_command.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_project_info_cloud_status.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_project_info_errors.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_project_list_and_ls.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_project_set_cloud_local.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_restore_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_routing.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_snapshot_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_update_command.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/cli/test_workspace_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/indexing/test_batch_indexer.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/indexing/test_batching.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_entity_parser_error_handling.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_markdown_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/clients/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/clients/test_clients.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_async_client_force_local.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_async_client_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_client_schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_client_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_project_context_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_prompt_tool_delegation.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_server_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_cloud_discovery.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_contracts.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_json_output_modes.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_project_management.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_schema.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_utils_cloud_auth.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_workspace_management.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_tool_write_note_metadata.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_ui_resources.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_ui_sdk.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_ui_templates.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/test_workspace_permalink_resolution.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/mcp/tools/test_search_notes_multi_project.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_distance_to_similarity.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_fastembed_provider.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_hybrid_fusion.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_metadata_filters.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_metadata_filters_edge_cases.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_note_content_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_openai_provider.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_postgres_search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_postgres_search_repository_unit.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_search_index_row.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_search_text_with_metadata_filters.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_semantic_search_base.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_sqlite_vector_search_repository.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_vector_pagination.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/repository/test_vector_threshold.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/__init__.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/test_diff.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/test_inference.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/test_parser.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/test_resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schema/test_validator.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_entity_service_prepare.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_entity_service_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_entity_service_write_result.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_project_service_cloud_info.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_project_service_embedding_status.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_search_service_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_semantic_search.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_task_scheduler_semantic.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/services/test_upsert_entity_optimization.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_coordinator.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_one_markdown_file.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_service_batching.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_service_incremental.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_service_subprocess.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_service_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_watch_service_atomic_adds.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/sync/test_watch_service_stress.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_alembic_env.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_coerce.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_config.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_deps.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_note_content_migration.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_permalink_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_rclone_commands.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_runtime.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/test_telemetry.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_setup_logging.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/tests/utils/test_workspace_context.py +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/.gitignore +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/build.mjs +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/package-lock.json +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/package.json +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/_adapter.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/data-table.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/error-boundary.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/formatters.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/index.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/schema.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/types.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/data-table/utilities.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/_adapter.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/action-buttons.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/actions-config.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/error-boundary.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/index.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/media/aspect-ratio.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/media/format-utils.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/media/index.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/media/overlay-gradient.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/media/sanitize-href.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/parse.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/schema.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/use-action-buttons.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/use-copy-to-clipboard.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/tool-ui/shared/utils.ts +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/accordion.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/badge.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/button.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/dropdown-menu.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/table.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/components/ui/tooltip.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/note-preview.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/search-results.tsx +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/src/styles.css +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/ui/tool-ui-react/tailwind.config.js +0 -0
- {basic_memory-0.21.3 → basic_memory-0.21.4}/uv.lock +0 -0
|
@@ -253,6 +253,31 @@ async_client.set_client_factory(your_custom_factory)
|
|
|
253
253
|
|
|
254
254
|
See SPEC-16 for full context manager refactor details.
|
|
255
255
|
|
|
256
|
+
### Release Process
|
|
257
|
+
|
|
258
|
+
Releases are driven by `just release` / `just beta` — never by a bare `git tag`. The recipes bump version metadata, run pre-flight checks, commit, tag, and push. GitHub Actions then publishes to PyPI and updates the Homebrew formula.
|
|
259
|
+
|
|
260
|
+
**Stable release:**
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
just release v0.21.3
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
The recipe runs `just lint` + `just typecheck`, then updates `__version__` in `src/basic_memory/__init__.py` and `"version"` in `server.json` (MCP registry metadata), commits as `chore: update version to X.Y.Z for vX.Y.Z release`, creates the `vX.Y.Z` tag, and pushes both the commit and the tag to `origin/main`. After the tag lands, the `Release` workflow builds the package, publishes to PyPI, creates the GitHub release with auto-generated notes, and updates the Homebrew formula. The recipe finishes by printing the post-release tasks the workflow doesn't cover.
|
|
267
|
+
|
|
268
|
+
**Beta release:** `just beta v0.21.3b1` — same flow with a beta-suffixed tag. PyPI consumers install with `pip install basic-memory --pre`.
|
|
269
|
+
|
|
270
|
+
**Development builds:** every commit to `main` publishes a `0.21.3.dev26+468a22f`-style version to PyPI automatically via `.github/workflows/dev-release.yml`. No human action.
|
|
271
|
+
|
|
272
|
+
**Do not tag releases by hand.** A bare `git tag vX.Y.Z` skips the in-code version bump. Package metadata is still correct (uv-dynamic-versioning derives it from the git tag) but `basic-memory --version` reports the previous release, which is what happened with v0.21.2 → v0.21.3.
|
|
273
|
+
|
|
274
|
+
**Post-release tasks** the recipe surfaces but doesn't run:
|
|
275
|
+
- `docs.basicmemory.com` — add notes to `src/pages/latest-releases.mdx`
|
|
276
|
+
- `basicmachines.co` — bump version in `src/components/sections/hero.tsx`
|
|
277
|
+
- MCP Registry — `mcp-publisher publish` from the repo root
|
|
278
|
+
|
|
279
|
+
See `.claude/commands/release/release.md` (and `beta.md`, `release-check.md`, `changelog.md` alongside it) for the full release + post-release runbook, including the slash commands.
|
|
280
|
+
|
|
256
281
|
## BASIC MEMORY PRODUCT USAGE
|
|
257
282
|
|
|
258
283
|
### Knowledge Structure
|
|
@@ -224,40 +224,6 @@ See `test-int/BENCHMARKS.md` for detailed benchmark documentation.
|
|
|
224
224
|
- **Fixtures**: Use async pytest fixtures for setup and teardown
|
|
225
225
|
- **Markers**: Use `@pytest.mark.benchmark` for benchmarks, `@pytest.mark.slow` for slow tests
|
|
226
226
|
|
|
227
|
-
## Release Process
|
|
228
|
-
|
|
229
|
-
Basic Memory uses automatic versioning based on git tags with `uv-dynamic-versioning`. Here's how releases work:
|
|
230
|
-
|
|
231
|
-
### Version Management
|
|
232
|
-
- **Development versions**: Automatically generated from git commits (e.g., `0.12.4.dev26+468a22f`)
|
|
233
|
-
- **Beta releases**: Created by tagging with beta suffixes (e.g., `git tag v0.13.0b1`)
|
|
234
|
-
- **Stable releases**: Created by tagging with version numbers (e.g., `git tag v0.13.0`)
|
|
235
|
-
|
|
236
|
-
### Release Workflows
|
|
237
|
-
|
|
238
|
-
#### Development Builds
|
|
239
|
-
- Automatically published to PyPI on every commit to `main`
|
|
240
|
-
- Version format: `0.12.4.dev26+468a22f` (base version + dev + commit count + hash)
|
|
241
|
-
- Users install with: `pip install basic-memory --pre --force-reinstall`
|
|
242
|
-
|
|
243
|
-
#### Beta Releases
|
|
244
|
-
1. Create and push a beta tag: `git tag v0.13.0b1 && git push origin v0.13.0b1`
|
|
245
|
-
2. GitHub Actions automatically builds and publishes to PyPI
|
|
246
|
-
3. Users install with: `pip install basic-memory --pre`
|
|
247
|
-
|
|
248
|
-
#### Stable Releases
|
|
249
|
-
1. Create and push a version tag: `git tag v0.13.0 && git push origin v0.13.0`
|
|
250
|
-
2. GitHub Actions automatically:
|
|
251
|
-
- Builds the package with version `0.13.0`
|
|
252
|
-
- Creates GitHub release with auto-generated notes
|
|
253
|
-
- Publishes to PyPI
|
|
254
|
-
3. Users install with: `pip install basic-memory`
|
|
255
|
-
|
|
256
|
-
### For Contributors
|
|
257
|
-
- No manual version bumping required
|
|
258
|
-
- Versions are automatically derived from git tags
|
|
259
|
-
- Focus on code changes, not version management
|
|
260
|
-
|
|
261
227
|
## Creating Issues
|
|
262
228
|
|
|
263
229
|
If you're planning to work on something, please create an issue first to discuss the approach. Include:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.4
|
|
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
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/basicmachines-co/basic-memory.git",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.21.
|
|
9
|
+
"version": "0.21.4",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "pypi",
|
|
13
13
|
"identifier": "basic-memory",
|
|
14
|
-
"version": "0.21.
|
|
14
|
+
"version": "0.21.4",
|
|
15
15
|
"runtimeHint": "uvx",
|
|
16
16
|
"runtimeArguments": [
|
|
17
17
|
{"type": "positional", "value": "basic-memory"},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""basic-memory - Local-first knowledge management combining Zettelkasten with knowledge graphs"""
|
|
2
2
|
|
|
3
3
|
# Package version - updated by release automation
|
|
4
|
-
__version__ = "0.21.
|
|
4
|
+
__version__ = "0.21.4"
|
|
5
5
|
|
|
6
6
|
# API version for FastAPI - independent of package version
|
|
7
7
|
__api_version__ = "v0"
|
|
@@ -447,8 +447,12 @@ class TaskScheduler(Protocol):
|
|
|
447
447
|
|
|
448
448
|
|
|
449
449
|
def _log_task_failure(completed: asyncio.Task) -> None:
|
|
450
|
+
if completed.cancelled():
|
|
451
|
+
return
|
|
450
452
|
try:
|
|
451
453
|
completed.result()
|
|
454
|
+
except asyncio.CancelledError:
|
|
455
|
+
return
|
|
452
456
|
except Exception as exc: # pragma: no cover
|
|
453
457
|
logger.exception("Background task failed", error=str(exc))
|
|
454
458
|
|
|
@@ -35,11 +35,7 @@ async def write_note(
|
|
|
35
35
|
tags: list[str] | str | None = None,
|
|
36
36
|
note_type: str = "note",
|
|
37
37
|
metadata: Annotated[dict | None, BeforeValidator(coerce_dict)] = None,
|
|
38
|
-
|
|
39
|
-
overwrite: Annotated[
|
|
40
|
-
bool | None,
|
|
41
|
-
Field(default=None, validation_alias=AliasChoices("overwrite", "force", "replace")),
|
|
42
|
-
] = None,
|
|
38
|
+
overwrite: bool | None = None,
|
|
43
39
|
output_format: Literal["text", "json"] = "text",
|
|
44
40
|
context: Context | None = None,
|
|
45
41
|
) -> str | dict:
|
|
@@ -310,31 +310,40 @@ async def test_write_note_accepts_directory_aliases(mcp_server, app, test_projec
|
|
|
310
310
|
|
|
311
311
|
|
|
312
312
|
@pytest.mark.asyncio
|
|
313
|
-
async def
|
|
314
|
-
"""
|
|
313
|
+
async def test_write_note_overwrite_canonical_via_mcp(mcp_server, app, test_project):
|
|
314
|
+
"""Canonical overwrite=True must reach the handler (#818 regression)."""
|
|
315
315
|
async with Client(mcp_server) as client:
|
|
316
|
-
# First create
|
|
317
316
|
await client.call_tool(
|
|
318
317
|
"write_note",
|
|
319
318
|
{
|
|
320
319
|
"project": test_project.name,
|
|
321
|
-
"title": "Overwrite
|
|
320
|
+
"title": "Overwrite Canonical Note",
|
|
322
321
|
"directory": "overwrite-test",
|
|
323
322
|
"content": "v1",
|
|
324
323
|
},
|
|
325
324
|
)
|
|
326
|
-
|
|
325
|
+
blocked = await client.call_tool(
|
|
326
|
+
"write_note",
|
|
327
|
+
{
|
|
328
|
+
"project": test_project.name,
|
|
329
|
+
"title": "Overwrite Canonical Note",
|
|
330
|
+
"directory": "overwrite-test",
|
|
331
|
+
"content": "v2",
|
|
332
|
+
},
|
|
333
|
+
)
|
|
334
|
+
assert "# Error: Note already exists" in blocked.content[0].text
|
|
335
|
+
|
|
327
336
|
result = await client.call_tool(
|
|
328
337
|
"write_note",
|
|
329
338
|
{
|
|
330
339
|
"project": test_project.name,
|
|
331
|
-
"title": "Overwrite
|
|
340
|
+
"title": "Overwrite Canonical Note",
|
|
332
341
|
"directory": "overwrite-test",
|
|
333
342
|
"content": "v2",
|
|
334
|
-
"
|
|
343
|
+
"overwrite": True,
|
|
335
344
|
},
|
|
336
345
|
)
|
|
337
|
-
assert "Updated note" in result.content[0].text
|
|
346
|
+
assert "# Updated note" in result.content[0].text
|
|
338
347
|
|
|
339
348
|
|
|
340
349
|
# --- move_note aliases ---
|
|
@@ -538,3 +547,19 @@ async def test_aliases_not_advertised_in_schema(mcp_server, app):
|
|
|
538
547
|
assert canonical in props, f"{tool_name}: canonical '{canonical}' missing"
|
|
539
548
|
for alias in must_not_have:
|
|
540
549
|
assert alias not in props, f"{tool_name}: alias '{alias}' leaked into schema"
|
|
550
|
+
|
|
551
|
+
# #818: AliasChoices on optional bool broke external-client JSON schema (null-only).
|
|
552
|
+
overwrite_schema = tools["write_note"].inputSchema["properties"]["overwrite"]
|
|
553
|
+
schema_types: set[str] = set()
|
|
554
|
+
if "type" in overwrite_schema:
|
|
555
|
+
raw = overwrite_schema["type"]
|
|
556
|
+
if isinstance(raw, str):
|
|
557
|
+
schema_types.add(raw)
|
|
558
|
+
else:
|
|
559
|
+
schema_types.update(raw)
|
|
560
|
+
for option in overwrite_schema.get("anyOf", ()):
|
|
561
|
+
if "type" in option:
|
|
562
|
+
schema_types.add(option["type"])
|
|
563
|
+
assert "boolean" in schema_types, (
|
|
564
|
+
f"write_note overwrite must expose boolean in schema, got {overwrite_schema}"
|
|
565
|
+
)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Tests for background task done-callback error handling."""
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
from unittest.mock import patch
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from basic_memory.deps.services import _log_task_failure
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.mark.asyncio
|
|
12
|
+
async def test_log_task_failure_ignores_cancelled_task():
|
|
13
|
+
async def slow():
|
|
14
|
+
await asyncio.sleep(10)
|
|
15
|
+
|
|
16
|
+
task = asyncio.create_task(slow())
|
|
17
|
+
task.cancel()
|
|
18
|
+
with pytest.raises(asyncio.CancelledError):
|
|
19
|
+
await task
|
|
20
|
+
|
|
21
|
+
with patch("basic_memory.deps.services.logger.exception") as mock_exc:
|
|
22
|
+
_log_task_failure(task)
|
|
23
|
+
mock_exc.assert_not_called()
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@pytest.mark.asyncio
|
|
27
|
+
async def test_log_task_failure_logs_real_exception():
|
|
28
|
+
async def boom():
|
|
29
|
+
raise ValueError("sync failed")
|
|
30
|
+
|
|
31
|
+
task = asyncio.create_task(boom())
|
|
32
|
+
with pytest.raises(ValueError):
|
|
33
|
+
await task
|
|
34
|
+
|
|
35
|
+
with patch("basic_memory.deps.services.logger.exception") as mock_exc:
|
|
36
|
+
_log_task_failure(task)
|
|
37
|
+
mock_exc.assert_called_once()
|
|
38
|
+
assert "sync failed" in str(mock_exc.call_args)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/directory_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/importer_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/knowledge_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/memory_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/project_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/prompt_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/resource_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/schema_router.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/api/v2/routers/search_router.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/api_client.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/bisync_commands.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/cloud_utils.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/core_commands.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/project_sync.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_commands.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_config.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/rclone_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/upload_command.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/cloud/workspace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_claude_projects.py
RENAMED
|
File without changes
|
{basic_memory-0.21.3 → basic_memory-0.21.4}/src/basic_memory/cli/commands/import_memory_json.py
RENAMED
|
File without changes
|
|
File without changes
|