basic-memory 0.13.3__tar.gz → 0.13.5__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.
Potentially problematic release.
This version of basic-memory might be problematic. Click here for more details.
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/release/release.md +6 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CHANGELOG.md +68 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/PKG-INFO +1 -1
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/config.py +1 -1
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/project_management.py +2 -2
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_project_management_integration.py +25 -25
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/check-health.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/commands.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/lint-fix.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/test-coverage.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.env.oauth.example +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/dependabot.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/workflows/release.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.github/workflows/test.yml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.gitignore +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.mcp.json +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/.python-version +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/AUTH.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CITATION.cff +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CLA.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CLAUDE.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/CONTRIBUTING.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/Dockerfile +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/LICENSE +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/README.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/SECURITY.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/basic-memory.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/CLI Reference.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Canvas.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Claude.ai Integration.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Getting Started with Basic Memory.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Knowledge Format.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/OAuth Authentication Guide.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Obsidian Integration.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Supabase OAuth Setup.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Technical Information.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/User Guide.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/Welcome to Basic memory.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/Canvas.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/Prompt.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/disk-ai-logo-400x400.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/disk-ai-logo.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/prompt 1.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/prompt2.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/prompt3.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/attachments/prompt4.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/docs/publish.js +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Brewing Equipment.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Coffee Bean Origins.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Coffee Brewing Methods.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Coffee Flavor Map.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Coffee Knowledge Base.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Flavor Extraction.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/Coffee Notes/Tasting Notes.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/examples/testing/Test Note Creation - Basic Functionality.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/justfile +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/llms-install.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/memory.json +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/pyproject.toml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/scripts/install.sh +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/smithery.yaml +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/db.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/project_session.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/sync_status.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/sync_status.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/migration_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/services/sync_status_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/static/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/static/json_canvas_spec_1_0.md +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/conftest.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/Screenshot.png +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/conftest.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/conftest.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_project_commands.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_project_info.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_status.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/cli/test_version.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/conftest.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_server.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_sync_status.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/services/test_sync_status_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.13.3 → basic_memory-0.13.5}/uv.lock +0 -0
|
@@ -20,6 +20,12 @@ You are an expert release manager for the Basic Memory project. When the user ru
|
|
|
20
20
|
3. Verify we're on the `main` branch
|
|
21
21
|
4. Confirm no existing tag with this version
|
|
22
22
|
|
|
23
|
+
#### Documentation Validation
|
|
24
|
+
1. **Changelog Check**
|
|
25
|
+
- CHANGELOG.md contains entry for target version
|
|
26
|
+
- Entry includes all major features and fixes
|
|
27
|
+
- Breaking changes are documented
|
|
28
|
+
|
|
23
29
|
### Step 2: Use Justfile Automation
|
|
24
30
|
Execute the automated release process:
|
|
25
31
|
```bash
|
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.13.5 (2025-06-11)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **MCP Tools**: Renamed `create_project` tool to `create_memory_project` for namespace isolation
|
|
8
|
+
- **Namespace**: Continued namespace isolation effort to prevent conflicts with other MCP servers
|
|
9
|
+
|
|
10
|
+
### Changes
|
|
11
|
+
|
|
12
|
+
- Tool functionality remains identical - only the name changed from `create_project` to `create_memory_project`
|
|
13
|
+
- All integration tests updated to use the new tool name
|
|
14
|
+
- Completes namespace isolation for project management tools alongside `list_memory_projects`
|
|
15
|
+
|
|
16
|
+
## v0.13.4 (2025-06-11)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- **MCP Tools**: Renamed `list_projects` tool to `list_memory_projects` to avoid naming conflicts with other MCP servers
|
|
21
|
+
- **Namespace**: Improved tool naming specificity for better MCP server integration and isolation
|
|
22
|
+
|
|
23
|
+
### Changes
|
|
24
|
+
|
|
25
|
+
- Tool functionality remains identical - only the name changed from `list_projects` to `list_memory_projects`
|
|
26
|
+
- All integration tests updated to use the new tool name
|
|
27
|
+
- Better namespace isolation for Basic Memory MCP tools
|
|
28
|
+
|
|
29
|
+
## v0.13.3 (2025-06-11)
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
- **Projects**: Fixed case-insensitive project switching where switching succeeded but subsequent operations failed due to session state inconsistency
|
|
34
|
+
- **Config**: Enhanced config manager with case-insensitive project lookup using permalink-based matching
|
|
35
|
+
- **MCP Tools**: Updated project management tools to store canonical project names from database instead of user input
|
|
36
|
+
- **API**: Improved project service to handle both name and permalink lookups consistently
|
|
37
|
+
|
|
38
|
+
### Technical Improvements
|
|
39
|
+
|
|
40
|
+
- Added comprehensive case-insensitive project switching test coverage with 5 new integration test scenarios
|
|
41
|
+
- Fixed permalink generation inconsistencies where different case inputs could generate different permalinks
|
|
42
|
+
- Enhanced project URL construction to use permalinks consistently across all API calls
|
|
43
|
+
- Improved error handling and session state management for project operations
|
|
44
|
+
|
|
45
|
+
### Changes
|
|
46
|
+
|
|
47
|
+
- Project switching now preserves canonical project names from database in session state
|
|
48
|
+
- All project operations use permalink-based lookups for case-insensitive matching
|
|
49
|
+
- Enhanced test coverage ensures reliable case-insensitive project operations
|
|
50
|
+
|
|
51
|
+
## v0.13.2 (2025-06-11)
|
|
52
|
+
|
|
53
|
+
### Features
|
|
54
|
+
|
|
55
|
+
- **Release Management**: Added automated release management system with version control in `__init__.py`
|
|
56
|
+
- **Automation**: Implemented justfile targets for `release` and `beta` commands with comprehensive quality gates
|
|
57
|
+
- **CI/CD**: Enhanced release process with automatic version updates, git tagging, and GitHub release creation
|
|
58
|
+
|
|
59
|
+
### Development Experience
|
|
60
|
+
|
|
61
|
+
- Added `.claude/commands/release/` directory with automation documentation
|
|
62
|
+
- Implemented release validation including lint, type-check, and test execution
|
|
63
|
+
- Streamlined release workflow from manual process to single-command automation
|
|
64
|
+
|
|
65
|
+
### Technical Improvements
|
|
66
|
+
|
|
67
|
+
- Updated package version management to use actual version numbers instead of dynamic versioning
|
|
68
|
+
- Added release process documentation and command references
|
|
69
|
+
- Enhanced justfile with comprehensive release automation targets
|
|
70
|
+
|
|
3
71
|
## v0.13.1 (2025-06-11)
|
|
4
72
|
|
|
5
73
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.5
|
|
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
|
|
@@ -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.13.
|
|
4
|
+
__version__ = "0.13.5"
|
|
5
5
|
|
|
6
6
|
# API version for FastAPI - independent of package version
|
|
7
7
|
__api_version__ = "v0"
|
|
@@ -275,7 +275,7 @@ def get_project_config(project_name: Optional[str] = None) -> ProjectConfig:
|
|
|
275
275
|
return ProjectConfig(name=name, home=Path(path))
|
|
276
276
|
|
|
277
277
|
# otherwise raise error
|
|
278
|
-
raise ValueError(f"Project '{actual_project_name}' not found")
|
|
278
|
+
raise ValueError(f"Project '{actual_project_name}' not found") # pragma: no cover
|
|
279
279
|
|
|
280
280
|
|
|
281
281
|
# Create config manager
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/mcp/tools/project_management.py
RENAMED
|
@@ -18,7 +18,7 @@ from basic_memory.schemas.project_info import ProjectList, ProjectStatusResponse
|
|
|
18
18
|
from basic_memory.utils import generate_permalink
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
@mcp.tool()
|
|
21
|
+
@mcp.tool("list_memory_projects")
|
|
22
22
|
async def list_projects(ctx: Context | None = None) -> str:
|
|
23
23
|
"""List all available projects with their status.
|
|
24
24
|
|
|
@@ -230,7 +230,7 @@ async def set_default_project(project_name: str, ctx: Context | None = None) ->
|
|
|
230
230
|
return add_project_metadata(result, session.get_current_project())
|
|
231
231
|
|
|
232
232
|
|
|
233
|
-
@mcp.tool()
|
|
233
|
+
@mcp.tool("create_memory_project")
|
|
234
234
|
async def create_project(
|
|
235
235
|
project_name: str, project_path: str, set_default: bool = False, ctx: Context | None = None
|
|
236
236
|
) -> str:
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/test-int/mcp/test_project_management_integration.py
RENAMED
|
@@ -15,7 +15,7 @@ async def test_list_projects_basic_operation(mcp_server, app):
|
|
|
15
15
|
async with Client(mcp_server) as client:
|
|
16
16
|
# List all available projects
|
|
17
17
|
list_result = await client.call_tool(
|
|
18
|
-
"
|
|
18
|
+
"list_memory_projects",
|
|
19
19
|
{},
|
|
20
20
|
)
|
|
21
21
|
|
|
@@ -248,7 +248,7 @@ async def test_project_management_workflow(mcp_server, app):
|
|
|
248
248
|
assert "test-project" in current_result[0].text
|
|
249
249
|
|
|
250
250
|
# 2. List all projects
|
|
251
|
-
list_result = await client.call_tool("
|
|
251
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
252
252
|
assert "Available projects:" in list_result[0].text
|
|
253
253
|
assert "test-project" in list_result[0].text
|
|
254
254
|
|
|
@@ -269,7 +269,7 @@ async def test_project_metadata_consistency(mcp_server, app):
|
|
|
269
269
|
# Test all project management tools and verify they include project metadata
|
|
270
270
|
|
|
271
271
|
# list_projects
|
|
272
|
-
list_result = await client.call_tool("
|
|
272
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
273
273
|
assert "Project: test-project" in list_result[0].text
|
|
274
274
|
|
|
275
275
|
# get_current_project
|
|
@@ -350,7 +350,7 @@ async def test_create_project_basic_operation(mcp_server, app):
|
|
|
350
350
|
async with Client(mcp_server) as client:
|
|
351
351
|
# Create a new project
|
|
352
352
|
create_result = await client.call_tool(
|
|
353
|
-
"
|
|
353
|
+
"create_memory_project",
|
|
354
354
|
{
|
|
355
355
|
"project_name": "test-new-project",
|
|
356
356
|
"project_path": "/tmp/test-new-project",
|
|
@@ -370,7 +370,7 @@ async def test_create_project_basic_operation(mcp_server, app):
|
|
|
370
370
|
assert "Project: test-project" in create_text # Should still show current project
|
|
371
371
|
|
|
372
372
|
# Verify project appears in project list
|
|
373
|
-
list_result = await client.call_tool("
|
|
373
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
374
374
|
list_text = list_result[0].text
|
|
375
375
|
assert "test-new-project" in list_text
|
|
376
376
|
|
|
@@ -382,7 +382,7 @@ async def test_create_project_with_default_flag(mcp_server, app):
|
|
|
382
382
|
async with Client(mcp_server) as client:
|
|
383
383
|
# Create a new project and set as default
|
|
384
384
|
create_result = await client.call_tool(
|
|
385
|
-
"
|
|
385
|
+
"create_memory_project",
|
|
386
386
|
{
|
|
387
387
|
"project_name": "test-default-project",
|
|
388
388
|
"project_path": "/tmp/test-default-project",
|
|
@@ -412,7 +412,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
|
|
|
412
412
|
async with Client(mcp_server) as client:
|
|
413
413
|
# First create a project
|
|
414
414
|
await client.call_tool(
|
|
415
|
-
"
|
|
415
|
+
"create_memory_project",
|
|
416
416
|
{
|
|
417
417
|
"project_name": "duplicate-test",
|
|
418
418
|
"project_path": "/tmp/duplicate-test-1",
|
|
@@ -422,7 +422,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
|
|
|
422
422
|
# Try to create another project with same name
|
|
423
423
|
with pytest.raises(Exception) as exc_info:
|
|
424
424
|
await client.call_tool(
|
|
425
|
-
"
|
|
425
|
+
"create_memory_project",
|
|
426
426
|
{
|
|
427
427
|
"project_name": "duplicate-test",
|
|
428
428
|
"project_path": "/tmp/duplicate-test-2",
|
|
@@ -431,7 +431,7 @@ async def test_create_project_duplicate_name(mcp_server, app):
|
|
|
431
431
|
|
|
432
432
|
# Should show error about duplicate name
|
|
433
433
|
error_message = str(exc_info.value)
|
|
434
|
-
assert "
|
|
434
|
+
assert "create_memory_project" in error_message
|
|
435
435
|
assert (
|
|
436
436
|
"duplicate-test" in error_message
|
|
437
437
|
or "already exists" in error_message
|
|
@@ -446,7 +446,7 @@ async def test_delete_project_basic_operation(mcp_server, app):
|
|
|
446
446
|
async with Client(mcp_server) as client:
|
|
447
447
|
# First create a project to delete
|
|
448
448
|
await client.call_tool(
|
|
449
|
-
"
|
|
449
|
+
"create_memory_project",
|
|
450
450
|
{
|
|
451
451
|
"project_name": "to-be-deleted",
|
|
452
452
|
"project_path": "/tmp/to-be-deleted",
|
|
@@ -454,7 +454,7 @@ async def test_delete_project_basic_operation(mcp_server, app):
|
|
|
454
454
|
)
|
|
455
455
|
|
|
456
456
|
# Verify it exists
|
|
457
|
-
list_result = await client.call_tool("
|
|
457
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
458
458
|
assert "to-be-deleted" in list_result[0].text
|
|
459
459
|
|
|
460
460
|
# Delete the project
|
|
@@ -478,7 +478,7 @@ async def test_delete_project_basic_operation(mcp_server, app):
|
|
|
478
478
|
assert "Project: test-project" in delete_text # Should show current project
|
|
479
479
|
|
|
480
480
|
# Verify project no longer appears in list
|
|
481
|
-
list_result_after = await client.call_tool("
|
|
481
|
+
list_result_after = await client.call_tool("list_memory_projects", {})
|
|
482
482
|
assert "to-be-deleted" not in list_result_after[0].text
|
|
483
483
|
|
|
484
484
|
|
|
@@ -540,7 +540,7 @@ async def test_project_lifecycle_workflow(mcp_server, app):
|
|
|
540
540
|
|
|
541
541
|
# 1. Create new project
|
|
542
542
|
create_result = await client.call_tool(
|
|
543
|
-
"
|
|
543
|
+
"create_memory_project",
|
|
544
544
|
{
|
|
545
545
|
"project_name": project_name,
|
|
546
546
|
"project_path": project_path,
|
|
@@ -595,7 +595,7 @@ async def test_project_lifecycle_workflow(mcp_server, app):
|
|
|
595
595
|
assert "removed successfully" in delete_result[0].text
|
|
596
596
|
|
|
597
597
|
# 7. Verify project is gone from list
|
|
598
|
-
list_result = await client.call_tool("
|
|
598
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
599
599
|
assert project_name not in list_result[0].text
|
|
600
600
|
|
|
601
601
|
|
|
@@ -609,7 +609,7 @@ async def test_create_delete_project_edge_cases(mcp_server, app):
|
|
|
609
609
|
|
|
610
610
|
# Create project with special characters
|
|
611
611
|
create_result = await client.call_tool(
|
|
612
|
-
"
|
|
612
|
+
"create_memory_project",
|
|
613
613
|
{
|
|
614
614
|
"project_name": special_name,
|
|
615
615
|
"project_path": f"/tmp/{special_name}",
|
|
@@ -619,7 +619,7 @@ async def test_create_delete_project_edge_cases(mcp_server, app):
|
|
|
619
619
|
assert special_name in create_result[0].text
|
|
620
620
|
|
|
621
621
|
# Verify it appears in list
|
|
622
|
-
list_result = await client.call_tool("
|
|
622
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
623
623
|
assert special_name in list_result[0].text
|
|
624
624
|
|
|
625
625
|
# Delete it
|
|
@@ -633,7 +633,7 @@ async def test_create_delete_project_edge_cases(mcp_server, app):
|
|
|
633
633
|
assert special_name in delete_result[0].text
|
|
634
634
|
|
|
635
635
|
# Verify it's gone
|
|
636
|
-
list_result_after = await client.call_tool("
|
|
636
|
+
list_result_after = await client.call_tool("list_memory_projects", {})
|
|
637
637
|
assert special_name not in list_result_after[0].text
|
|
638
638
|
|
|
639
639
|
|
|
@@ -645,7 +645,7 @@ async def test_case_insensitive_project_switching(mcp_server, app):
|
|
|
645
645
|
# Create a project with mixed case name
|
|
646
646
|
project_name = "Personal-Project"
|
|
647
647
|
create_result = await client.call_tool(
|
|
648
|
-
"
|
|
648
|
+
"create_memory_project",
|
|
649
649
|
{
|
|
650
650
|
"project_name": project_name,
|
|
651
651
|
"project_path": f"/tmp/{project_name}",
|
|
@@ -655,7 +655,7 @@ async def test_case_insensitive_project_switching(mcp_server, app):
|
|
|
655
655
|
assert project_name in create_result[0].text
|
|
656
656
|
|
|
657
657
|
# Verify project was created with canonical name
|
|
658
|
-
list_result = await client.call_tool("
|
|
658
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
659
659
|
assert project_name in list_result[0].text
|
|
660
660
|
|
|
661
661
|
# Test switching with different case variations
|
|
@@ -709,7 +709,7 @@ async def test_case_insensitive_project_operations(mcp_server, app):
|
|
|
709
709
|
# Create a project with capital letters
|
|
710
710
|
project_name = "CamelCase-Project"
|
|
711
711
|
create_result = await client.call_tool(
|
|
712
|
-
"
|
|
712
|
+
"create_memory_project",
|
|
713
713
|
{
|
|
714
714
|
"project_name": project_name,
|
|
715
715
|
"project_path": f"/tmp/{project_name}",
|
|
@@ -809,7 +809,7 @@ async def test_case_preservation_in_project_list(mcp_server, app):
|
|
|
809
809
|
# Create all test projects
|
|
810
810
|
for project_name in test_projects:
|
|
811
811
|
await client.call_tool(
|
|
812
|
-
"
|
|
812
|
+
"create_memory_project",
|
|
813
813
|
{
|
|
814
814
|
"project_name": project_name,
|
|
815
815
|
"project_path": f"/tmp/{project_name}",
|
|
@@ -817,7 +817,7 @@ async def test_case_preservation_in_project_list(mcp_server, app):
|
|
|
817
817
|
)
|
|
818
818
|
|
|
819
819
|
# List projects and verify each appears with its original case
|
|
820
|
-
list_result = await client.call_tool("
|
|
820
|
+
list_result = await client.call_tool("list_memory_projects", {})
|
|
821
821
|
list_text = list_result[0].text
|
|
822
822
|
|
|
823
823
|
for project_name in test_projects:
|
|
@@ -854,7 +854,7 @@ async def test_session_state_consistency_after_case_switch(mcp_server, app):
|
|
|
854
854
|
# Create a project with specific case
|
|
855
855
|
project_name = "Session-Test-Project"
|
|
856
856
|
await client.call_tool(
|
|
857
|
-
"
|
|
857
|
+
"create_memory_project",
|
|
858
858
|
{
|
|
859
859
|
"project_name": project_name,
|
|
860
860
|
"project_path": f"/tmp/{project_name}",
|
|
@@ -880,7 +880,7 @@ async def test_session_state_consistency_after_case_switch(mcp_server, app):
|
|
|
880
880
|
),
|
|
881
881
|
("get_current_project", {}),
|
|
882
882
|
("search_notes", {"query": "session"}),
|
|
883
|
-
("
|
|
883
|
+
("list_memory_projects", {}),
|
|
884
884
|
]
|
|
885
885
|
|
|
886
886
|
for op_name, op_params in operations:
|
|
@@ -889,7 +889,7 @@ async def test_session_state_consistency_after_case_switch(mcp_server, app):
|
|
|
889
889
|
# All operations should work and reference the canonical project name
|
|
890
890
|
if op_name == "get_current_project":
|
|
891
891
|
assert f"Current project: {project_name}" in result[0].text
|
|
892
|
-
elif op_name == "
|
|
892
|
+
elif op_name == "list_memory_projects":
|
|
893
893
|
assert project_name in result[0].text
|
|
894
894
|
assert "(current)" in result[0].text or "current" in result[0].text.lower()
|
|
895
895
|
|
|
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.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/directory_router.py
RENAMED
|
File without changes
|
|
File without changes
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/knowledge_router.py
RENAMED
|
File without changes
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/api/routers/management_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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_claude_projects.py
RENAMED
|
File without changes
|
{basic_memory-0.13.3 → basic_memory-0.13.5}/src/basic_memory/cli/commands/import_memory_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|