basic-memory 0.17.5__tar.gz → 0.17.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CHANGELOG.md +13 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/Dockerfile +10 -4
- {basic_memory-0.17.5 → basic_memory-0.17.6}/PKG-INFO +1 -1
- {basic_memory-0.17.5 → basic_memory-0.17.6}/justfile +10 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/pyproject.toml +0 -3
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/__init__.py +1 -1
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/app.py +0 -6
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/core_commands.py +0 -1
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/server.py +3 -3
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/coordinator.py +1 -1
- basic_memory-0.17.5/specs/SPEC-1 Specification-Driven Development Process.md +0 -156
- basic_memory-0.17.5/specs/SPEC-10 Unified Deployment Workflow and Event Tracking.md +0 -569
- basic_memory-0.17.5/specs/SPEC-11 Basic Memory API Performance Optimization.md +0 -186
- basic_memory-0.17.5/specs/SPEC-12 OpenTelemetry Observability.md +0 -182
- basic_memory-0.17.5/specs/SPEC-13 CLI Authentication with Subscription Validation.md +0 -917
- basic_memory-0.17.5/specs/SPEC-14 Cloud Git Versioning & GitHub Backup.md +0 -210
- basic_memory-0.17.5/specs/SPEC-14- Cloud Git Versioning & GitHub Backup.md +0 -210
- basic_memory-0.17.5/specs/SPEC-15 Configuration Persistence via Tigris for Cloud Tenants.md +0 -273
- basic_memory-0.17.5/specs/SPEC-16 MCP Cloud Service Consolidation.md +0 -800
- basic_memory-0.17.5/specs/SPEC-17 Semantic Search with ChromaDB.md +0 -1439
- basic_memory-0.17.5/specs/SPEC-18 AI Memory Management Tool.md +0 -528
- basic_memory-0.17.5/specs/SPEC-19 Sync Performance and Memory Optimization.md +0 -1046
- basic_memory-0.17.5/specs/SPEC-2 Slash Commands Reference.md +0 -120
- basic_memory-0.17.5/specs/SPEC-20 Simplified Project-Scoped Rclone Sync.md +0 -1216
- basic_memory-0.17.5/specs/SPEC-3 Agent Definitions.md +0 -108
- basic_memory-0.17.5/specs/SPEC-4 Notes Web UI Component Architecture.md +0 -311
- basic_memory-0.17.5/specs/SPEC-5 CLI Cloud Upload via WebDAV.md +0 -201
- basic_memory-0.17.5/specs/SPEC-6 Explicit Project Parameter Architecture.md +0 -497
- basic_memory-0.17.5/specs/SPEC-7 POC to spike Tigris Turso for local access to cloud data.md +0 -324
- basic_memory-0.17.5/specs/SPEC-8 TigrisFS Integration.md +0 -886
- basic_memory-0.17.5/specs/SPEC-9 Multi-Project Bidirectional Sync Architecture.md +0 -1114
- basic_memory-0.17.5/specs/SPEC-9 Signed Header Tenant Information.md +0 -196
- basic_memory-0.17.5/specs/SPEC-9-1 Follow-Ups- Conflict, Sync, and Observability.md +0 -390
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/beta.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/release/release.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/spec.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.claude/settings.json +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.dockerignore +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.env.example +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/dependabot.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude-code-review.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude-issue-triage.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/docker.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/release.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.github/workflows/test.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.gitignore +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/.python-version +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CITATION.cff +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CLA.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CLAUDE.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/CONTRIBUTING.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/LICENSE +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/README.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/SECURITY.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docker-compose-postgres.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docker-compose.yml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/ARCHITECTURE.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/Docker.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/ai-assistant-guide-extended.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/character-handling.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/cloud-cli.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/docs/testing-coverage.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/llms-install.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/smithery.yaml +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/314f1ea54dc4_add_postgres_full_text_search_support_.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/6830751f5fb6_merge_multiple_heads.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/9d9c1cb7d8f5_add_mtime_and_size_columns_to_entity_.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/a1b2c3d4e5f6_fix_project_foreign_keys.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/a2b3c4d5e6f7_add_search_index_entity_cascade.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/e7e1f4367280_add_scan_watermark_tracking_to_project.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/f8a9b2c3d4e5_add_pg_trgm_for_fuzzy_link_resolution.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/alembic/versions/g9a0b3c4d5e6_add_external_id_to_project_and_entity.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/directory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/importer_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/knowledge_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/memory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/project_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/prompt_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/resource_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/api/v2/routers/search_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/auth.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/api_client.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/bisync_commands.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/cloud_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_commands.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_config.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/rclone_installer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/upload.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/upload_command.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/command_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/format.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/project.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/telemetry.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/config.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/db.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/config.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/db.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/importers.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/projects.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/repositories.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps/services.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/ignore_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/directory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/knowledge.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/memory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/project.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/resource.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/clients/search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/project_context.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/chatgpt_tools.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/project_management.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/project_resolver.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/postgres_search_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_index_row.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/search_repository_base.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/repository/sqlite_search_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/runtime.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/cloud.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/project_info.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/sync_report.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/entity.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/schemas/v2/resource.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/project_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/telemetry.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/BENCHMARKS.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/cli/test_project_commands_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/cli/test_version_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_build_context_underscore.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_chatgpt_tools_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_default_project_mode_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_lifespan_shutdown_sync_task_cancellation_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_project_state_sync_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_single_project_mcp_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/test_db_wal_mode.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/test-int/test_disable_permalinks_integration.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/README.md +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/Screenshot.png +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_api_container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_async_client.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_relation_background_resolution.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_directory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_importer_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_knowledge_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_memory_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_project_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_prompt_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_resource_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/api/v2/test_search_router.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_cloud_api_client_and_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_rclone_config_and_bmignore_filters.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/cloud/test_upload_path.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_auth_cli_auth.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_exit.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_tool_exit.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_cloud_authentication.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_ignore_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_project_add_with_local_path.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/cli/test_upload.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/db/test_issue_254_foreign_key_constraints.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_conversation_indexing.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_date_frontmatter_parsing.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_entity_parser_error_handling.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/clients/__init__.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/clients/test_clients.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_async_client_modes.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_mcp_container.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_obsidian_yaml_formatting.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_permalink_collision_file_overwrite.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_project_context.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_recent_activity_prompt_modes.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_server_lifespan_branches.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_project_management.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_read_content.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/test_tool_write_note_kebab_filenames.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/mcp/tools/test_chatgpt_tools.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_repository_upsert.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_entity_upsert_issue_187.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_postgres_search_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/repository/test_search_repository_edit_bug_fix.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_base_timeframe_minimum.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_serialization.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_relation_response_reference_resolution.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_entity_service_disable_permalinks.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_initialization_cloud_mode_branches.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_removal_bug.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_character_conflicts.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_coordinator.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_service_incremental.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_atomic_adds.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/sync/test_watch_service_reload.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_config.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_deps.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_production_cascade_delete.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_project_resolver.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_rclone_commands.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_runtime.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/test_telemetry.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_frontmatter_obsidian_compatible.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_timezone_utils.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/tests/utils/test_validate_project_path.py +0 -0
- {basic_memory-0.17.5 → basic_memory-0.17.6}/uv.lock +0 -0
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.17.6 (2026-01-17)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **#510**: Fix Docker container Python symlink broken at runtime
|
|
8
|
+
([`1799c94`](https://github.com/basicmachines-co/basic-memory/commit/1799c94))
|
|
9
|
+
|
|
10
|
+
### Internal
|
|
11
|
+
|
|
12
|
+
- Remove logfire config and specs docs, reduce lifespan and sync logging to debug level
|
|
13
|
+
([`d1d433d`](https://github.com/basicmachines-co/basic-memory/commit/d1d433d),
|
|
14
|
+
[`803f3ef`](https://github.com/basicmachines-co/basic-memory/commit/803f3ef))
|
|
15
|
+
|
|
3
16
|
## v0.17.5 (2026-01-11)
|
|
4
17
|
|
|
5
18
|
### Bug Fixes
|
|
@@ -8,8 +8,13 @@ ARG GID=1000
|
|
|
8
8
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
9
9
|
|
|
10
10
|
# Set environment variables
|
|
11
|
+
# UV_PYTHON_INSTALL_DIR ensures Python is installed to a persistent location
|
|
12
|
+
# that survives in the final image (not in /root/.local which gets lost)
|
|
13
|
+
# UV_PYTHON_PREFERENCE=only-managed tells uv to use its managed Python version
|
|
11
14
|
ENV PYTHONUNBUFFERED=1 \
|
|
12
|
-
PYTHONDONTWRITEBYTECODE=1
|
|
15
|
+
PYTHONDONTWRITEBYTECODE=1 \
|
|
16
|
+
UV_PYTHON_INSTALL_DIR=/python \
|
|
17
|
+
UV_PYTHON_PREFERENCE=only-managed
|
|
13
18
|
|
|
14
19
|
# Create a group and user with the provided UID/GID
|
|
15
20
|
# Check if the GID already exists, if not create appgroup
|
|
@@ -19,9 +24,10 @@ RUN (getent group ${GID} || groupadd --gid ${GID} appgroup) && \
|
|
|
19
24
|
# Copy the project into the image
|
|
20
25
|
ADD . /app
|
|
21
26
|
|
|
22
|
-
#
|
|
27
|
+
# Install Python 3.13 explicitly and sync the project
|
|
23
28
|
WORKDIR /app
|
|
24
|
-
RUN uv
|
|
29
|
+
RUN uv python install 3.13
|
|
30
|
+
RUN uv sync --locked --python 3.13
|
|
25
31
|
|
|
26
32
|
# Create necessary directories and set ownership
|
|
27
33
|
RUN mkdir -p /app/data/basic-memory /app/.basic-memory && \
|
|
@@ -43,4 +49,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
|
43
49
|
CMD basic-memory --version || exit 1
|
|
44
50
|
|
|
45
51
|
# Use the basic-memory entrypoint to run the MCP server with default SSE transport
|
|
46
|
-
CMD ["basic-memory", "mcp", "--transport", "sse", "--host", "0.0.0.0", "--port", "8000"]
|
|
52
|
+
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.17.
|
|
3
|
+
Version: 0.17.6
|
|
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
|
|
@@ -220,6 +220,11 @@ release version:
|
|
|
220
220
|
echo "✅ Release {{version}} created successfully!"
|
|
221
221
|
echo "📦 GitHub Actions will build and publish to PyPI"
|
|
222
222
|
echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
|
|
223
|
+
echo ""
|
|
224
|
+
echo "📝 REMINDER: Update documentation sites after release is published:"
|
|
225
|
+
echo " 1. docs.basicmemory.com - Add release notes to src/pages/latest-releases.mdx"
|
|
226
|
+
echo " 2. basicmachines.co - Update version in src/components/sections/hero.tsx"
|
|
227
|
+
echo " See: .claude/commands/release/release.md for detailed instructions"
|
|
223
228
|
|
|
224
229
|
# Create a beta release (e.g., just beta v0.13.2b1)
|
|
225
230
|
beta version:
|
|
@@ -281,6 +286,11 @@ beta version:
|
|
|
281
286
|
echo "📦 GitHub Actions will build and publish to PyPI as pre-release"
|
|
282
287
|
echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
|
|
283
288
|
echo "📥 Install with: uv tool install basic-memory --pre"
|
|
289
|
+
echo ""
|
|
290
|
+
echo "📝 REMINDER: For stable releases, update documentation sites:"
|
|
291
|
+
echo " 1. docs.basicmemory.com - Add release notes to src/pages/latest-releases.mdx"
|
|
292
|
+
echo " 2. basicmachines.co - Update version in src/components/sections/hero.tsx"
|
|
293
|
+
echo " See: .claude/commands/release/release.md for detailed instructions"
|
|
284
294
|
|
|
285
295
|
# List all available recipes
|
|
286
296
|
default:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""basic-memory - Local-first knowledge management combining Zettelkasten with knowledge graphs"""
|
|
2
2
|
|
|
3
3
|
# Package version - updated by release automation
|
|
4
|
-
__version__ = "0.17.
|
|
4
|
+
__version__ = "0.17.6"
|
|
5
5
|
|
|
6
6
|
# API version for FastAPI - independent of package version
|
|
7
7
|
__api_version__ = "v0"
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
# Suppress Logfire "not configured" warning - we only use Logfire in cloud/server contexts
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
os.environ.setdefault("LOGFIRE_IGNORE_NO_CONFIG", "1")
|
|
5
|
-
|
|
6
|
-
# Remove loguru's default handler IMMEDIATELY, before any other imports.
|
|
7
1
|
# This prevents DEBUG logs from appearing on stdout during module-level
|
|
8
2
|
# initialization (e.g., template_loader.TemplateLoader() logs at DEBUG level).
|
|
9
3
|
from loguru import logger
|
{basic_memory-0.17.5 → basic_memory-0.17.6}/src/basic_memory/cli/commands/cloud/core_commands.py
RENAMED
|
@@ -139,7 +139,6 @@ def status() -> None:
|
|
|
139
139
|
def setup() -> None:
|
|
140
140
|
"""Set up cloud sync by installing rclone and configuring credentials.
|
|
141
141
|
|
|
142
|
-
SPEC-20: Simplified to project-scoped workflow.
|
|
143
142
|
After setup, use project commands for syncing:
|
|
144
143
|
bm project add <name> <path> --local-path ~/projects/<name>
|
|
145
144
|
bm project bisync --name <name> --resync # First time
|
|
@@ -28,7 +28,7 @@ async def lifespan(app: FastMCP):
|
|
|
28
28
|
container = McpContainer.create()
|
|
29
29
|
set_container(container)
|
|
30
30
|
|
|
31
|
-
logger.
|
|
31
|
+
logger.debug(f"Starting Basic Memory MCP server (mode={container.mode.name})")
|
|
32
32
|
|
|
33
33
|
# Show telemetry notice (first run only) and track startup
|
|
34
34
|
show_notice_if_needed()
|
|
@@ -50,13 +50,13 @@ async def lifespan(app: FastMCP):
|
|
|
50
50
|
yield
|
|
51
51
|
finally:
|
|
52
52
|
# Shutdown - coordinator handles clean task cancellation
|
|
53
|
-
logger.
|
|
53
|
+
logger.debug("Shutting down Basic Memory MCP server")
|
|
54
54
|
await sync_coordinator.stop()
|
|
55
55
|
|
|
56
56
|
# Only shutdown DB if we created it (not if test fixture provided it)
|
|
57
57
|
if engine_was_none:
|
|
58
58
|
await db.shutdown_db()
|
|
59
|
-
logger.
|
|
59
|
+
logger.debug("Database connections closed")
|
|
60
60
|
else: # pragma: no cover
|
|
61
61
|
logger.debug("Skipping DB shutdown - engine provided externally")
|
|
62
62
|
|
|
@@ -78,7 +78,7 @@ class SyncCoordinator:
|
|
|
78
78
|
"""
|
|
79
79
|
if not self.should_sync:
|
|
80
80
|
if self.skip_reason:
|
|
81
|
-
logger.
|
|
81
|
+
logger.debug(f"{self.skip_reason} - skipping local file sync")
|
|
82
82
|
self._status = SyncStatus.STOPPED
|
|
83
83
|
return
|
|
84
84
|
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 'SPEC-1: Specification-Driven Development Process'
|
|
3
|
-
type: spec
|
|
4
|
-
permalink: specs/spec-1-specification-driven-development-process
|
|
5
|
-
tags:
|
|
6
|
-
- process
|
|
7
|
-
- specification
|
|
8
|
-
- development
|
|
9
|
-
- meta
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# SPEC-1: Specification-Driven Development Process
|
|
13
|
-
|
|
14
|
-
## Why
|
|
15
|
-
We're implementing specification-driven development to solve the complexity and circular refactoring issues in our web development process.
|
|
16
|
-
Instead of getting lost in framework details and type gymnastics, we start with clear specifications that drive implementation.
|
|
17
|
-
|
|
18
|
-
The default approach of adhoc development with AI agents tends to result in:
|
|
19
|
-
- Circular refactoring cycles
|
|
20
|
-
- Fighting framework complexity
|
|
21
|
-
- Lost context between sessions
|
|
22
|
-
- Unclear requirements and scope
|
|
23
|
-
|
|
24
|
-
## What
|
|
25
|
-
This spec defines our process for using basic-memory as the specification engine to build basic-memory-cloud.
|
|
26
|
-
We're creating a recursive development pattern where basic-memory manages the specs that drive the development of basic-memory-cloud.
|
|
27
|
-
|
|
28
|
-
**Affected Areas:**
|
|
29
|
-
- All future component development
|
|
30
|
-
- Architecture decisions
|
|
31
|
-
- Agent collaboration workflows
|
|
32
|
-
- Knowledge management and context preservation
|
|
33
|
-
|
|
34
|
-
## How (High Level)
|
|
35
|
-
|
|
36
|
-
### Specification Structure
|
|
37
|
-
|
|
38
|
-
Name: Spec names should be numbered sequentially, followed by a description eg. `SPEC-X - Simple Description.md`.
|
|
39
|
-
See: [[Spec-2: Slash Commands Reference]]
|
|
40
|
-
|
|
41
|
-
Every spec is a complete thought containing:
|
|
42
|
-
- **Why**: The reasoning and problem being solved
|
|
43
|
-
- **What**: What is affected or changed
|
|
44
|
-
- **How**: High-level approach to implementation
|
|
45
|
-
- **How to Evaluate**: Testing/validation procedure
|
|
46
|
-
- Additional context as needed
|
|
47
|
-
|
|
48
|
-
### Living Specification Format
|
|
49
|
-
|
|
50
|
-
Specifications are **living documents** that evolve throughout implementation:
|
|
51
|
-
|
|
52
|
-
**Progress Tracking:**
|
|
53
|
-
- **Completed items**: Use ✅ checkmark emoji for implemented features
|
|
54
|
-
- **Pending items**: Use `- [ ]` GitHub-style checkboxes for remaining tasks
|
|
55
|
-
- **In-progress items**: Use `- [x]` when work is actively underway
|
|
56
|
-
|
|
57
|
-
**Status Philosophy:**
|
|
58
|
-
- **Avoid static status headers** like "COMPLETE" or "IN PROGRESS" that become stale
|
|
59
|
-
- **Use checklists within content** to show granular implementation progress
|
|
60
|
-
- **Keep specs informative** while providing clear progress visibility
|
|
61
|
-
- **Update continuously** as understanding and implementation evolve
|
|
62
|
-
|
|
63
|
-
**Example Format:**
|
|
64
|
-
```markdown
|
|
65
|
-
### ComponentName
|
|
66
|
-
- ✅ Basic functionality implemented
|
|
67
|
-
- ✅ Props and events defined
|
|
68
|
-
- - [ ] Add sorting controls
|
|
69
|
-
- - [ ] Improve accessibility
|
|
70
|
-
- - [x] Currently implementing responsive design
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
This creates **git-friendly progress tracking** where `[ ]` easily becomes `[x]` or ✅ when completed, and specs remain valuable throughout the development lifecycle.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
## Claude Code
|
|
77
|
-
|
|
78
|
-
We will leverage Claude Code capabilities to make the process semi-automated.
|
|
79
|
-
|
|
80
|
-
- Slash commands: define repeatable steps in the process (create spec, implement, review, etc)
|
|
81
|
-
- Agents: define roles to carry out instructions (front end developer, baskend developer, etc)
|
|
82
|
-
- MCP tools: enable agents to implement specs via actions (write code, test, etc)
|
|
83
|
-
|
|
84
|
-
### Workflow
|
|
85
|
-
1. **Create**: Write spec as complete thought in `/specs` folder
|
|
86
|
-
2. **Discuss**: Iterate and refine through agent collaboration
|
|
87
|
-
3. **Implement**: Hand spec to appropriate specialist agent
|
|
88
|
-
4. **Validate**: Review implementation against spec criteria
|
|
89
|
-
5. **Document**: Update spec with learnings and decisions
|
|
90
|
-
|
|
91
|
-
### Slash Commands
|
|
92
|
-
|
|
93
|
-
Claude slash commands are used to manage the flow.
|
|
94
|
-
These are simple instructions to help make the process uniform.
|
|
95
|
-
They can be updated and refined as needed.
|
|
96
|
-
|
|
97
|
-
- `/spec create [name]` - Create new specification
|
|
98
|
-
- `/spec status` - Show current spec states
|
|
99
|
-
- `/spec implement [name]` - Hand to appropriate agent
|
|
100
|
-
- `/spec review [name]` - Validate implementation
|
|
101
|
-
|
|
102
|
-
### Agent Orchestration
|
|
103
|
-
|
|
104
|
-
Agents are defined with clear roles, for instance:
|
|
105
|
-
|
|
106
|
-
- **system-architect**: Creates high-level specs, ADRs, architectural decisions
|
|
107
|
-
- **vue-developer**: Component specs, UI patterns, frontend architecture
|
|
108
|
-
- **python-developer**: Implementation specs, technical details, backend logic
|
|
109
|
-
-
|
|
110
|
-
- Each agent reads/updates specs through basic-memory tools.
|
|
111
|
-
|
|
112
|
-
## How to Evaluate
|
|
113
|
-
|
|
114
|
-
### Success Criteria
|
|
115
|
-
- Specs provide clear, actionable guidance for implementation
|
|
116
|
-
- Reduced circular refactoring and scope creep
|
|
117
|
-
- Persistent context across development sessions
|
|
118
|
-
- Clean separation between "what/why" and implementation details
|
|
119
|
-
- Specs record a history of what happened and why for historical context
|
|
120
|
-
|
|
121
|
-
### Testing Procedure
|
|
122
|
-
1. Create a spec for an existing problematic component
|
|
123
|
-
2. Have an agent implement following only the spec
|
|
124
|
-
3. Compare result quality and development speed vs. ad-hoc approach
|
|
125
|
-
4. Measure context preservation across sessions
|
|
126
|
-
5. Evaluate spec clarity and completeness
|
|
127
|
-
|
|
128
|
-
### Metrics
|
|
129
|
-
- Time from spec to working implementation
|
|
130
|
-
- Number of refactoring cycles required
|
|
131
|
-
- Agent understanding of requirements
|
|
132
|
-
- Spec reusability for similar components
|
|
133
|
-
|
|
134
|
-
## Notes
|
|
135
|
-
- Start simple: specs are just complete thoughts, not heavy processes
|
|
136
|
-
- Use basic-memory's knowledge graph to link specs, decisions, components
|
|
137
|
-
- Let the process evolve naturally based on what works
|
|
138
|
-
- Focus on solving the actual problem: Manage complexity in development
|
|
139
|
-
|
|
140
|
-
## Observations
|
|
141
|
-
|
|
142
|
-
- [problem] Web development without clear goals and documentation circular refactoring cycles #complexity
|
|
143
|
-
- [solution] Specification-driven development reduces scope creep and context loss #process-improvement
|
|
144
|
-
- [pattern] basic-memory as specification engine creates recursive development loop #meta-development
|
|
145
|
-
- [workflow] Five-step process: Create → Discuss → Implement → Validate → Document #methodology
|
|
146
|
-
- [tool] Slash commands provide uniform process automation #automation
|
|
147
|
-
- [agent-pattern] Three specialized agents handle different implementation domains #specialization
|
|
148
|
-
- [success-metric] Time from spec to working implementation measures process efficiency #measurement
|
|
149
|
-
- [learning] Process should evolve naturally based on what works in practice #adaptation
|
|
150
|
-
- [format] Living specifications use checklists for progress tracking instead of static status headers #documentation
|
|
151
|
-
- [evolution] Specs evolve throughout implementation maintaining value as working documents #continuous-improvement
|
|
152
|
-
|
|
153
|
-
## Relations
|
|
154
|
-
|
|
155
|
-
- spec [[Spec-2: Slash Commands Reference]]
|
|
156
|
-
- spec [[Spec-3: Agent Definitions]]
|