basic-memory 0.14.0__tar.gz → 0.14.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of basic-memory might be problematic. Click here for more details.
- {basic_memory-0.14.0 → basic_memory-0.14.1}/PKG-INFO +14 -3
- {basic_memory-0.14.0 → basic_memory-0.14.1}/README.md +12 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/justfile +1 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/pyproject.toml +2 -2
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/__init__.py +4 -4
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/project_management.py +7 -7
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/search.py +4 -4
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_server.py +1 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_edit_note.py +5 -5
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_search.py +1 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/schemas/test_schemas.py +3 -3
- {basic_memory-0.14.0 → basic_memory-0.14.1}/uv.lock +1 -1
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.dockerignore +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/dependabot.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/release.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.github/workflows/test.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.gitignore +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/.python-version +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CHANGELOG.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CITATION.cff +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CLA.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CLAUDE.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/CONTRIBUTING.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/Dockerfile +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/LICENSE +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/SECURITY.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/docker-compose.yml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/docs/Docker.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/llms-install.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/memory.json +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/smithery.yaml +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/config.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/db.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/project_session.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/sync_status.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/sync_status.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/migration_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/services/sync_status_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/cli/test_reset_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/conftest.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/Screenshot.png +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/conftest.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/conftest.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_project_commands.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_project_info.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_status.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/cli/test_version.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/conftest.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_sync_status.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/services/test_sync_status_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/test_config.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/test_db_migration_deduplication.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.14.0 → basic_memory-0.14.1}/tests/utils/test_utf8_handling.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.1
|
|
4
4
|
Summary: Local-first knowledge management combining Zettelkasten with knowledge graphs
|
|
5
5
|
Project-URL: Homepage, https://github.com/basicmachines-co/basic-memory
|
|
6
6
|
Project-URL: Repository, https://github.com/basicmachines-co/basic-memory
|
|
@@ -13,7 +13,7 @@ Requires-Dist: aiosqlite>=0.20.0
|
|
|
13
13
|
Requires-Dist: alembic>=1.14.1
|
|
14
14
|
Requires-Dist: dateparser>=1.2.0
|
|
15
15
|
Requires-Dist: fastapi[standard]>=0.115.8
|
|
16
|
-
Requires-Dist: fastmcp
|
|
16
|
+
Requires-Dist: fastmcp<2.10.0,>=2.3.4
|
|
17
17
|
Requires-Dist: greenlet>=3.1.1
|
|
18
18
|
Requires-Dist: icecream>=2.1.3
|
|
19
19
|
Requires-Dist: loguru>=0.7.3
|
|
@@ -71,6 +71,10 @@ https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc
|
|
|
71
71
|
# Install with uv (recommended)
|
|
72
72
|
uv tool install basic-memory
|
|
73
73
|
|
|
74
|
+
# or with Homebrew
|
|
75
|
+
brew tap basicmachines-co/basic-memory
|
|
76
|
+
brew install basic-memory
|
|
77
|
+
|
|
74
78
|
# Configure Claude Desktop (edit ~/Library/Application Support/Claude/claude_desktop_config.json)
|
|
75
79
|
# Add this to your config:
|
|
76
80
|
{
|
|
@@ -104,6 +108,13 @@ npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude
|
|
|
104
108
|
|
|
105
109
|
This installs and configures Basic Memory without requiring manual edits to the Claude Desktop configuration file. Note: The Smithery installation uses their hosted MCP server, while your data remains stored locally as Markdown files.
|
|
106
110
|
|
|
111
|
+
### Add to Cursor
|
|
112
|
+
|
|
113
|
+
Once you have installed Basic Memory revisit this page for the 1-click installer for Cursor:
|
|
114
|
+
|
|
115
|
+
[](https://cursor.com/install-mcp?name=basic-memory&config=eyJjb21tYW5kIjoiL1VzZXJzL2RyZXcvLmxvY2FsL2Jpbi91dnggYmFzaWMtbWVtb3J5IG1jcCJ9)
|
|
116
|
+
|
|
117
|
+
|
|
107
118
|
### Glama.ai
|
|
108
119
|
|
|
109
120
|
<a href="https://glama.ai/mcp/servers/o90kttu9ym">
|
|
@@ -252,7 +263,7 @@ title: <Entity title>
|
|
|
252
263
|
type: <The type of Entity> (e.g. note)
|
|
253
264
|
permalink: <a uri slug>
|
|
254
265
|
|
|
255
|
-
- <optional metadata> (such as tags)
|
|
266
|
+
- <optional metadata> (such as tags)
|
|
256
267
|
```
|
|
257
268
|
|
|
258
269
|
### Observations
|
|
@@ -33,6 +33,10 @@ https://github.com/user-attachments/assets/a55d8238-8dd0-454a-be4c-8860dbbd0ddc
|
|
|
33
33
|
# Install with uv (recommended)
|
|
34
34
|
uv tool install basic-memory
|
|
35
35
|
|
|
36
|
+
# or with Homebrew
|
|
37
|
+
brew tap basicmachines-co/basic-memory
|
|
38
|
+
brew install basic-memory
|
|
39
|
+
|
|
36
40
|
# Configure Claude Desktop (edit ~/Library/Application Support/Claude/claude_desktop_config.json)
|
|
37
41
|
# Add this to your config:
|
|
38
42
|
{
|
|
@@ -66,6 +70,13 @@ npx -y @smithery/cli install @basicmachines-co/basic-memory --client claude
|
|
|
66
70
|
|
|
67
71
|
This installs and configures Basic Memory without requiring manual edits to the Claude Desktop configuration file. Note: The Smithery installation uses their hosted MCP server, while your data remains stored locally as Markdown files.
|
|
68
72
|
|
|
73
|
+
### Add to Cursor
|
|
74
|
+
|
|
75
|
+
Once you have installed Basic Memory revisit this page for the 1-click installer for Cursor:
|
|
76
|
+
|
|
77
|
+
[](https://cursor.com/install-mcp?name=basic-memory&config=eyJjb21tYW5kIjoiL1VzZXJzL2RyZXcvLmxvY2FsL2Jpbi91dnggYmFzaWMtbWVtb3J5IG1jcCJ9)
|
|
78
|
+
|
|
79
|
+
|
|
69
80
|
### Glama.ai
|
|
70
81
|
|
|
71
82
|
<a href="https://glama.ai/mcp/servers/o90kttu9ym">
|
|
@@ -214,7 +225,7 @@ title: <Entity title>
|
|
|
214
225
|
type: <The type of Entity> (e.g. note)
|
|
215
226
|
permalink: <a uri slug>
|
|
216
227
|
|
|
217
|
-
- <optional metadata> (such as tags)
|
|
228
|
+
- <optional metadata> (such as tags)
|
|
218
229
|
```
|
|
219
230
|
|
|
220
231
|
### Observations
|
|
@@ -30,7 +30,7 @@ dependencies = [
|
|
|
30
30
|
"alembic>=1.14.1",
|
|
31
31
|
"pillow>=11.1.0",
|
|
32
32
|
"pybars3>=0.9.7",
|
|
33
|
-
"fastmcp>=2.3.4",
|
|
33
|
+
"fastmcp>=2.3.4,<2.10.0",
|
|
34
34
|
"pyjwt>=2.10.1",
|
|
35
35
|
"python-dotenv>=1.1.0",
|
|
36
36
|
"pytest-aio>=1.9.0",
|
|
@@ -123,4 +123,4 @@ omit = [
|
|
|
123
123
|
]
|
|
124
124
|
|
|
125
125
|
[tool.logfire]
|
|
126
|
-
ignore_no_config = true
|
|
126
|
+
ignore_no_config = true
|
|
@@ -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.14.
|
|
4
|
+
__version__ = "0.14.1"
|
|
5
5
|
|
|
6
6
|
# API version for FastAPI - independent of package version
|
|
7
7
|
__api_version__ = "v0"
|
|
@@ -20,24 +20,24 @@ from basic_memory.mcp.tools.edit_note import edit_note
|
|
|
20
20
|
from basic_memory.mcp.tools.move_note import move_note
|
|
21
21
|
from basic_memory.mcp.tools.sync_status import sync_status
|
|
22
22
|
from basic_memory.mcp.tools.project_management import (
|
|
23
|
-
|
|
23
|
+
list_memory_projects,
|
|
24
24
|
switch_project,
|
|
25
25
|
get_current_project,
|
|
26
26
|
set_default_project,
|
|
27
|
-
|
|
27
|
+
create_memory_project,
|
|
28
28
|
delete_project,
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
__all__ = [
|
|
32
32
|
"build_context",
|
|
33
33
|
"canvas",
|
|
34
|
-
"
|
|
34
|
+
"create_memory_project",
|
|
35
35
|
"delete_note",
|
|
36
36
|
"delete_project",
|
|
37
37
|
"edit_note",
|
|
38
38
|
"get_current_project",
|
|
39
39
|
"list_directory",
|
|
40
|
-
"
|
|
40
|
+
"list_memory_projects",
|
|
41
41
|
"move_note",
|
|
42
42
|
"read_content",
|
|
43
43
|
"read_note",
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/tools/project_management.py
RENAMED
|
@@ -19,7 +19,7 @@ from basic_memory.utils import generate_permalink
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@mcp.tool("list_memory_projects")
|
|
22
|
-
async def
|
|
22
|
+
async def list_memory_projects(ctx: Context | None = None) -> str:
|
|
23
23
|
"""List all available projects with their status.
|
|
24
24
|
|
|
25
25
|
Shows all Basic Memory projects that are available, indicating which one
|
|
@@ -29,7 +29,7 @@ async def list_projects(ctx: Context | None = None) -> str:
|
|
|
29
29
|
Formatted list of projects with status indicators
|
|
30
30
|
|
|
31
31
|
Example:
|
|
32
|
-
|
|
32
|
+
list_memory_projects()
|
|
33
33
|
"""
|
|
34
34
|
if ctx: # pragma: no cover
|
|
35
35
|
await ctx.info("Listing all available projects")
|
|
@@ -144,13 +144,13 @@ async def switch_project(project_name: str, ctx: Context | None = None) -> str:
|
|
|
144
144
|
Your session remains on the previous project.
|
|
145
145
|
|
|
146
146
|
## Troubleshooting:
|
|
147
|
-
1. **Check available projects**: Use `
|
|
147
|
+
1. **Check available projects**: Use `list_memory_projects()` to see valid project names
|
|
148
148
|
2. **Verify spelling**: Ensure the project name is spelled correctly
|
|
149
149
|
3. **Check permissions**: Verify you have access to the requested project
|
|
150
150
|
4. **Try again**: The error might be temporary
|
|
151
151
|
|
|
152
152
|
## Available options:
|
|
153
|
-
- See all projects: `
|
|
153
|
+
- See all projects: `list_memory_projects()`
|
|
154
154
|
- Stay on current project: `get_current_project()`
|
|
155
155
|
- Try different project: `switch_project("correct-project-name")`
|
|
156
156
|
|
|
@@ -231,7 +231,7 @@ async def set_default_project(project_name: str, ctx: Context | None = None) ->
|
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
@mcp.tool("create_memory_project")
|
|
234
|
-
async def
|
|
234
|
+
async def create_memory_project(
|
|
235
235
|
project_name: str, project_path: str, set_default: bool = False, ctx: Context | None = None
|
|
236
236
|
) -> str:
|
|
237
237
|
"""Create a new Basic Memory project.
|
|
@@ -248,8 +248,8 @@ async def create_project(
|
|
|
248
248
|
Confirmation message with project details
|
|
249
249
|
|
|
250
250
|
Example:
|
|
251
|
-
|
|
252
|
-
|
|
251
|
+
create_memory_project("my-research", "~/Documents/research")
|
|
252
|
+
create_memory_project("work-notes", "/home/user/work", set_default=True)
|
|
253
253
|
"""
|
|
254
254
|
if ctx: # pragma: no cover
|
|
255
255
|
await ctx.info(f"Creating project: {project_name} at {project_path}")
|
|
@@ -54,7 +54,7 @@ def _format_search_error_response(error_message: str, query: str, search_type: s
|
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## Alternative search strategies:
|
|
57
|
-
- Break into simpler terms: `search_notes("{
|
|
57
|
+
- Break into simpler terms: `search_notes("{" ".join(clean_query.split()[:2])}")`
|
|
58
58
|
- Try different search types: `search_notes("{clean_query}", search_type="title")`
|
|
59
59
|
- Use filtering: `search_notes("{clean_query}", types=["entity"])`
|
|
60
60
|
""").strip()
|
|
@@ -105,7 +105,7 @@ def _format_search_error_response(error_message: str, query: str, search_type: s
|
|
|
105
105
|
- **Permalink search**: `search_notes("{query}", search_type="permalink")` (searches file paths)
|
|
106
106
|
|
|
107
107
|
4. **Try boolean operators for broader results**:
|
|
108
|
-
- OR search: `search_notes("{
|
|
108
|
+
- OR search: `search_notes("{" OR ".join(query.split()[:3])}")`
|
|
109
109
|
- Remove restrictive terms: Focus on the most important keywords
|
|
110
110
|
|
|
111
111
|
5. **Use filtering to narrow scope**:
|
|
@@ -183,7 +183,7 @@ Error searching for '{query}': {error_message}
|
|
|
183
183
|
- Permalink patterns: `search_notes("{query}*", search_type="permalink")`
|
|
184
184
|
- **With filters**: `search_notes("{query}", types=["entity"])`
|
|
185
185
|
- **Recent content**: `search_notes("{query}", after_date="1 week")`
|
|
186
|
-
- **Boolean variations**: `search_notes("{
|
|
186
|
+
- **Boolean variations**: `search_notes("{" OR ".join(query.split()[:2])}")`
|
|
187
187
|
|
|
188
188
|
## Explore your content:
|
|
189
189
|
- **Browse files**: `list_directory("/")` - See all available content
|
|
@@ -224,7 +224,7 @@ async def search_notes(
|
|
|
224
224
|
- `search_notes("keyword")` - Find any content containing "keyword"
|
|
225
225
|
- `search_notes("exact phrase")` - Search for exact phrase match
|
|
226
226
|
|
|
227
|
-
### Advanced Boolean Searches
|
|
227
|
+
### Advanced Boolean Searches
|
|
228
228
|
- `search_notes("term1 term2")` - Find content with both terms (implicit AND)
|
|
229
229
|
- `search_notes("term1 AND term2")` - Explicit AND search (both terms required)
|
|
230
230
|
- `search_notes("term1 OR term2")` - Either term can be present
|
|
@@ -93,7 +93,7 @@ class TestMCPServer:
|
|
|
93
93
|
# Missing SUPABASE_ANON_KEY
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
with patch.dict(os.environ, env_vars):
|
|
96
|
+
with patch.dict(os.environ, env_vars, clear=True):
|
|
97
97
|
with pytest.raises(ValueError, match="SUPABASE_URL and SUPABASE_ANON_KEY must be set"):
|
|
98
98
|
create_auth_config()
|
|
99
99
|
|
|
@@ -364,7 +364,7 @@ async def test_edit_note_find_replace_empty_find_text(client):
|
|
|
364
364
|
@pytest.mark.asyncio
|
|
365
365
|
async def test_edit_note_preserves_permalink_when_frontmatter_missing(client):
|
|
366
366
|
"""Test that editing a note preserves the permalink when frontmatter doesn't contain one.
|
|
367
|
-
|
|
367
|
+
|
|
368
368
|
This is a regression test for issue #170 where edit_note would fail with a validation error
|
|
369
369
|
because the permalink was being set to None when the markdown file didn't have a permalink
|
|
370
370
|
in its frontmatter.
|
|
@@ -382,15 +382,15 @@ async def test_edit_note_preserves_permalink_when_frontmatter_missing(client):
|
|
|
382
382
|
operation="append",
|
|
383
383
|
content="\nFirst edit.",
|
|
384
384
|
)
|
|
385
|
-
|
|
385
|
+
|
|
386
386
|
assert isinstance(first_result, str)
|
|
387
387
|
assert "permalink: test/test-note" in first_result
|
|
388
|
-
|
|
389
|
-
# Perform another edit - this should preserve the permalink even if the
|
|
388
|
+
|
|
389
|
+
# Perform another edit - this should preserve the permalink even if the
|
|
390
390
|
# file doesn't have a permalink in its frontmatter
|
|
391
391
|
second_result = await edit_note.fn(
|
|
392
392
|
identifier="test/test-note",
|
|
393
|
-
operation="append",
|
|
393
|
+
operation="append",
|
|
394
394
|
content="\nSecond edit.",
|
|
395
395
|
)
|
|
396
396
|
|
|
@@ -51,7 +51,7 @@ async def test_search_title(client):
|
|
|
51
51
|
|
|
52
52
|
# Verify results - handle both success and error cases
|
|
53
53
|
if isinstance(response, str):
|
|
54
|
-
# If search failed and returned error message, test should fail with informative message
|
|
54
|
+
# If search failed and returned error message, test should fail with informative message
|
|
55
55
|
pytest.fail(f"Search failed with error: {response}")
|
|
56
56
|
else:
|
|
57
57
|
# Success case - verify SearchResponse
|
|
@@ -129,9 +129,9 @@ def test_entity_out_from_attributes():
|
|
|
129
129
|
|
|
130
130
|
def test_entity_response_with_none_permalink():
|
|
131
131
|
"""Test EntityResponse can handle None permalink (fixes issue #170).
|
|
132
|
-
|
|
132
|
+
|
|
133
133
|
This test ensures that EntityResponse properly validates when the permalink
|
|
134
|
-
field is None, which can occur when markdown files don't have explicit
|
|
134
|
+
field is None, which can occur when markdown files don't have explicit
|
|
135
135
|
permalinks in their frontmatter during edit operations.
|
|
136
136
|
"""
|
|
137
137
|
# Simulate database model attributes with None permalink
|
|
@@ -146,7 +146,7 @@ def test_entity_response_with_none_permalink():
|
|
|
146
146
|
"created_at": "2023-01-01T00:00:00",
|
|
147
147
|
"updated_at": "2023-01-01T00:00:00",
|
|
148
148
|
}
|
|
149
|
-
|
|
149
|
+
|
|
150
150
|
# This should not raise a ValidationError
|
|
151
151
|
entity = EntityResponse.model_validate(db_data)
|
|
152
152
|
assert entity.permalink is None
|
|
@@ -121,7 +121,7 @@ requires-dist = [
|
|
|
121
121
|
{ name = "alembic", specifier = ">=1.14.1" },
|
|
122
122
|
{ name = "dateparser", specifier = ">=1.2.0" },
|
|
123
123
|
{ name = "fastapi", extras = ["standard"], specifier = ">=0.115.8" },
|
|
124
|
-
{ name = "fastmcp", specifier = ">=2.3.4" },
|
|
124
|
+
{ name = "fastmcp", specifier = ">=2.3.4,<2.10.0" },
|
|
125
125
|
{ name = "greenlet", specifier = ">=3.1.1" },
|
|
126
126
|
{ name = "icecream", specifier = ">=2.1.3" },
|
|
127
127
|
{ name = "loguru", specifier = ">=0.7.3" },
|
|
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.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/directory_router.py
RENAMED
|
File without changes
|
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/api/routers/knowledge_router.py
RENAMED
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/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.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_claude_projects.py
RENAMED
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/cli/commands/import_memory_json.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.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/claude_projects_importer.py
RENAMED
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/importers/memory_json_importer.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
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py
RENAMED
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/prompts/continue_conversation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{basic_memory-0.14.0 → basic_memory-0.14.1}/src/basic_memory/mcp/resources/ai_assistant_guide.md
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
|