basic-memory 0.13.8.dev1__tar.gz → 0.14.0__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.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/changelog.md +5 -2
- basic_memory-0.14.0/.claude/commands/test-live.md +595 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/claude.yml +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/release.yml +3 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CHANGELOG.md +121 -39
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CLAUDE.md +3 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/PKG-INFO +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/utils.py +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/mcp.py +0 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/config.py +6 -2
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/utils.py +3 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/build_context.py +6 -3
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/move_note.py +155 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/read_note.py +6 -3
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/search.py +115 -38
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/utils.py +27 -4
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/write_note.py +6 -2
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/entity_repository.py +4 -4
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/search_repository.py +153 -23
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/memory.py +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/response.py +1 -1
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/entity_service.py +8 -3
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/sync_status_service.py +17 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_move_note_integration.py +133 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_edit_note.py +39 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_search.py +63 -22
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_entity_repository_upsert.py +203 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_search_repository.py +80 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_schemas.py +30 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_entity_service.py +66 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_sync_status_service.py +49 -0
- basic_memory-0.14.0/tests/test_config.py +78 -0
- basic_memory-0.13.8.dev1/.claude/commands/check-health.md +0 -190
- basic_memory-0.13.8.dev1/.claude/commands/commands.md +0 -62
- basic_memory-0.13.8.dev1/.claude/commands/lint-fix.md +0 -145
- basic_memory-0.13.8.dev1/.claude/commands/test-coverage.md +0 -131
- basic_memory-0.13.8.dev1/.claude/commands/test-live.md +0 -410
- basic_memory-0.13.8.dev1/.mcp.json +0 -14
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.dockerignore +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/dependabot.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.github/workflows/test.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.gitignore +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/.python-version +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CITATION.cff +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CLA.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/CONTRIBUTING.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/Dockerfile +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/LICENSE +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/README.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/SECURITY.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docker-compose.yml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/docs/Docker.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/justfile +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/llms-install.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/memory.json +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/pyproject.toml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/smithery.yaml +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/db.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/project_session.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/sync_status.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/sync_status.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/migration_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/cli/test_reset_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/conftest.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/Screenshot.png +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/conftest.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/conftest.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_project_commands.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_project_info.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_status.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/cli/test_version.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/conftest.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_server.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_sync_status.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/test_db_migration_deduplication.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.13.8.dev1 → basic_memory-0.14.0}/uv.lock +0 -0
|
@@ -8,7 +8,7 @@ Analyze commits and generate formatted changelog entry for a version.
|
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
**Parameters:**
|
|
11
|
-
- `version` (required): Version like `v0.
|
|
11
|
+
- `version` (required): Version like `v0.14.0` or `v0.14.0b1`
|
|
12
12
|
- `type` (optional): `beta`, `rc`, or `stable` (default: `stable`)
|
|
13
13
|
|
|
14
14
|
## Implementation
|
|
@@ -59,8 +59,9 @@ You are an expert technical writer for the Basic Memory project. When the user r
|
|
|
59
59
|
### Step 3: Generate Changelog Entry
|
|
60
60
|
Create formatted entry following existing CHANGELOG.md style:
|
|
61
61
|
|
|
62
|
+
Example:
|
|
62
63
|
```markdown
|
|
63
|
-
##
|
|
64
|
+
## <version> (<date>)
|
|
64
65
|
|
|
65
66
|
### Features
|
|
66
67
|
|
|
@@ -128,6 +129,8 @@ Create formatted entry following existing CHANGELOG.md style:
|
|
|
128
129
|
## Output Format
|
|
129
130
|
|
|
130
131
|
### For Beta Releases
|
|
132
|
+
|
|
133
|
+
Example:
|
|
131
134
|
```markdown
|
|
132
135
|
## v0.13.0b4 (2025-06-03)
|
|
133
136
|
|
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
# /project:test-live - Live Basic Memory Testing Suite
|
|
2
|
+
|
|
3
|
+
Execute comprehensive real-world testing of Basic Memory using the installed version.
|
|
4
|
+
All test results are recorded as notes in a dedicated test project.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
```
|
|
8
|
+
/project:test-live [phase]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Parameters:**
|
|
12
|
+
- `phase` (optional): Specific test phase to run (`recent`, `core`, `features`, `edge`, `workflows`, `stress`, or `all`)
|
|
13
|
+
- `recent` - Focus on recent changes and new features (recommended for regular testing)
|
|
14
|
+
- `core` - Essential tools only (Tier 1: write_note, read_note, search_notes, edit_note, list_projects, switch_project)
|
|
15
|
+
- `features` - Core + important workflows (Tier 1 + Tier 2)
|
|
16
|
+
- `all` - Comprehensive testing of all tools and scenarios
|
|
17
|
+
|
|
18
|
+
## Implementation
|
|
19
|
+
|
|
20
|
+
You are an expert QA engineer conducting live testing of Basic Memory.
|
|
21
|
+
When the user runs `/project:test-live`, execute comprehensive test plan:
|
|
22
|
+
|
|
23
|
+
## Tool Testing Priority
|
|
24
|
+
|
|
25
|
+
### **Tier 1: Critical Core (Always Test)**
|
|
26
|
+
1. **write_note** - Foundation of all knowledge creation
|
|
27
|
+
2. **read_note** - Primary knowledge retrieval mechanism
|
|
28
|
+
3. **search_notes** - Essential for finding information
|
|
29
|
+
4. **edit_note** - Core content modification capability
|
|
30
|
+
5. **list_memory_projects** - Project discovery and status
|
|
31
|
+
6. **switch_project** - Context switching for multi-project workflows
|
|
32
|
+
|
|
33
|
+
### **Tier 2: Important Workflows (Usually Test)**
|
|
34
|
+
7. **recent_activity** - Understanding what's changed
|
|
35
|
+
8. **build_context** - Conversation continuity via memory:// URLs
|
|
36
|
+
9. **create_memory_project** - Essential for project setup
|
|
37
|
+
10. **move_note** - Knowledge organization
|
|
38
|
+
11. **sync_status** - Understanding system state
|
|
39
|
+
|
|
40
|
+
### **Tier 3: Enhanced Functionality (Sometimes Test)**
|
|
41
|
+
12. **view_note** - Claude Desktop artifact display
|
|
42
|
+
13. **read_content** - Raw content access
|
|
43
|
+
14. **delete_note** - Content removal
|
|
44
|
+
15. **list_directory** - File system exploration
|
|
45
|
+
16. **set_default_project** - Configuration
|
|
46
|
+
17. **delete_project** - Administrative cleanup
|
|
47
|
+
|
|
48
|
+
### **Tier 4: Specialized (Rarely Test)**
|
|
49
|
+
18. **canvas** - Obsidian visualization (specialized use case)
|
|
50
|
+
19. **MCP Prompts** - Enhanced UX tools (ai_assistant_guide, continue_conversation)
|
|
51
|
+
|
|
52
|
+
### Pre-Test Setup
|
|
53
|
+
|
|
54
|
+
1. **Environment Verification**
|
|
55
|
+
- Verify basic-memory is installed and accessible via MCP
|
|
56
|
+
- Check version and confirm it's the expected release
|
|
57
|
+
- Test MCP connection and tool availability
|
|
58
|
+
|
|
59
|
+
2. **Recent Changes Analysis** (if phase includes 'recent' or 'all')
|
|
60
|
+
- Run `git log --oneline -20` to examine recent commits
|
|
61
|
+
- Identify new features, bug fixes, and enhancements
|
|
62
|
+
- Generate targeted test scenarios for recent changes
|
|
63
|
+
- Prioritize regression testing for recently fixed issues
|
|
64
|
+
|
|
65
|
+
3. **Test Project Creation**
|
|
66
|
+
|
|
67
|
+
Run the bash `date` command to get the current date/time.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Create project: "basic-memory-testing-[timestamp]"
|
|
71
|
+
Location: ~/basic-memory-testing-[timestamp]
|
|
72
|
+
Purpose: Record all test observations and results
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Make sure to switch to the newly created project with the `switch_project()` tool.
|
|
76
|
+
|
|
77
|
+
4. **Baseline Documentation**
|
|
78
|
+
Create initial test session note with:
|
|
79
|
+
- Test environment details
|
|
80
|
+
- Version being tested
|
|
81
|
+
- Recent changes identified (if applicable)
|
|
82
|
+
- Test objectives and scope
|
|
83
|
+
- Start timestamp
|
|
84
|
+
|
|
85
|
+
### Phase 0: Recent Changes Validation (if 'recent' or 'all' phase)
|
|
86
|
+
|
|
87
|
+
Based on recent commit analysis, create targeted test scenarios:
|
|
88
|
+
|
|
89
|
+
**Recent Changes Test Protocol:**
|
|
90
|
+
1. **Feature Addition Tests** - For each new feature identified:
|
|
91
|
+
- Test basic functionality
|
|
92
|
+
- Test integration with existing tools
|
|
93
|
+
- Verify documentation accuracy
|
|
94
|
+
- Test edge cases and error handling
|
|
95
|
+
|
|
96
|
+
2. **Bug Fix Regression Tests** - For each recent fix:
|
|
97
|
+
- Recreate the original problem scenario
|
|
98
|
+
- Verify the fix works as expected
|
|
99
|
+
- Test related functionality isn't broken
|
|
100
|
+
- Document the verification in test notes
|
|
101
|
+
|
|
102
|
+
3. **Performance/Enhancement Validation** - For optimizations:
|
|
103
|
+
- Establish baseline timing
|
|
104
|
+
- Compare with expected improvements
|
|
105
|
+
- Test under various load conditions
|
|
106
|
+
- Document performance observations
|
|
107
|
+
|
|
108
|
+
**Example Recent Changes (Update based on actual git log):**
|
|
109
|
+
- Watch Service Restart (#156): Test project creation → file modification → automatic restart
|
|
110
|
+
- Cross-Project Moves (#161): Test move_note with cross-project detection
|
|
111
|
+
- Docker Environment Support (#174): Test BASIC_MEMORY_HOME behavior
|
|
112
|
+
- MCP Server Logging (#164): Verify log level configurations
|
|
113
|
+
|
|
114
|
+
### Phase 1: Core Functionality Validation (Tier 1 Tools)
|
|
115
|
+
|
|
116
|
+
Test essential MCP tools that form the foundation of Basic Memory:
|
|
117
|
+
|
|
118
|
+
**1. write_note Tests (Critical):**
|
|
119
|
+
- ✅ Basic note creation with frontmatter
|
|
120
|
+
- ✅ Special characters and Unicode in titles
|
|
121
|
+
- ✅ Various content types (lists, headings, code blocks)
|
|
122
|
+
- ✅ Empty notes and minimal content edge cases
|
|
123
|
+
- ⚠️ Error handling for invalid parameters
|
|
124
|
+
|
|
125
|
+
**2. read_note Tests (Critical):**
|
|
126
|
+
- ✅ Read by title, permalink, memory:// URLs
|
|
127
|
+
- ✅ Non-existent notes (error handling)
|
|
128
|
+
- ✅ Notes with complex markdown formatting
|
|
129
|
+
- ⚠️ Performance with large notes (>10MB)
|
|
130
|
+
|
|
131
|
+
**3. search_notes Tests (Critical):**
|
|
132
|
+
- ✅ Simple text queries across content
|
|
133
|
+
- ✅ Tag-based searches with multiple tags
|
|
134
|
+
- ✅ Boolean operators (AND, OR, NOT)
|
|
135
|
+
- ✅ Empty/no results scenarios
|
|
136
|
+
- ⚠️ Performance with 100+ notes
|
|
137
|
+
|
|
138
|
+
**4. edit_note Tests (Critical):**
|
|
139
|
+
- ✅ Append operations preserving frontmatter
|
|
140
|
+
- ✅ Prepend operations
|
|
141
|
+
- ✅ Find/replace with validation
|
|
142
|
+
- ✅ Section replacement under headers
|
|
143
|
+
- ⚠️ Error scenarios (invalid operations)
|
|
144
|
+
|
|
145
|
+
**5. list_memory_projects Tests (Critical):**
|
|
146
|
+
- ✅ Display all projects with status indicators
|
|
147
|
+
- ✅ Current and default project identification
|
|
148
|
+
- ✅ Empty project list handling
|
|
149
|
+
- ✅ Project metadata accuracy
|
|
150
|
+
|
|
151
|
+
**6. switch_project Tests (Critical):**
|
|
152
|
+
- ✅ Switch between existing projects
|
|
153
|
+
- ✅ Context preservation during switch
|
|
154
|
+
- ⚠️ Invalid project name handling
|
|
155
|
+
- ✅ Confirmation of successful switch
|
|
156
|
+
|
|
157
|
+
### Phase 2: Important Workflows (Tier 2 Tools)
|
|
158
|
+
|
|
159
|
+
**7. recent_activity Tests (Important):**
|
|
160
|
+
- ✅ Various timeframes ("today", "1 week", "1d")
|
|
161
|
+
- ✅ Type filtering capabilities
|
|
162
|
+
- ✅ Empty project scenarios
|
|
163
|
+
- ⚠️ Performance with many recent changes
|
|
164
|
+
|
|
165
|
+
**8. build_context Tests (Important):**
|
|
166
|
+
- ✅ Different depth levels (1, 2, 3+)
|
|
167
|
+
- ✅ Various timeframes for context
|
|
168
|
+
- ✅ memory:// URL navigation
|
|
169
|
+
- ⚠️ Performance with complex relation graphs
|
|
170
|
+
|
|
171
|
+
**9. create_memory_project Tests (Important):**
|
|
172
|
+
- ✅ Create projects dynamically
|
|
173
|
+
- ✅ Set default during creation
|
|
174
|
+
- ✅ Path validation and creation
|
|
175
|
+
- ⚠️ Invalid paths and names
|
|
176
|
+
- ✅ Integration with existing projects
|
|
177
|
+
|
|
178
|
+
**10. move_note Tests (Important):**
|
|
179
|
+
- ✅ Move within same project
|
|
180
|
+
- ✅ Cross-project moves with detection (#161)
|
|
181
|
+
- ✅ Automatic folder creation
|
|
182
|
+
- ✅ Database consistency validation
|
|
183
|
+
- ⚠️ Special characters in paths
|
|
184
|
+
|
|
185
|
+
**11. sync_status Tests (Important):**
|
|
186
|
+
- ✅ Background operation monitoring
|
|
187
|
+
- ✅ File synchronization status
|
|
188
|
+
- ✅ Project sync state reporting
|
|
189
|
+
- ⚠️ Error state handling
|
|
190
|
+
|
|
191
|
+
### Phase 3: Enhanced Functionality (Tier 3 Tools)
|
|
192
|
+
|
|
193
|
+
**12. view_note Tests (Enhanced):**
|
|
194
|
+
- ✅ Claude Desktop artifact display
|
|
195
|
+
- ✅ Title extraction from frontmatter
|
|
196
|
+
- ✅ Unicode and emoji content rendering
|
|
197
|
+
- ⚠️ Error handling for non-existent notes
|
|
198
|
+
|
|
199
|
+
**13. read_content Tests (Enhanced):**
|
|
200
|
+
- ✅ Raw file content access
|
|
201
|
+
- ✅ Binary file handling
|
|
202
|
+
- ✅ Image file reading
|
|
203
|
+
- ⚠️ Large file performance
|
|
204
|
+
|
|
205
|
+
**14. delete_note Tests (Enhanced):**
|
|
206
|
+
- ✅ Single note deletion
|
|
207
|
+
- ✅ Database consistency after deletion
|
|
208
|
+
- ⚠️ Non-existent note handling
|
|
209
|
+
- ✅ Confirmation of successful deletion
|
|
210
|
+
|
|
211
|
+
**15. list_directory Tests (Enhanced):**
|
|
212
|
+
- ✅ Directory content listing
|
|
213
|
+
- ✅ Depth control and filtering
|
|
214
|
+
- ✅ File name globbing
|
|
215
|
+
- ⚠️ Empty directory handling
|
|
216
|
+
|
|
217
|
+
**16. set_default_project Tests (Enhanced):**
|
|
218
|
+
- ✅ Change default project
|
|
219
|
+
- ✅ Configuration persistence
|
|
220
|
+
- ⚠️ Invalid project handling
|
|
221
|
+
|
|
222
|
+
**17. delete_project Tests (Enhanced):**
|
|
223
|
+
- ✅ Project removal from config
|
|
224
|
+
- ✅ Database cleanup
|
|
225
|
+
- ⚠️ Default project protection
|
|
226
|
+
- ⚠️ Non-existent project handling
|
|
227
|
+
|
|
228
|
+
### Phase 4: Edge Case Exploration
|
|
229
|
+
|
|
230
|
+
**Boundary Testing:**
|
|
231
|
+
- Very long titles and content (stress limits)
|
|
232
|
+
- Empty projects and notes
|
|
233
|
+
- Unicode, emojis, special symbols
|
|
234
|
+
- Deeply nested folder structures
|
|
235
|
+
- Circular relations and self-references
|
|
236
|
+
- Maximum relation depths
|
|
237
|
+
|
|
238
|
+
**Error Scenarios:**
|
|
239
|
+
- Invalid memory:// URLs
|
|
240
|
+
- Missing files referenced in database
|
|
241
|
+
- Invalid project names and paths
|
|
242
|
+
- Malformed note structures
|
|
243
|
+
- Concurrent operation conflicts
|
|
244
|
+
|
|
245
|
+
**Performance Testing:**
|
|
246
|
+
- Create 100+ notes rapidly
|
|
247
|
+
- Complex search queries
|
|
248
|
+
- Deep relation chains (5+ levels)
|
|
249
|
+
- Rapid successive operations
|
|
250
|
+
- Memory usage monitoring
|
|
251
|
+
|
|
252
|
+
### Phase 5: Real-World Workflow Scenarios
|
|
253
|
+
|
|
254
|
+
**Meeting Notes Pipeline:**
|
|
255
|
+
1. Create meeting notes with action items
|
|
256
|
+
2. Extract action items using edit_note
|
|
257
|
+
3. Build relations to project documents
|
|
258
|
+
4. Update progress incrementally
|
|
259
|
+
5. Search and track completion
|
|
260
|
+
|
|
261
|
+
**Research Knowledge Building:**
|
|
262
|
+
1. Create research topic hierarchy
|
|
263
|
+
2. Build complex relation networks
|
|
264
|
+
3. Add incremental findings over time
|
|
265
|
+
4. Search for connections and patterns
|
|
266
|
+
5. Reorganize as knowledge evolves
|
|
267
|
+
|
|
268
|
+
**Multi-Project Workflow:**
|
|
269
|
+
1. Technical documentation project
|
|
270
|
+
2. Personal recipe collection project
|
|
271
|
+
3. Learning/course notes project
|
|
272
|
+
4. Switch contexts during conversation
|
|
273
|
+
5. Cross-reference related concepts
|
|
274
|
+
|
|
275
|
+
**Content Evolution:**
|
|
276
|
+
1. Start with basic notes
|
|
277
|
+
2. Enhance with relations and observations
|
|
278
|
+
3. Reorganize file structure using moves
|
|
279
|
+
4. Update content with edit operations
|
|
280
|
+
5. Validate knowledge graph integrity
|
|
281
|
+
|
|
282
|
+
### Phase 6: Specialized Tools Testing (Tier 4)
|
|
283
|
+
|
|
284
|
+
**18. canvas Tests (Specialized):**
|
|
285
|
+
- ✅ JSON Canvas generation
|
|
286
|
+
- ✅ Node and edge creation
|
|
287
|
+
- ✅ Obsidian compatibility
|
|
288
|
+
- ⚠️ Complex graph handling
|
|
289
|
+
|
|
290
|
+
**19. MCP Prompts Tests (Specialized):**
|
|
291
|
+
- ✅ ai_assistant_guide output
|
|
292
|
+
- ✅ continue_conversation functionality
|
|
293
|
+
- ✅ Formatted search results
|
|
294
|
+
- ✅ Enhanced activity reports
|
|
295
|
+
|
|
296
|
+
### Phase 7: Integration & File Watching Tests
|
|
297
|
+
|
|
298
|
+
**File System Integration:**
|
|
299
|
+
- ✅ Watch service behavior with file changes
|
|
300
|
+
- ✅ Project creation → watch restart (#156)
|
|
301
|
+
- ✅ Multi-project synchronization
|
|
302
|
+
- ⚠️ MCP→API→DB→File stack validation
|
|
303
|
+
|
|
304
|
+
**Real Integration Testing:**
|
|
305
|
+
- ✅ End-to-end file watching vs manual operations
|
|
306
|
+
- ✅ Cross-session persistence
|
|
307
|
+
- ✅ Database consistency across operations
|
|
308
|
+
- ⚠️ Performance under real file system changes
|
|
309
|
+
|
|
310
|
+
### Phase 8: Creative Stress Testing
|
|
311
|
+
|
|
312
|
+
**Creative Exploration:**
|
|
313
|
+
- Rapid project creation/switching patterns
|
|
314
|
+
- Unusual but valid markdown structures
|
|
315
|
+
- Creative observation categories
|
|
316
|
+
- Novel relation types and patterns
|
|
317
|
+
- Unexpected tool combinations
|
|
318
|
+
|
|
319
|
+
**Stress Scenarios:**
|
|
320
|
+
- Bulk operations (many notes quickly)
|
|
321
|
+
- Complex nested moves and edits
|
|
322
|
+
- Deep context building
|
|
323
|
+
- Complex boolean search expressions
|
|
324
|
+
- Resource constraint testing
|
|
325
|
+
|
|
326
|
+
## Test Execution Guidelines
|
|
327
|
+
|
|
328
|
+
### Quick Testing (core/features phases)
|
|
329
|
+
- Focus on Tier 1 tools (core) or Tier 1+2 (features)
|
|
330
|
+
- Test essential functionality and common edge cases
|
|
331
|
+
- Record critical issues immediately
|
|
332
|
+
- Complete in 15-20 minutes
|
|
333
|
+
|
|
334
|
+
### Comprehensive Testing (all phase)
|
|
335
|
+
- Cover all tiers systematically
|
|
336
|
+
- Include specialized tools and stress testing
|
|
337
|
+
- Document performance baselines
|
|
338
|
+
- Complete in 45-60 minutes
|
|
339
|
+
|
|
340
|
+
### Recent Changes Focus (recent phase)
|
|
341
|
+
- Analyze git log for recent commits
|
|
342
|
+
- Generate targeted test scenarios
|
|
343
|
+
- Focus on regression testing for fixes
|
|
344
|
+
- Validate new features thoroughly
|
|
345
|
+
|
|
346
|
+
## Test Observation Format
|
|
347
|
+
|
|
348
|
+
Record ALL observations immediately as Basic Memory notes:
|
|
349
|
+
|
|
350
|
+
```markdown
|
|
351
|
+
---
|
|
352
|
+
title: Test Session [Phase] YYYY-MM-DD HH:MM
|
|
353
|
+
tags: [testing, v0.13.0, live-testing, [phase]]
|
|
354
|
+
permalink: test-session-[phase]-[timestamp]
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
# Test Session [Phase] - [Date/Time]
|
|
358
|
+
|
|
359
|
+
## Environment
|
|
360
|
+
- Basic Memory version: [version]
|
|
361
|
+
- MCP connection: [status]
|
|
362
|
+
- Test project: [name]
|
|
363
|
+
- Phase focus: [description]
|
|
364
|
+
|
|
365
|
+
## Test Results
|
|
366
|
+
|
|
367
|
+
### ✅ Successful Operations
|
|
368
|
+
- [timestamp] ✅ write_note: Created note with emoji title 📝 #tier1 #functionality
|
|
369
|
+
- [timestamp] ✅ search_notes: Boolean query returned 23 results in 0.4s #tier1 #performance
|
|
370
|
+
- [timestamp] ✅ edit_note: Append operation preserved frontmatter #tier1 #reliability
|
|
371
|
+
|
|
372
|
+
### ⚠️ Issues Discovered
|
|
373
|
+
- [timestamp] ⚠️ move_note: Slow with deep folder paths (2.1s) #tier2 #performance
|
|
374
|
+
- [timestamp] 🚨 search_notes: Unicode query returned unexpected results #tier1 #bug #critical
|
|
375
|
+
- [timestamp] ⚠️ build_context: Context lost for memory:// URLs #tier2 #issue
|
|
376
|
+
|
|
377
|
+
### 🚀 Enhancements Identified
|
|
378
|
+
- edit_note could benefit from preview mode #ux-improvement
|
|
379
|
+
- search_notes needs fuzzy matching for typos #feature-idea
|
|
380
|
+
- move_note could auto-suggest folder creation #usability
|
|
381
|
+
|
|
382
|
+
### 📊 Performance Metrics
|
|
383
|
+
- Average write_note time: 0.3s
|
|
384
|
+
- Search with 100+ notes: 0.6s
|
|
385
|
+
- Project switch overhead: 0.1s
|
|
386
|
+
- Memory usage: [observed levels]
|
|
387
|
+
|
|
388
|
+
## Relations
|
|
389
|
+
- tests [[Basic Memory v0.13.0]]
|
|
390
|
+
- part_of [[Live Testing Suite]]
|
|
391
|
+
- found_issues [[Bug Report: Unicode Search]]
|
|
392
|
+
- discovered [[Performance Optimization Opportunities]]
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
## Quality Assessment Areas
|
|
396
|
+
|
|
397
|
+
**User Experience & Usability:**
|
|
398
|
+
- Tool instruction clarity and examples
|
|
399
|
+
- Error message actionability
|
|
400
|
+
- Response time acceptability
|
|
401
|
+
- Tool consistency and discoverability
|
|
402
|
+
- Learning curve and intuitiveness
|
|
403
|
+
|
|
404
|
+
**System Behavior:**
|
|
405
|
+
- Context preservation across operations
|
|
406
|
+
- memory:// URL navigation reliability
|
|
407
|
+
- Multi-step workflow cohesion
|
|
408
|
+
- Edge case graceful handling
|
|
409
|
+
- Recovery from user errors
|
|
410
|
+
|
|
411
|
+
**Documentation Alignment:**
|
|
412
|
+
- Tool output clarity and helpfulness
|
|
413
|
+
- Behavior vs. documentation accuracy
|
|
414
|
+
- Example validity and usefulness
|
|
415
|
+
- Real-world vs. documented workflows
|
|
416
|
+
|
|
417
|
+
**Mental Model Validation:**
|
|
418
|
+
- Natural user expectation alignment
|
|
419
|
+
- Surprising behavior identification
|
|
420
|
+
- Mistake recovery ease
|
|
421
|
+
- Knowledge graph concept naturalness
|
|
422
|
+
|
|
423
|
+
**Performance & Reliability:**
|
|
424
|
+
- Operation completion times
|
|
425
|
+
- Consistency across sessions
|
|
426
|
+
- Scaling behavior with growth
|
|
427
|
+
- Unexpected slowness identification
|
|
428
|
+
|
|
429
|
+
## Error Documentation Protocol
|
|
430
|
+
|
|
431
|
+
For each error discovered:
|
|
432
|
+
|
|
433
|
+
1. **Immediate Recording**
|
|
434
|
+
- Create dedicated error note
|
|
435
|
+
- Include exact reproduction steps
|
|
436
|
+
- Capture error messages verbatim
|
|
437
|
+
- Note system state when error occurred
|
|
438
|
+
|
|
439
|
+
2. **Error Note Format**
|
|
440
|
+
```markdown
|
|
441
|
+
---
|
|
442
|
+
title: Bug Report - [Short Description]
|
|
443
|
+
tags: [bug, testing, v0.13.0, [severity]]
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
# Bug Report: [Description]
|
|
447
|
+
|
|
448
|
+
## Reproduction Steps
|
|
449
|
+
1. [Exact steps to reproduce]
|
|
450
|
+
2. [Include all parameters used]
|
|
451
|
+
3. [Note any special conditions]
|
|
452
|
+
|
|
453
|
+
## Expected Behavior
|
|
454
|
+
[What should have happened]
|
|
455
|
+
|
|
456
|
+
## Actual Behavior
|
|
457
|
+
[What actually happened]
|
|
458
|
+
|
|
459
|
+
## Error Messages
|
|
460
|
+
```
|
|
461
|
+
[Exact error text]
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
## Environment
|
|
465
|
+
- Version: [version]
|
|
466
|
+
- Project: [name]
|
|
467
|
+
- Timestamp: [when]
|
|
468
|
+
|
|
469
|
+
## Severity
|
|
470
|
+
- [ ] Critical (blocks major functionality)
|
|
471
|
+
- [ ] High (impacts user experience)
|
|
472
|
+
- [ ] Medium (workaround available)
|
|
473
|
+
- [ ] Low (minor inconvenience)
|
|
474
|
+
|
|
475
|
+
## Relations
|
|
476
|
+
- discovered_during [[Test Session [Phase]]]
|
|
477
|
+
- affects [[Feature Name]]
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## Success Metrics Tracking
|
|
481
|
+
|
|
482
|
+
**Quantitative Measures:**
|
|
483
|
+
- Test scenario completion rate
|
|
484
|
+
- Bug discovery count with severity
|
|
485
|
+
- Performance benchmark establishment
|
|
486
|
+
- Tool coverage completeness
|
|
487
|
+
|
|
488
|
+
**Qualitative Measures:**
|
|
489
|
+
- Conversation flow naturalness
|
|
490
|
+
- Knowledge graph quality
|
|
491
|
+
- User experience insights
|
|
492
|
+
- System reliability assessment
|
|
493
|
+
|
|
494
|
+
## Test Execution Flow
|
|
495
|
+
|
|
496
|
+
1. **Setup Phase** (5 minutes)
|
|
497
|
+
- Verify environment and create test project
|
|
498
|
+
- Record baseline system state
|
|
499
|
+
- Establish performance benchmarks
|
|
500
|
+
|
|
501
|
+
2. **Core Testing** (15-20 minutes per phase)
|
|
502
|
+
- Execute test scenarios systematically
|
|
503
|
+
- Record observations immediately
|
|
504
|
+
- Note timestamps for performance tracking
|
|
505
|
+
- Explore variations when interesting behaviors occur
|
|
506
|
+
|
|
507
|
+
3. **Documentation** (5 minutes per phase)
|
|
508
|
+
- Create phase summary note
|
|
509
|
+
- Link related test observations
|
|
510
|
+
- Update running issues list
|
|
511
|
+
- Record enhancement ideas
|
|
512
|
+
|
|
513
|
+
4. **Analysis Phase** (10 minutes)
|
|
514
|
+
- Review all observations across phases
|
|
515
|
+
- Identify patterns and trends
|
|
516
|
+
- Create comprehensive summary report
|
|
517
|
+
- Generate development recommendations
|
|
518
|
+
|
|
519
|
+
## Testing Success Criteria
|
|
520
|
+
|
|
521
|
+
### Core Testing (Tier 1) - Must Pass
|
|
522
|
+
- All 6 critical tools function correctly
|
|
523
|
+
- No critical bugs in essential workflows
|
|
524
|
+
- Acceptable performance for basic operations
|
|
525
|
+
- Error handling works as expected
|
|
526
|
+
|
|
527
|
+
### Feature Testing (Tier 1+2) - Should Pass
|
|
528
|
+
- All 11 core + important tools function
|
|
529
|
+
- Workflow scenarios complete successfully
|
|
530
|
+
- Performance meets baseline expectations
|
|
531
|
+
- Integration points work correctly
|
|
532
|
+
|
|
533
|
+
### Comprehensive Testing (All Tiers) - Complete Coverage
|
|
534
|
+
- All tools tested across all scenarios
|
|
535
|
+
- Edge cases and stress testing completed
|
|
536
|
+
- Performance baselines established
|
|
537
|
+
- Full documentation of issues and enhancements
|
|
538
|
+
|
|
539
|
+
## Expected Outcomes
|
|
540
|
+
|
|
541
|
+
**System Validation:**
|
|
542
|
+
- Feature verification prioritized by tier importance
|
|
543
|
+
- Recent changes validated for regression
|
|
544
|
+
- Performance baseline establishment
|
|
545
|
+
- Bug identification with severity assessment
|
|
546
|
+
|
|
547
|
+
**Knowledge Base Creation:**
|
|
548
|
+
- Prioritized testing documentation
|
|
549
|
+
- Real usage examples for user guides
|
|
550
|
+
- Recent changes validation records
|
|
551
|
+
- Performance insights for optimization
|
|
552
|
+
|
|
553
|
+
**Development Insights:**
|
|
554
|
+
- Tier-based bug priority list
|
|
555
|
+
- Recent changes impact assessment
|
|
556
|
+
- Enhancement ideas from real usage
|
|
557
|
+
- User experience improvement areas
|
|
558
|
+
|
|
559
|
+
## Post-Test Deliverables
|
|
560
|
+
|
|
561
|
+
1. **Test Summary Note**
|
|
562
|
+
- Overall results and findings
|
|
563
|
+
- Critical issues requiring immediate attention
|
|
564
|
+
- Enhancement opportunities discovered
|
|
565
|
+
- System readiness assessment
|
|
566
|
+
|
|
567
|
+
2. **Bug Report Collection**
|
|
568
|
+
- All discovered issues with reproduction steps
|
|
569
|
+
- Severity and impact assessments
|
|
570
|
+
- Suggested fixes where applicable
|
|
571
|
+
|
|
572
|
+
3. **Performance Baseline**
|
|
573
|
+
- Timing data for all operations
|
|
574
|
+
- Scaling behavior observations
|
|
575
|
+
- Resource usage patterns
|
|
576
|
+
|
|
577
|
+
4. **UX Improvement Recommendations**
|
|
578
|
+
- Usability enhancement suggestions
|
|
579
|
+
- Documentation improvement areas
|
|
580
|
+
- Tool design optimization ideas
|
|
581
|
+
|
|
582
|
+
5. **Updated TESTING.md**
|
|
583
|
+
- Incorporate new test scenarios discovered
|
|
584
|
+
- Update based on real execution experience
|
|
585
|
+
- Add performance benchmarks and targets
|
|
586
|
+
|
|
587
|
+
## Context
|
|
588
|
+
- Uses real installed basic-memory version
|
|
589
|
+
- Tests complete MCP→API→DB→File stack
|
|
590
|
+
- Creates living documentation in Basic Memory itself
|
|
591
|
+
- Follows integration over isolation philosophy
|
|
592
|
+
- Prioritizes testing by tool importance and usage frequency
|
|
593
|
+
- Adapts to recent development changes dynamically
|
|
594
|
+
- Focuses on real usage patterns over checklist validation
|
|
595
|
+
- Generates actionable insights prioritized by impact
|
|
@@ -111,4 +111,4 @@ jobs:
|
|
|
111
111
|
uses: anthropics/claude-code-action@beta
|
|
112
112
|
with:
|
|
113
113
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
114
|
-
allowed_tools: Bash(uv run pytest),Bash(uv run ruff check . --fix),Bash(uv run ruff format .),Bash(uv run pyright),Bash(just test),Bash(just lint),Bash(just format),Bash(just type-check),Bash(just check),Read,Write,Edit,MultiEdit,Glob,Grep,LS
|
|
114
|
+
allowed_tools: Bash(uv run pytest),Bash(uv run ruff check . --fix),Bash(uv run ruff format .),Bash(uv run pyright),Bash(just test),Bash(just lint),Bash(just format),Bash(just type-check),Bash(just check),Read,Write,Edit,MultiEdit,Glob,Grep,LS, mcp__web_search
|
|
@@ -57,6 +57,8 @@ jobs:
|
|
|
57
57
|
name: Update Homebrew Formula
|
|
58
58
|
needs: release
|
|
59
59
|
runs-on: ubuntu-latest
|
|
60
|
+
# Only run for stable releases (not dev, beta, or rc versions)
|
|
61
|
+
if: ${{ !contains(github.ref_name, 'dev') && !contains(github.ref_name, 'b') && !contains(github.ref_name, 'rc') }}
|
|
60
62
|
permissions:
|
|
61
63
|
contents: write
|
|
62
64
|
actions: read
|
|
@@ -80,3 +82,4 @@ jobs:
|
|
|
80
82
|
env:
|
|
81
83
|
# Personal Access Token with repo scope for homebrew-basic-memory repo
|
|
82
84
|
COMMITTER_TOKEN: ${{ secrets.HOMEBREW_TOKEN }}
|
|
85
|
+
|