basic-memory 0.13.7.dev1__tar.gz → 0.13.8.dev1__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/.dockerignore +60 -0
- basic_memory-0.13.8.dev1/.github/workflows/docker.yml +61 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CHANGELOG.md +59 -0
- basic_memory-0.13.8.dev1/Dockerfile +32 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/PKG-INFO +26 -1
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/README.md +25 -0
- basic_memory-0.13.8.dev1/docker-compose.yml +83 -0
- basic_memory-0.13.8.dev1/docs/Docker.md +334 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/db.py +8 -1
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/mcp.py +2 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/project.py +3 -7
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/db.py +5 -4
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/project_session.py +16 -1
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/sync_status.py +0 -4
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/server.py +0 -1
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/entity_repository.py +42 -39
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/entity_service.py +2 -2
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/initialization.py +11 -5
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/project_service.py +18 -0
- basic_memory-0.13.8.dev1/test-int/cli/test_reset_integration.py +158 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/conftest.py +1 -0
- basic_memory-0.13.8.dev1/test-int/mcp/test_project_state_sync_integration.py +173 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_write_note.py +16 -22
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_entity_repository_upsert.py +29 -29
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/test_db_migration_deduplication.py +19 -19
- basic_memory-0.13.7.dev1/.env.oauth.example +0 -55
- basic_memory-0.13.7.dev1/AUTH.md +0 -42
- basic_memory-0.13.7.dev1/Dockerfile +0 -16
- basic_memory-0.13.7.dev1/basic-memory.md +0 -1419
- basic_memory-0.13.7.dev1/docs/CLI Reference.md +0 -414
- basic_memory-0.13.7.dev1/docs/Canvas.md +0 -107
- basic_memory-0.13.7.dev1/docs/Claude.ai Integration.md +0 -335
- basic_memory-0.13.7.dev1/docs/Getting Started with Basic Memory.md +0 -355
- basic_memory-0.13.7.dev1/docs/Knowledge Format.md +0 -207
- basic_memory-0.13.7.dev1/docs/OAuth Authentication Guide.md +0 -259
- basic_memory-0.13.7.dev1/docs/Obsidian Integration.md +0 -146
- basic_memory-0.13.7.dev1/docs/Supabase OAuth Setup.md +0 -311
- basic_memory-0.13.7.dev1/docs/Technical Information.md +0 -243
- basic_memory-0.13.7.dev1/docs/User Guide.md +0 -657
- basic_memory-0.13.7.dev1/docs/Welcome to Basic memory.md +0 -68
- basic_memory-0.13.7.dev1/docs/attachments/Canvas.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/Prompt.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/disk-ai-logo-400x400.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/disk-ai-logo.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/prompt 1.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/prompt2.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/prompt3.png +0 -0
- basic_memory-0.13.7.dev1/docs/attachments/prompt4.png +0 -0
- basic_memory-0.13.7.dev1/docs/publish.js +0 -5
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Brewing Equipment.md +0 -83
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Bean Origins.md +0 -78
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Brewing Methods.md +0 -70
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Flavor Map.md +0 -89
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Coffee Knowledge Base.md +0 -73
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Flavor Extraction.md +0 -79
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -161
- basic_memory-0.13.7.dev1/examples/Coffee Notes/Tasting Notes.md +0 -84
- basic_memory-0.13.7.dev1/examples/testing/Test Note Creation - Basic Functionality.md +0 -69
- basic_memory-0.13.7.dev1/scripts/install.sh +0 -36
- basic_memory-0.13.7.dev1/static/ai_assistant_guide.md +0 -480
- basic_memory-0.13.7.dev1/static/json_canvas_spec_1_0.md +0 -115
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/check-health.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/commands.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/lint-fix.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/test-coverage.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/dependabot.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/release.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.github/workflows/test.yml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.gitignore +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.mcp.json +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/.python-version +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CITATION.cff +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CLA.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CLAUDE.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/CONTRIBUTING.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/LICENSE +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/SECURITY.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/justfile +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/llms-install.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/memory.json +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/pyproject.toml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/smithery.yaml +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/config.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/sync_status.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/migration_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/services/sync_status_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/Screenshot.png +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/conftest.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/conftest.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_project_commands.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_project_info.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_status.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/cli/test_version.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/conftest.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_server.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_sync_status.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/services/test_sync_status_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.13.7.dev1 → basic_memory-0.13.8.dev1}/uv.lock +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Git files
|
|
2
|
+
.git/
|
|
3
|
+
.gitignore
|
|
4
|
+
.gitattributes
|
|
5
|
+
|
|
6
|
+
# Development files
|
|
7
|
+
.vscode/
|
|
8
|
+
.idea/
|
|
9
|
+
*.swp
|
|
10
|
+
*.swo
|
|
11
|
+
*~
|
|
12
|
+
|
|
13
|
+
# Testing files
|
|
14
|
+
tests/
|
|
15
|
+
test-int/
|
|
16
|
+
.pytest_cache/
|
|
17
|
+
.coverage
|
|
18
|
+
htmlcov/
|
|
19
|
+
|
|
20
|
+
# Build artifacts
|
|
21
|
+
build/
|
|
22
|
+
dist/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
__pycache__/
|
|
25
|
+
*.pyc
|
|
26
|
+
*.pyo
|
|
27
|
+
*.pyd
|
|
28
|
+
.Python
|
|
29
|
+
|
|
30
|
+
# Virtual environments (uv creates these during build)
|
|
31
|
+
.venv/
|
|
32
|
+
venv/
|
|
33
|
+
.env
|
|
34
|
+
|
|
35
|
+
# CI/CD files
|
|
36
|
+
.github/
|
|
37
|
+
|
|
38
|
+
# Documentation (keep README.md and pyproject.toml)
|
|
39
|
+
docs/
|
|
40
|
+
CHANGELOG.md
|
|
41
|
+
CLAUDE.md
|
|
42
|
+
CONTRIBUTING.md
|
|
43
|
+
|
|
44
|
+
# Example files not needed for runtime
|
|
45
|
+
examples/
|
|
46
|
+
|
|
47
|
+
# Local development files
|
|
48
|
+
.basic-memory/
|
|
49
|
+
*.db
|
|
50
|
+
*.sqlite3
|
|
51
|
+
|
|
52
|
+
# OS files
|
|
53
|
+
.DS_Store
|
|
54
|
+
Thumbs.db
|
|
55
|
+
|
|
56
|
+
# Temporary files
|
|
57
|
+
tmp/
|
|
58
|
+
temp/
|
|
59
|
+
*.tmp
|
|
60
|
+
*.log
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: Docker Image CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*' # Trigger on version tags like v1.0.0, v0.13.0, etc.
|
|
7
|
+
workflow_dispatch: # Allow manual triggering for testing
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
REGISTRY: ghcr.io
|
|
11
|
+
IMAGE_NAME: basicmachines-co/basic-memory
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
docker:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
packages: write
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout repository
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
|
|
26
|
+
- name: Set up Docker Buildx
|
|
27
|
+
uses: docker/setup-buildx-action@v3
|
|
28
|
+
with:
|
|
29
|
+
platforms: linux/amd64,linux/arm64
|
|
30
|
+
|
|
31
|
+
- name: Log in to GitHub Container Registry
|
|
32
|
+
uses: docker/login-action@v3
|
|
33
|
+
with:
|
|
34
|
+
registry: ${{ env.REGISTRY }}
|
|
35
|
+
username: ${{ github.actor }}
|
|
36
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
37
|
+
|
|
38
|
+
- name: Extract metadata
|
|
39
|
+
id: meta
|
|
40
|
+
uses: docker/metadata-action@v5
|
|
41
|
+
with:
|
|
42
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
43
|
+
tags: |
|
|
44
|
+
type=ref,event=branch
|
|
45
|
+
type=ref,event=pr
|
|
46
|
+
type=semver,pattern={{version}}
|
|
47
|
+
type=semver,pattern={{major}}.{{minor}}
|
|
48
|
+
type=raw,value=latest,enable={{is_default_branch}}
|
|
49
|
+
|
|
50
|
+
- name: Build and push Docker image
|
|
51
|
+
uses: docker/build-push-action@v5
|
|
52
|
+
with:
|
|
53
|
+
context: .
|
|
54
|
+
file: ./Dockerfile
|
|
55
|
+
platforms: linux/amd64,linux/arm64
|
|
56
|
+
push: true
|
|
57
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
58
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
59
|
+
cache-from: type=gha
|
|
60
|
+
cache-to: type=gha,mode=max
|
|
61
|
+
|
|
@@ -1,5 +1,64 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.13.8 (2025-06-20)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- **Docker Container Support** - Complete Docker integration with volume mounting for Obsidian directories
|
|
8
|
+
([`3269a2f`](https://github.com/basicmachines-co/basic-memory/commit/3269a2f33a7595f6d9e5207924062e2542f46759))
|
|
9
|
+
- Docker Compose configuration for easy deployment
|
|
10
|
+
- Volume mounting for persistent data and Obsidian integration
|
|
11
|
+
- Comprehensive Docker documentation and setup guides
|
|
12
|
+
- Streamlined container-based workflow
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **#151**: Fix reset command project configuration persistence issue
|
|
17
|
+
([`af44941`](https://github.com/basicmachines-co/basic-memory/commit/af44941d5aa57b5ad7fcc6af4ed700f49bdb6d4d))
|
|
18
|
+
- Reset command now properly clears project configuration from `~/.basic-memory/config.json`
|
|
19
|
+
- Eliminates issue where projects would be recreated after database reset
|
|
20
|
+
- Ensures clean slate when resetting Basic Memory installation
|
|
21
|
+
|
|
22
|
+
- **#148**: Resolve project state inconsistency between MCP and CLI
|
|
23
|
+
([`35e4f73`](https://github.com/basicmachines-co/basic-memory/commit/35e4f73ae8a65501da4d48258ed702f957184c92))
|
|
24
|
+
- Fix "Project not found" errors when switching default projects
|
|
25
|
+
- MCP session now automatically refreshes when project configuration changes
|
|
26
|
+
- Eliminates need to restart MCP server after project operations
|
|
27
|
+
- Ensures consistent project state across CLI and MCP interfaces
|
|
28
|
+
|
|
29
|
+
- **FastMCP Compatibility** - Resolve deprecation warnings for FastMCP integration
|
|
30
|
+
([`7be001c`](https://github.com/basicmachines-co/basic-memory/commit/7be001ca6834b3344bb6160cbe537b36bcbaa579))
|
|
31
|
+
- Update FastMCP usage patterns to eliminate deprecation warnings
|
|
32
|
+
- Improve future compatibility with FastMCP library updates
|
|
33
|
+
- Clean up entity repository and service layer code
|
|
34
|
+
|
|
35
|
+
### Technical Improvements
|
|
36
|
+
|
|
37
|
+
- **Comprehensive Integration Testing** - New test suites for critical user workflows
|
|
38
|
+
- Full integration tests for database reset functionality
|
|
39
|
+
- End-to-end project state synchronization testing
|
|
40
|
+
- Real MCP client-server communication validation
|
|
41
|
+
- Direct config file validation without complex mocking
|
|
42
|
+
|
|
43
|
+
- **Code Quality** - Enhanced error handling and validation
|
|
44
|
+
- Improved project state management across system components
|
|
45
|
+
- Better session refresh patterns for configuration changes
|
|
46
|
+
- Streamlined Docker setup with reduced image size
|
|
47
|
+
|
|
48
|
+
### Documentation
|
|
49
|
+
|
|
50
|
+
- **Docker Integration Guide** - Complete documentation for container deployment
|
|
51
|
+
- Step-by-step Docker Compose setup instructions
|
|
52
|
+
- Volume mounting configuration for Obsidian workflows
|
|
53
|
+
- Container-based development environment setup
|
|
54
|
+
|
|
55
|
+
## v0.13.7 (2025-06-19)
|
|
56
|
+
|
|
57
|
+
### Bug Fixes
|
|
58
|
+
|
|
59
|
+
- **Homebrew Integration** - Automatic Homebrew formula updates
|
|
60
|
+
- **Documentation** - Add git sign-off reminder to development guide
|
|
61
|
+
|
|
3
62
|
## v0.13.6 (2025-06-18)
|
|
4
63
|
|
|
5
64
|
### Bug Fixes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
FROM python:3.12-slim-bookworm
|
|
2
|
+
|
|
3
|
+
# Copy uv from official image
|
|
4
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
5
|
+
|
|
6
|
+
# Set environment variables
|
|
7
|
+
ENV PYTHONUNBUFFERED=1 \
|
|
8
|
+
PYTHONDONTWRITEBYTECODE=1
|
|
9
|
+
|
|
10
|
+
# Copy the project into the image
|
|
11
|
+
ADD . /app
|
|
12
|
+
|
|
13
|
+
# Sync the project into a new environment, asserting the lockfile is up to date
|
|
14
|
+
WORKDIR /app
|
|
15
|
+
RUN uv sync --locked
|
|
16
|
+
|
|
17
|
+
# Create data directory
|
|
18
|
+
RUN mkdir -p /app/data
|
|
19
|
+
|
|
20
|
+
# Set default data directory and add venv to PATH
|
|
21
|
+
ENV BASIC_MEMORY_HOME=/app/data \
|
|
22
|
+
PATH="/app/.venv/bin:$PATH"
|
|
23
|
+
|
|
24
|
+
# Expose port
|
|
25
|
+
EXPOSE 8000
|
|
26
|
+
|
|
27
|
+
# Health check
|
|
28
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
29
|
+
CMD basic-memory --version || exit 1
|
|
30
|
+
|
|
31
|
+
# Use the basic-memory entrypoint to run the MCP server with default SSE transport
|
|
32
|
+
CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.8.dev1
|
|
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
|
|
@@ -449,6 +449,31 @@ Development versions are automatically published on every commit to main with ve
|
|
|
449
449
|
pip install basic-memory --pre --force-reinstall
|
|
450
450
|
```
|
|
451
451
|
|
|
452
|
+
### Docker
|
|
453
|
+
|
|
454
|
+
Run Basic Memory in a container with volume mounting for your Obsidian vault:
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
# Clone and start with Docker Compose
|
|
458
|
+
git clone https://github.com/basicmachines-co/basic-memory.git
|
|
459
|
+
cd basic-memory
|
|
460
|
+
|
|
461
|
+
# Edit docker-compose.yml to point to your Obsidian vault
|
|
462
|
+
# Then start the container
|
|
463
|
+
docker-compose up -d
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
Or use Docker directly:
|
|
467
|
+
```bash
|
|
468
|
+
docker run -d \
|
|
469
|
+
--name basic-memory-server \
|
|
470
|
+
-v /path/to/your/obsidian-vault:/data/knowledge:rw \
|
|
471
|
+
-v basic-memory-config:/root/.basic-memory:rw \
|
|
472
|
+
ghcr.io/basicmachines-co/basic-memory:latest
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
See [Docker Setup Guide](docs/Docker.md) for detailed configuration options, multiple project setup, and integration examples.
|
|
476
|
+
|
|
452
477
|
## License
|
|
453
478
|
|
|
454
479
|
AGPL-3.0
|
|
@@ -411,6 +411,31 @@ Development versions are automatically published on every commit to main with ve
|
|
|
411
411
|
pip install basic-memory --pre --force-reinstall
|
|
412
412
|
```
|
|
413
413
|
|
|
414
|
+
### Docker
|
|
415
|
+
|
|
416
|
+
Run Basic Memory in a container with volume mounting for your Obsidian vault:
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
# Clone and start with Docker Compose
|
|
420
|
+
git clone https://github.com/basicmachines-co/basic-memory.git
|
|
421
|
+
cd basic-memory
|
|
422
|
+
|
|
423
|
+
# Edit docker-compose.yml to point to your Obsidian vault
|
|
424
|
+
# Then start the container
|
|
425
|
+
docker-compose up -d
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
Or use Docker directly:
|
|
429
|
+
```bash
|
|
430
|
+
docker run -d \
|
|
431
|
+
--name basic-memory-server \
|
|
432
|
+
-v /path/to/your/obsidian-vault:/data/knowledge:rw \
|
|
433
|
+
-v basic-memory-config:/root/.basic-memory:rw \
|
|
434
|
+
ghcr.io/basicmachines-co/basic-memory:latest
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
See [Docker Setup Guide](docs/Docker.md) for detailed configuration options, multiple project setup, and integration examples.
|
|
438
|
+
|
|
414
439
|
## License
|
|
415
440
|
|
|
416
441
|
AGPL-3.0
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Docker Compose configuration for Basic Memory
|
|
2
|
+
# See docs/Docker.md for detailed setup instructions
|
|
3
|
+
|
|
4
|
+
version: '3.8'
|
|
5
|
+
|
|
6
|
+
services:
|
|
7
|
+
basic-memory:
|
|
8
|
+
# Use pre-built image (recommended for most users)
|
|
9
|
+
image: ghcr.io/basicmachines-co/basic-memory:latest
|
|
10
|
+
|
|
11
|
+
# Uncomment to build locally instead:
|
|
12
|
+
# build: .
|
|
13
|
+
|
|
14
|
+
container_name: basic-memory-server
|
|
15
|
+
|
|
16
|
+
# Volume mounts for knowledge directories and persistent data
|
|
17
|
+
volumes:
|
|
18
|
+
|
|
19
|
+
# Persistent storage for configuration and database
|
|
20
|
+
- basic-memory-config:/root/.basic-memory:rw
|
|
21
|
+
|
|
22
|
+
# Mount your knowledge directory (required)
|
|
23
|
+
# Change './knowledge' to your actual Obsidian vault or knowledge directory
|
|
24
|
+
- ./knowledge:/app/data:rw
|
|
25
|
+
|
|
26
|
+
# OPTIONAL: Mount additional knowledge directories for multiple projects
|
|
27
|
+
# - ./work-notes:/app/data/work:rw
|
|
28
|
+
# - ./personal-notes:/app/data/personal:rw
|
|
29
|
+
|
|
30
|
+
# You can edit the project config manually in the mounted config volume
|
|
31
|
+
# The default project will be configured to use /app/data
|
|
32
|
+
environment:
|
|
33
|
+
# Project configuration
|
|
34
|
+
- BASIC_MEMORY_DEFAULT_PROJECT=main
|
|
35
|
+
|
|
36
|
+
# Enable real-time file synchronization (recommended for Docker)
|
|
37
|
+
- BASIC_MEMORY_SYNC_CHANGES=true
|
|
38
|
+
|
|
39
|
+
# Logging configuration
|
|
40
|
+
- BASIC_MEMORY_LOG_LEVEL=INFO
|
|
41
|
+
|
|
42
|
+
# Sync delay in milliseconds (adjust for performance vs responsiveness)
|
|
43
|
+
- BASIC_MEMORY_SYNC_DELAY=1000
|
|
44
|
+
|
|
45
|
+
# Port exposure for HTTP transport (only needed if not using STDIO)
|
|
46
|
+
ports:
|
|
47
|
+
- "8000:8000"
|
|
48
|
+
|
|
49
|
+
# Command with SSE transport (configurable via environment variables above)
|
|
50
|
+
# IMPORTANT: The SSE and streamable-http endpoints are not secured
|
|
51
|
+
command: ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
|
|
52
|
+
|
|
53
|
+
# Container management
|
|
54
|
+
restart: unless-stopped
|
|
55
|
+
|
|
56
|
+
# Health monitoring
|
|
57
|
+
healthcheck:
|
|
58
|
+
test: ["CMD", "basic-memory", "--version"]
|
|
59
|
+
interval: 30s
|
|
60
|
+
timeout: 10s
|
|
61
|
+
retries: 3
|
|
62
|
+
start_period: 30s
|
|
63
|
+
|
|
64
|
+
# Optional: Resource limits
|
|
65
|
+
# deploy:
|
|
66
|
+
# resources:
|
|
67
|
+
# limits:
|
|
68
|
+
# memory: 512M
|
|
69
|
+
# cpus: '0.5'
|
|
70
|
+
# reservations:
|
|
71
|
+
# memory: 256M
|
|
72
|
+
# cpus: '0.25'
|
|
73
|
+
|
|
74
|
+
volumes:
|
|
75
|
+
# Named volume for persistent configuration and database
|
|
76
|
+
# This ensures your configuration and knowledge graph persist across container restarts
|
|
77
|
+
basic-memory-config:
|
|
78
|
+
driver: local
|
|
79
|
+
|
|
80
|
+
# Network configuration (optional)
|
|
81
|
+
# networks:
|
|
82
|
+
# basic-memory-net:
|
|
83
|
+
# driver: bridge
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Docker Setup Guide
|
|
2
|
+
|
|
3
|
+
Basic Memory can be run in Docker containers to provide a consistent, isolated environment for your knowledge management
|
|
4
|
+
system. This is particularly useful for integrating with existing Dockerized MCP servers or for deployment scenarios.
|
|
5
|
+
|
|
6
|
+
## Quick Start
|
|
7
|
+
|
|
8
|
+
### Option 1: Using Pre-built Images (Recommended)
|
|
9
|
+
|
|
10
|
+
Basic Memory provides pre-built Docker images on GitHub Container Registry that are automatically updated with each release.
|
|
11
|
+
|
|
12
|
+
1. **Use the official image directly:**
|
|
13
|
+
```bash
|
|
14
|
+
docker run -d \
|
|
15
|
+
--name basic-memory-server \
|
|
16
|
+
-p 8000:8000 \
|
|
17
|
+
-v /path/to/your/obsidian-vault:/app/data:rw \
|
|
18
|
+
-v basic-memory-config:/root/.basic-memory:rw \
|
|
19
|
+
ghcr.io/basicmachines-co/basic-memory:latest
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. **Or use Docker Compose with the pre-built image:**
|
|
23
|
+
```yaml
|
|
24
|
+
version: '3.8'
|
|
25
|
+
services:
|
|
26
|
+
basic-memory:
|
|
27
|
+
image: ghcr.io/basicmachines-co/basic-memory:latest
|
|
28
|
+
container_name: basic-memory-server
|
|
29
|
+
ports:
|
|
30
|
+
- "8000:8000"
|
|
31
|
+
volumes:
|
|
32
|
+
- /path/to/your/obsidian-vault:/app/data:rw
|
|
33
|
+
- basic-memory-config:/root/.basic-memory:rw
|
|
34
|
+
environment:
|
|
35
|
+
- BASIC_MEMORY_DEFAULT_PROJECT=main
|
|
36
|
+
restart: unless-stopped
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Option 2: Using Docker Compose (Building Locally)
|
|
40
|
+
|
|
41
|
+
1. **Clone the repository:**
|
|
42
|
+
```bash
|
|
43
|
+
git clone https://github.com/basicmachines-co/basic-memory.git
|
|
44
|
+
cd basic-memory
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
2. **Update the docker-compose.yml:**
|
|
48
|
+
Edit the volume mount to point to your Obsidian vault:
|
|
49
|
+
```yaml
|
|
50
|
+
volumes:
|
|
51
|
+
# Change './obsidian-vault' to your actual directory path
|
|
52
|
+
- /path/to/your/obsidian-vault:/app/data:rw
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. **Start the container:**
|
|
56
|
+
```bash
|
|
57
|
+
docker-compose up -d
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Option 3: Using Docker CLI
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Build the image
|
|
64
|
+
docker build -t basic-memory .
|
|
65
|
+
|
|
66
|
+
# Run with volume mounting
|
|
67
|
+
docker run -d \
|
|
68
|
+
--name basic-memory-server \
|
|
69
|
+
-v /path/to/your/obsidian-vault:/app/data:rw \
|
|
70
|
+
-v basic-memory-config:/root/.basic-memory:rw \
|
|
71
|
+
-e BASIC_MEMORY_DEFAULT_PROJECT=main \
|
|
72
|
+
basic-memory
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Configuration
|
|
76
|
+
|
|
77
|
+
### Volume Mounts
|
|
78
|
+
|
|
79
|
+
Basic Memory requires several volume mounts for proper operation:
|
|
80
|
+
|
|
81
|
+
1. **Knowledge Directory** (Required):
|
|
82
|
+
```yaml
|
|
83
|
+
- /path/to/your/obsidian-vault:/app/data:rw
|
|
84
|
+
```
|
|
85
|
+
Mount your Obsidian vault or knowledge base directory.
|
|
86
|
+
|
|
87
|
+
2. **Configuration and Database** (Recommended):
|
|
88
|
+
```yaml
|
|
89
|
+
- basic-memory-config:/root/.basic-memory:rw
|
|
90
|
+
```
|
|
91
|
+
Persistent storage for configuration and SQLite database.
|
|
92
|
+
|
|
93
|
+
You can edit the basic-memory config.json file located in the /root/.basic-memory/config.json after Basic Memory starts.
|
|
94
|
+
|
|
95
|
+
3. **Multiple Projects** (Optional):
|
|
96
|
+
```yaml
|
|
97
|
+
- /path/to/project1:/app/data/project1:rw
|
|
98
|
+
- /path/to/project2:/app/data/project2:rw
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
You can edit the basic-memory config.json file located in the /root/.basic-memory/config.json
|
|
102
|
+
|
|
103
|
+
## CLI Commands via Docker
|
|
104
|
+
|
|
105
|
+
You can run Basic Memory CLI commands inside the container using `docker exec`:
|
|
106
|
+
|
|
107
|
+
### Basic Commands
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Check status
|
|
111
|
+
docker exec basic-memory-server basic-memory status
|
|
112
|
+
|
|
113
|
+
# Sync files
|
|
114
|
+
docker exec basic-memory-server basic-memory sync
|
|
115
|
+
|
|
116
|
+
# Show help
|
|
117
|
+
docker exec basic-memory-server basic-memory --help
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Managing Projects with Volume Mounts
|
|
121
|
+
|
|
122
|
+
When using Docker volumes, you'll need to configure projects to point to your mounted directories:
|
|
123
|
+
|
|
124
|
+
1. **Check current configuration:**
|
|
125
|
+
```bash
|
|
126
|
+
docker exec basic-memory-server cat /root/.basic-memory/config.json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
2. **Add a project for your mounted volume:**
|
|
130
|
+
```bash
|
|
131
|
+
# If you mounted /path/to/your/vault to /app/data
|
|
132
|
+
docker exec basic-memory-server basic-memory project create my-vault /app/data
|
|
133
|
+
|
|
134
|
+
# Set it as default
|
|
135
|
+
docker exec basic-memory-server basic-memory project set-default my-vault
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
3. **Sync the new project:**
|
|
139
|
+
```bash
|
|
140
|
+
docker exec basic-memory-server basic-memory sync
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Example: Setting up an Obsidian Vault
|
|
144
|
+
|
|
145
|
+
If you mounted your Obsidian vault like this in docker-compose.yml:
|
|
146
|
+
```yaml
|
|
147
|
+
volumes:
|
|
148
|
+
- /Users/yourname/Documents/ObsidianVault:/app/data:rw
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Then configure it:
|
|
152
|
+
```bash
|
|
153
|
+
# Create project pointing to mounted vault
|
|
154
|
+
docker exec basic-memory-server basic-memory project create obsidian /app/data
|
|
155
|
+
|
|
156
|
+
# Set as default
|
|
157
|
+
docker exec basic-memory-server basic-memory project set-default obsidian
|
|
158
|
+
|
|
159
|
+
# Sync to index all files
|
|
160
|
+
docker exec basic-memory-server basic-memory sync
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Environment Variables
|
|
164
|
+
|
|
165
|
+
Configure Basic Memory using environment variables:
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
environment:
|
|
169
|
+
|
|
170
|
+
# Default project
|
|
171
|
+
- BASIC_MEMORY_DEFAULT_PROJECT=main
|
|
172
|
+
|
|
173
|
+
# Enable real-time sync
|
|
174
|
+
- BASIC_MEMORY_SYNC_CHANGES=true
|
|
175
|
+
|
|
176
|
+
# Logging level
|
|
177
|
+
- BASIC_MEMORY_LOG_LEVEL=INFO
|
|
178
|
+
|
|
179
|
+
# Sync delay in milliseconds
|
|
180
|
+
- BASIC_MEMORY_SYNC_DELAY=1000
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## File Permissions
|
|
184
|
+
|
|
185
|
+
### Linux/macOS
|
|
186
|
+
|
|
187
|
+
Ensure your knowledge directories have proper permissions:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Make directories readable/writable
|
|
191
|
+
chmod -R 755 /path/to/your/obsidian-vault
|
|
192
|
+
|
|
193
|
+
# If using specific user/group
|
|
194
|
+
chown -R $USER:$USER /path/to/your/obsidian-vault
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Windows
|
|
198
|
+
|
|
199
|
+
When using Docker Desktop on Windows, ensure the directories are shared:
|
|
200
|
+
|
|
201
|
+
1. Open Docker Desktop
|
|
202
|
+
2. Go to Settings → Resources → File Sharing
|
|
203
|
+
3. Add your knowledge directory path
|
|
204
|
+
4. Apply & Restart
|
|
205
|
+
|
|
206
|
+
## Troubleshooting
|
|
207
|
+
|
|
208
|
+
### Common Issues
|
|
209
|
+
|
|
210
|
+
1. **File Watching Not Working:**
|
|
211
|
+
- Ensure volume mounts are read-write (`:rw`)
|
|
212
|
+
- Check directory permissions
|
|
213
|
+
- On Linux, may need to increase inotify limits:
|
|
214
|
+
```bash
|
|
215
|
+
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
|
|
216
|
+
sudo sysctl -p
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
2. **Configuration Not Persisting:**
|
|
220
|
+
- Use named volumes for `/root/.basic-memory`
|
|
221
|
+
- Check volume mount permissions
|
|
222
|
+
|
|
223
|
+
3. **Network Connectivity:**
|
|
224
|
+
- For HTTP transport, ensure port 8000 is exposed
|
|
225
|
+
- Check firewall settings
|
|
226
|
+
|
|
227
|
+
### Debug Mode
|
|
228
|
+
|
|
229
|
+
Run with debug logging:
|
|
230
|
+
|
|
231
|
+
```yaml
|
|
232
|
+
environment:
|
|
233
|
+
- BASIC_MEMORY_LOG_LEVEL=DEBUG
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
View logs:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
docker-compose logs -f basic-memory
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
## Security Considerations
|
|
244
|
+
|
|
245
|
+
1. **Docker Security:**
|
|
246
|
+
The container runs as root for simplicity. For production, consider additional security measures.
|
|
247
|
+
|
|
248
|
+
2. **Volume Permissions:**
|
|
249
|
+
Ensure mounted directories have appropriate permissions and don't expose sensitive data.
|
|
250
|
+
|
|
251
|
+
3. **Network Security:**
|
|
252
|
+
If using HTTP transport, consider using reverse proxy with SSL/TLS and authentication if the endpoint is available on
|
|
253
|
+
a network.
|
|
254
|
+
|
|
255
|
+
4. **IMPORTANT:** The HTTP endpoints have no authorization. They should not be exposed on a public network.
|
|
256
|
+
|
|
257
|
+
## Integration Examples
|
|
258
|
+
|
|
259
|
+
### Claude Desktop with Docker
|
|
260
|
+
|
|
261
|
+
The recommended way to connect Claude Desktop to the containerized Basic Memory is using `mcp-proxy`, which converts the HTTP transport to STDIO that Claude Desktop expects:
|
|
262
|
+
|
|
263
|
+
1. **Start the Docker container:**
|
|
264
|
+
```bash
|
|
265
|
+
docker-compose up -d
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
2. **Configure Claude Desktop** to use mcp-proxy:
|
|
269
|
+
```json
|
|
270
|
+
{
|
|
271
|
+
"mcpServers": {
|
|
272
|
+
"basic-memory": {
|
|
273
|
+
"command": "uvx",
|
|
274
|
+
"args": [
|
|
275
|
+
"mcp-proxy",
|
|
276
|
+
"http://localhost:8000/mcp"
|
|
277
|
+
]
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
## Support
|
|
285
|
+
|
|
286
|
+
For Docker-specific issues:
|
|
287
|
+
|
|
288
|
+
1. Check the [troubleshooting section](#troubleshooting) above
|
|
289
|
+
2. Review container logs: `docker-compose logs basic-memory`
|
|
290
|
+
3. Verify volume mounts: `docker inspect basic-memory-server`
|
|
291
|
+
4. Test file permissions: `docker exec basic-memory-server ls -la /root`
|
|
292
|
+
|
|
293
|
+
For general Basic Memory support, see the main [README](../README.md)
|
|
294
|
+
and [documentation](https://memory.basicmachines.co/).
|
|
295
|
+
|
|
296
|
+
## GitHub Container Registry Images
|
|
297
|
+
|
|
298
|
+
### Available Images
|
|
299
|
+
|
|
300
|
+
Pre-built Docker images are available on GitHub Container Registry at [`ghcr.io/basicmachines-co/basic-memory`](https://github.com/basicmachines-co/basic-memory/pkgs/container/basic-memory).
|
|
301
|
+
|
|
302
|
+
**Supported architectures:**
|
|
303
|
+
- `linux/amd64` (Intel/AMD x64)
|
|
304
|
+
- `linux/arm64` (ARM64, including Apple Silicon)
|
|
305
|
+
|
|
306
|
+
**Available tags:**
|
|
307
|
+
- `latest` - Latest stable release
|
|
308
|
+
- `v0.13.8`, `v0.13.7`, etc. - Specific version tags
|
|
309
|
+
- `v0.13`, `v0.12`, etc. - Major.minor tags
|
|
310
|
+
|
|
311
|
+
### Automated Builds
|
|
312
|
+
|
|
313
|
+
Docker images are automatically built and published when new releases are tagged:
|
|
314
|
+
|
|
315
|
+
1. **Release Process:** When a git tag matching `v*` (e.g., `v0.13.8`) is pushed, the CI workflow automatically:
|
|
316
|
+
- Builds multi-platform Docker images
|
|
317
|
+
- Pushes to GitHub Container Registry with appropriate tags
|
|
318
|
+
- Uses native GitHub integration for seamless publishing
|
|
319
|
+
|
|
320
|
+
2. **CI/CD Pipeline:** The Docker workflow includes:
|
|
321
|
+
- Multi-platform builds (AMD64 and ARM64)
|
|
322
|
+
- Layer caching for faster builds
|
|
323
|
+
- Automatic tagging with semantic versioning
|
|
324
|
+
- Security scanning and optimization
|
|
325
|
+
|
|
326
|
+
### Setup Requirements (For Maintainers)
|
|
327
|
+
|
|
328
|
+
GitHub Container Registry integration is automatic for this repository:
|
|
329
|
+
|
|
330
|
+
1. **No external setup required** - GHCR is natively integrated with GitHub
|
|
331
|
+
2. **Automatic permissions** - Uses `GITHUB_TOKEN` with `packages: write` permission
|
|
332
|
+
3. **Public by default** - Images are automatically public for public repositories
|
|
333
|
+
|
|
334
|
+
The Docker CI workflow (`.github/workflows/docker.yml`) handles everything automatically when version tags are pushed.
|