basic-memory 0.13.0b6__tar.gz → 0.13.2__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.2/.claude/commands/release/beta.md +95 -0
- basic_memory-0.13.2/.claude/commands/release/release.md +86 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CHANGELOG.md +223 -57
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/PKG-INFO +1 -1
- basic_memory-0.13.2/justfile +182 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/__init__.py +4 -1
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/project.py +10 -25
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/project_management.py +7 -5
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/project_info.py +6 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/project_service.py +4 -4
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_project_commands.py +1 -4
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/conftest.py +0 -1
- basic_memory-0.13.0b6/.claude/commands/release/beta.md +0 -69
- basic_memory-0.13.0b6/.claude/commands/release/release.md +0 -84
- basic_memory-0.13.0b6/RELEASE_NOTES_v0.13.0.md +0 -241
- basic_memory-0.13.0b6/justfile +0 -63
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/check-health.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/commands.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/lint-fix.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/release/changelog.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/release/release-check.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/test-coverage.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.claude/commands/test-live.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.env.oauth.example +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/dependabot.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/workflows/claude.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/workflows/dev-release.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/workflows/pr-title.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/workflows/release.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.github/workflows/test.yml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.gitignore +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.mcp.json +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/.python-version +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/AUTH.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CITATION.cff +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CLA.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CLAUDE.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CODE_OF_CONDUCT.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/CONTRIBUTING.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/Dockerfile +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/LICENSE +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/README.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/SECURITY.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/basic-memory.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/AI Assistant Guide.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/CLI Reference.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Canvas.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Claude.ai Integration.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Getting Started with Basic Memory.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Knowledge Format.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/OAuth Authentication Guide.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Obsidian Integration.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Supabase OAuth Setup.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Technical Information.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/User Guide.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/Welcome to Basic memory.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/Canvas.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/Claude-Obsidian-Demo.mp4 +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/Prompt.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/disk-ai-logo-400x400.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/disk-ai-logo.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/prompt 1.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/prompt2.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/prompt3.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/attachments/prompt4.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/docs/publish.js +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Brewing Equipment.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Coffee Bean Origins.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Coffee Brewing Methods.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Coffee Flavor Map.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Coffee Knowledge Base.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Flavor Extraction.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Perfect Pour Over Coffee Method.canvas +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/Coffee Notes/Tasting Notes.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/examples/testing/Test Note Creation - Basic Functionality.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/llms-install.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/memory.json +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/pyproject.toml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/scripts/install.sh +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/smithery.yaml +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/alembic.ini +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/env.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/migrations.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/script.py.mako +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/3dae7c7b1564_initial_schema.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/502b60eaa905_remove_required_from_entity_permalink.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/5fe1ab1ccebe_add_projects_table.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/647e7a75e2cd_project_constraint_fix.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/b3c3938bacdb_relation_to_name_unique_index.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/alembic/versions/cc7172b46608_update_search_index_schema.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/app.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/directory_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/importer_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/knowledge_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/management_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/memory_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/project_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/prompt_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/resource_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/search_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/routers/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/api/template_loader.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/app.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/auth.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/db.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/import_chatgpt.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/import_claude_conversations.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/import_claude_projects.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/import_memory_json.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/mcp.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/status.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/sync.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/commands/tool.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/cli/main.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/config.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/db.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/deps.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/file_utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/base.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/chatgpt_importer.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/claude_conversations_importer.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/claude_projects_importer.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/memory_json_importer.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/importers/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/entity_parser.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/markdown_processor.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/plugins.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/schemas.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/markdown/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/async_client.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/auth_provider.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/external_auth_provider.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/project_session.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/ai_assistant_guide.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/continue_conversation.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/recent_activity.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/sync_status.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/prompts/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/resources/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/resources/project_info.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/server.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/supabase_auth_provider.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/build_context.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/canvas.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/delete_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/edit_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/list_directory.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/move_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/read_content.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/read_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/recent_activity.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/sync_status.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/view_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/mcp/tools/write_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/models/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/models/base.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/models/knowledge.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/models/project.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/models/search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/entity_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/observation_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/project_info_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/project_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/relation_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/repository/search_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/base.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/delete.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/directory.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/importer.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/memory.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/prompt.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/request.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/response.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/schemas/search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/context_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/directory_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/entity_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/exceptions.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/file_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/initialization.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/link_resolver.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/migration_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/search_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/services/sync_status_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/sync/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/sync/background_sync.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/sync/sync_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/sync/watch_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/templates/prompts/continue_conversation.hbs +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/templates/prompts/search.hbs +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/src/basic_memory/utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/static/ai_assistant_guide.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/static/json_canvas_spec_1_0.md +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/conftest.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_build_context_validation.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_delete_note_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_edit_note_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_list_directory_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_move_note_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_project_management_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_read_content_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_read_note_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_search_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/test-int/mcp/test_write_note_integration.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/Non-MarkdownFileSupport.pdf +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/Screenshot.png +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/conftest.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_continue_conversation_template.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_directory_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_importer_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_knowledge_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_management_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_memory_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_project_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_project_router_operations.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_prompt_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_resource_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_search_router.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_search_template.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_template_loader.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/api/test_template_loader_helpers.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/conftest.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_auth_commands.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_cli_tools.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_import_chatgpt.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_import_claude_conversations.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_import_claude_projects.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_import_memory_json.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_project_info.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_status.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_sync.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/cli/test_version.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/importers/test_importer_base.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/importers/test_importer_utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/__init__.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_entity_parser.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_markdown_plugins.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_markdown_processor.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_observation_edge_cases.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_parser_edge_cases.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_relation_edge_cases.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/markdown/test_task_detection.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/conftest.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_auth_provider.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_prompts.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_resource_project_info.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_resources.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_server.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_build_context.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_canvas.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_delete_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_edit_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_list_directory.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_move_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_read_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_recent_activity.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_resource.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_sync_status.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_view_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/mcp/test_tool_write_note.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_entity_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_observation_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_project_info_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_project_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_relation_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/repository/test_search_repository.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/schemas/test_memory_url.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/schemas/test_memory_url_validation.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/schemas/test_schemas.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/schemas/test_search.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_context_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_directory_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_entity_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_file_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_initialization.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_link_resolver.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_project_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_project_service_operations.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_search_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/services/test_sync_status_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/sync/test_sync_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/sync/test_sync_wikilink_issue.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/sync/test_tmp_files.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/sync/test_watch_service.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/sync/test_watch_service_edge_cases.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/utils/test_file_utils.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/utils/test_parse_tags.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/utils/test_permalink_formatting.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/tests/utils/test_utf8_handling.py +0 -0
- {basic_memory-0.13.0b6 → basic_memory-0.13.2}/uv.lock +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# /beta - Create Beta Release
|
|
2
|
+
|
|
3
|
+
Create a new beta release using the automated justfile target with quality checks and tagging.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/beta <version>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Beta version like `v0.13.2b1` or `v0.13.2rc1`
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert release manager for the Basic Memory project. When the user runs `/beta`, execute the following steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Pre-flight Validation
|
|
18
|
+
1. Verify version format matches `v\d+\.\d+\.\d+(b\d+|rc\d+)` pattern
|
|
19
|
+
2. Check current git status for uncommitted changes
|
|
20
|
+
3. Verify we're on the `main` branch
|
|
21
|
+
4. Confirm no existing tag with this version
|
|
22
|
+
|
|
23
|
+
### Step 2: Use Justfile Automation
|
|
24
|
+
Execute the automated beta release process:
|
|
25
|
+
```bash
|
|
26
|
+
just beta <version>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The justfile target handles:
|
|
30
|
+
- ✅ Beta version format validation (supports b1, b2, rc1, etc.)
|
|
31
|
+
- ✅ Git status and branch checks
|
|
32
|
+
- ✅ Quality checks (`just check` - lint, format, type-check, tests)
|
|
33
|
+
- ✅ Version update in `src/basic_memory/__init__.py`
|
|
34
|
+
- ✅ Automatic commit with proper message
|
|
35
|
+
- ✅ Tag creation and pushing to GitHub
|
|
36
|
+
- ✅ Beta release workflow trigger
|
|
37
|
+
|
|
38
|
+
### Step 3: Monitor Beta Release
|
|
39
|
+
1. Check GitHub Actions workflow starts successfully
|
|
40
|
+
2. Monitor workflow at: https://github.com/basicmachines-co/basic-memory/actions
|
|
41
|
+
3. Verify PyPI pre-release publication
|
|
42
|
+
4. Test beta installation: `uv tool install basic-memory --pre`
|
|
43
|
+
|
|
44
|
+
### Step 4: Beta Testing Instructions
|
|
45
|
+
Provide users with beta testing instructions:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Install/upgrade to beta
|
|
49
|
+
uv tool install basic-memory --pre
|
|
50
|
+
|
|
51
|
+
# Or upgrade existing installation
|
|
52
|
+
uv tool upgrade basic-memory --prerelease=allow
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Version Guidelines
|
|
56
|
+
- **First beta**: `v0.13.2b1`
|
|
57
|
+
- **Subsequent betas**: `v0.13.2b2`, `v0.13.2b3`, etc.
|
|
58
|
+
- **Release candidates**: `v0.13.2rc1`, `v0.13.2rc2`, etc.
|
|
59
|
+
- **Final release**: `v0.13.2` (use `/release` command)
|
|
60
|
+
|
|
61
|
+
## Error Handling
|
|
62
|
+
- If `just beta` fails, examine the error output for specific issues
|
|
63
|
+
- If quality checks fail, fix issues and retry
|
|
64
|
+
- If version format is invalid, correct and retry
|
|
65
|
+
- If tag already exists, increment version number
|
|
66
|
+
|
|
67
|
+
## Success Output
|
|
68
|
+
```
|
|
69
|
+
✅ Beta Release v0.13.2b1 Created Successfully!
|
|
70
|
+
|
|
71
|
+
🏷️ Tag: v0.13.2b1
|
|
72
|
+
🚀 GitHub Actions: Running
|
|
73
|
+
📦 PyPI: Will be available in ~5 minutes as pre-release
|
|
74
|
+
|
|
75
|
+
Install/test with:
|
|
76
|
+
uv tool install basic-memory --pre
|
|
77
|
+
|
|
78
|
+
Monitor release: https://github.com/basicmachines-co/basic-memory/actions
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Beta Testing Workflow
|
|
82
|
+
1. **Create beta**: Use `/beta v0.13.2b1`
|
|
83
|
+
2. **Test features**: Install and validate new functionality
|
|
84
|
+
3. **Fix issues**: Address bugs found during testing
|
|
85
|
+
4. **Iterate**: Create `v0.13.2b2` if needed
|
|
86
|
+
5. **Release candidate**: Create `v0.13.2rc1` when stable
|
|
87
|
+
6. **Final release**: Use `/release v0.13.2` when ready
|
|
88
|
+
|
|
89
|
+
## Context
|
|
90
|
+
- Beta releases are pre-releases for testing new features
|
|
91
|
+
- Automatically published to PyPI with pre-release flag
|
|
92
|
+
- Uses the automated justfile target for consistency
|
|
93
|
+
- Version is automatically updated in `__init__.py`
|
|
94
|
+
- Ideal for validating changes before stable release
|
|
95
|
+
- Supports both beta (b1, b2) and release candidate (rc1, rc2) versions
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# /release - Create Stable Release
|
|
2
|
+
|
|
3
|
+
Create a stable release using the automated justfile target with comprehensive validation.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
```
|
|
7
|
+
/release <version>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `version` (required): Release version like `v0.13.2`
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
You are an expert release manager for the Basic Memory project. When the user runs `/release`, execute the following steps:
|
|
16
|
+
|
|
17
|
+
### Step 1: Pre-flight Validation
|
|
18
|
+
1. Verify version format matches `v\d+\.\d+\.\d+` pattern
|
|
19
|
+
2. Check current git status for uncommitted changes
|
|
20
|
+
3. Verify we're on the `main` branch
|
|
21
|
+
4. Confirm no existing tag with this version
|
|
22
|
+
|
|
23
|
+
### Step 2: Use Justfile Automation
|
|
24
|
+
Execute the automated release process:
|
|
25
|
+
```bash
|
|
26
|
+
just release <version>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The justfile target handles:
|
|
30
|
+
- ✅ Version format validation
|
|
31
|
+
- ✅ Git status and branch checks
|
|
32
|
+
- ✅ Quality checks (`just check` - lint, format, type-check, tests)
|
|
33
|
+
- ✅ Version update in `src/basic_memory/__init__.py`
|
|
34
|
+
- ✅ Automatic commit with proper message
|
|
35
|
+
- ✅ Tag creation and pushing to GitHub
|
|
36
|
+
- ✅ Release workflow trigger
|
|
37
|
+
|
|
38
|
+
### Step 3: Monitor Release Process
|
|
39
|
+
1. Check that GitHub Actions workflow starts successfully
|
|
40
|
+
2. Monitor workflow completion at: https://github.com/basicmachines-co/basic-memory/actions
|
|
41
|
+
3. Verify PyPI publication
|
|
42
|
+
4. Test installation: `uv tool install basic-memory`
|
|
43
|
+
|
|
44
|
+
### Step 4: Post-Release Validation
|
|
45
|
+
1. Verify GitHub release is created automatically
|
|
46
|
+
2. Check PyPI publication
|
|
47
|
+
3. Validate release assets
|
|
48
|
+
4. Update any post-release documentation
|
|
49
|
+
|
|
50
|
+
## Pre-conditions Check
|
|
51
|
+
Before starting, verify:
|
|
52
|
+
- [ ] All beta testing is complete
|
|
53
|
+
- [ ] Critical bugs are fixed
|
|
54
|
+
- [ ] Breaking changes are documented
|
|
55
|
+
- [ ] CHANGELOG.md is updated (if needed)
|
|
56
|
+
- [ ] Version number follows semantic versioning
|
|
57
|
+
|
|
58
|
+
## Error Handling
|
|
59
|
+
- If `just release` fails, examine the error output for specific issues
|
|
60
|
+
- If quality checks fail, fix issues and retry
|
|
61
|
+
- If changelog entry missing, update CHANGELOG.md and commit before retrying
|
|
62
|
+
- If GitHub Actions fail, check workflow logs for debugging
|
|
63
|
+
|
|
64
|
+
## Success Output
|
|
65
|
+
```
|
|
66
|
+
🎉 Stable Release v0.13.2 Created Successfully!
|
|
67
|
+
|
|
68
|
+
🏷️ Tag: v0.13.2
|
|
69
|
+
📋 GitHub Release: https://github.com/basicmachines-co/basic-memory/releases/tag/v0.13.2
|
|
70
|
+
📦 PyPI: https://pypi.org/project/basic-memory/0.13.2/
|
|
71
|
+
🚀 GitHub Actions: Completed
|
|
72
|
+
|
|
73
|
+
Install with:
|
|
74
|
+
uv tool install basic-memory
|
|
75
|
+
|
|
76
|
+
Users can now upgrade:
|
|
77
|
+
uv tool upgrade basic-memory
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Context
|
|
81
|
+
- This creates production releases used by end users
|
|
82
|
+
- Must pass all quality gates before proceeding
|
|
83
|
+
- Uses the automated justfile target for consistency
|
|
84
|
+
- Version is automatically updated in `__init__.py`
|
|
85
|
+
- Triggers automated GitHub release with changelog
|
|
86
|
+
- Leverages uv-dynamic-versioning for package version management
|
|
@@ -1,80 +1,246 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.13.1 (2025-06-11)
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
### Bug Fixes
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
- **CLI**: Fixed `basic-memory project` project management commands that were not working in v0.13.0 (#129)
|
|
8
|
+
- **Projects**: Resolved case sensitivity issues when switching between projects that caused "Project not found" errors (#127)
|
|
9
|
+
- **API**: Standardized CLI project command endpoints and improved error handling
|
|
10
|
+
- **Core**: Implemented consistent project name handling using permalinks to avoid case-related conflicts
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
([`993e88a`](https://github.com/basicmachines-co/basic-memory/commit/993e88a))
|
|
10
|
-
- Instant project switching with session context
|
|
11
|
-
- Project-specific operations and isolation
|
|
12
|
-
- Project discovery and management tools
|
|
12
|
+
### Changes
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- Smart frontmatter-aware editing
|
|
18
|
-
- Validation and error handling
|
|
14
|
+
- Renamed `basic-memory project sync` command to `basic-memory project sync-config` for clarity
|
|
15
|
+
- Improved project switching reliability across different case variations
|
|
16
|
+
- Removed redundant server status messages from CLI error outputs
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
([`9fb931c`](https://github.com/basicmachines-co/basic-memory/commit/9fb931c))
|
|
22
|
-
- `move_note` tool with rollback protection
|
|
23
|
-
- Automatic folder creation and permalink updates
|
|
24
|
-
- Full database consistency maintenance
|
|
18
|
+
## v0.13.0 (2025-06-11)
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
([`3f5368e`](https://github.com/basicmachines-co/basic-memory/commit/3f5368e))
|
|
28
|
-
- YAML frontmatter tag indexing
|
|
29
|
-
- Improved FTS5 search functionality
|
|
30
|
-
- Project-scoped search operations
|
|
20
|
+
### Overview
|
|
31
21
|
|
|
32
|
-
|
|
33
|
-
([`5f8d945`](https://github.com/basicmachines-co/basic-memory/commit/5f8d945))
|
|
34
|
-
- Development build automation
|
|
35
|
-
- MCP integration testing framework
|
|
36
|
-
- Enhanced CI/CD pipeline
|
|
22
|
+
Basic Memory v0.13.0 is a **major release** that transforms Basic Memory into a true multi-project knowledge management system. This release introduces fluid project switching, advanced note editing capabilities, robust file management, and production-ready OAuth authentication - all while maintaining full backward compatibility.
|
|
37
23
|
|
|
38
|
-
|
|
24
|
+
**What's New for Users:**
|
|
25
|
+
- 🎯 **Switch between projects instantly** during conversations with Claude
|
|
26
|
+
- ✏️ **Edit notes incrementally** without rewriting entire documents
|
|
27
|
+
- 📁 **Move and organize notes** with full database consistency
|
|
28
|
+
- 📖 **View notes as formatted artifacts** for better readability in Claude Desktop
|
|
29
|
+
- 🔍 **Search frontmatter tags** to discover content more easily
|
|
30
|
+
- 🔐 **OAuth authentication** for secure remote access
|
|
31
|
+
- ⚡ **Development builds** automatically published for beta testing
|
|
39
32
|
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
**Key v0.13.0 Accomplishments:**
|
|
34
|
+
- ✅ **Complete Project Management System** - Project switching and project-specific operations
|
|
35
|
+
- ✅ **Advanced Note Editing** - Incremental editing with append, prepend, find/replace, and section operations
|
|
36
|
+
- ✅ **View Notes as Artifacts in Claude Desktop/Web** - Use the view_note tool to view a note as an artifact
|
|
37
|
+
- ✅ **File Management System** - Full move operations with database consistency and rollback protection
|
|
38
|
+
- ✅ **Enhanced Search Capabilities** - Frontmatter tags now searchable, improved content discoverability
|
|
39
|
+
- ✅ **Unified Database Architecture** - Single app-level database for better performance and project management
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
([`02dd91a`](https://github.com/basicmachines-co/basic-memory/commit/02dd91a))
|
|
41
|
+
### Major Features
|
|
45
42
|
|
|
46
|
-
|
|
47
|
-
([`6b6fd76`](https://github.com/basicmachines-co/basic-memory/commit/6b6fd76))
|
|
43
|
+
#### 1. Multiple Project Management
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
([`6057126`](https://github.com/basicmachines-co/basic-memory/commit/6057126))
|
|
45
|
+
**Switch between projects instantly during conversations:**
|
|
51
46
|
|
|
52
|
-
|
|
47
|
+
```
|
|
48
|
+
💬 "What projects do I have?"
|
|
49
|
+
🤖 Available projects:
|
|
50
|
+
• main (current, default)
|
|
51
|
+
• work-notes
|
|
52
|
+
• personal-journal
|
|
53
|
+
• code-snippets
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
💬 "Switch to work-notes"
|
|
56
|
+
🤖 ✓ Switched to work-notes project
|
|
57
|
+
|
|
58
|
+
Project Summary:
|
|
59
|
+
• 47 entities
|
|
60
|
+
• 125 observations
|
|
61
|
+
• 23 relations
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
💬 "What did I work on yesterday?"
|
|
64
|
+
🤖 [Shows recent activity from work-notes project]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Key Capabilities:**
|
|
68
|
+
- **Instant Project Switching**: Change project context mid-conversation without restart
|
|
69
|
+
- **Project-Specific Operations**: Operations work within the currently active project context
|
|
70
|
+
- **Project Discovery**: List all available projects with status indicators
|
|
71
|
+
- **Session Context**: Maintains active project throughout conversation
|
|
72
|
+
- **Backward Compatibility**: Existing single-project setups continue to work seamlessly
|
|
64
73
|
|
|
65
|
-
|
|
74
|
+
#### 2. Advanced Note Editing
|
|
75
|
+
|
|
76
|
+
**Edit notes incrementally without rewriting entire documents:**
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
# Append new sections to existing notes
|
|
80
|
+
edit_note("project-planning", "append", "\n## New Requirements\n- Feature X\n- Feature Y")
|
|
81
|
+
|
|
82
|
+
# Prepend timestamps to meeting notes
|
|
83
|
+
edit_note("meeting-notes", "prepend", "## 2025-05-27 Update\n- Progress update...")
|
|
84
|
+
|
|
85
|
+
# Replace specific sections under headers
|
|
86
|
+
edit_note("api-spec", "replace_section", "New implementation details", section="## Implementation")
|
|
87
|
+
|
|
88
|
+
# Find and replace with validation
|
|
89
|
+
edit_note("config", "find_replace", "v0.13.0", find_text="v0.12.0", expected_replacements=2)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Key Capabilities:**
|
|
93
|
+
- **Append Operations**: Add content to end of notes (most common use case)
|
|
94
|
+
- **Prepend Operations**: Add content to beginning of notes
|
|
95
|
+
- **Section Replacement**: Replace content under specific markdown headers
|
|
96
|
+
- **Find & Replace**: Simple text replacements with occurrence counting
|
|
97
|
+
- **Smart Error Handling**: Helpful guidance when operations fail
|
|
98
|
+
- **Project Context**: Works within the active project with session awareness
|
|
99
|
+
|
|
100
|
+
#### 3. Smart File Management
|
|
101
|
+
|
|
102
|
+
**Move and organize notes:**
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
# Simple moves with automatic folder creation
|
|
106
|
+
move_note("my-note", "work/projects/my-note.md")
|
|
107
|
+
|
|
108
|
+
# Organize within the active project
|
|
109
|
+
move_note("shared-doc", "archive/old-docs/shared-doc.md")
|
|
110
|
+
|
|
111
|
+
# Rename operations
|
|
112
|
+
move_note("old-name", "same-folder/new-name.md")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Key Capabilities:**
|
|
116
|
+
- **Database Consistency**: Updates file paths, permalinks, and checksums automatically
|
|
117
|
+
- **Search Reindexing**: Maintains search functionality after moves
|
|
118
|
+
- **Folder Creation**: Automatically creates destination directories
|
|
119
|
+
- **Project Isolation**: Operates within the currently active project
|
|
120
|
+
- **Link Preservation**: Maintains internal links and references
|
|
121
|
+
|
|
122
|
+
#### 4. Enhanced Search & Discovery
|
|
123
|
+
|
|
124
|
+
**Find content more easily with improved search capabilities:**
|
|
125
|
+
|
|
126
|
+
- **Frontmatter Tag Search**: Tags from YAML frontmatter are now indexed and searchable
|
|
127
|
+
- **Improved Content Discovery**: Search across titles, content, tags, and metadata
|
|
128
|
+
- **Project-Scoped Search**: Search within the currently active project
|
|
129
|
+
- **Better Search Quality**: Enhanced FTS5 indexing with tag content inclusion
|
|
130
|
+
|
|
131
|
+
**Example:**
|
|
132
|
+
```yaml
|
|
133
|
+
---
|
|
134
|
+
title: Coffee Brewing Methods
|
|
135
|
+
tags: [coffee, brewing, equipment]
|
|
136
|
+
---
|
|
137
|
+
```
|
|
138
|
+
Now searchable by: "coffee", "brewing", "equipment", or "Coffee Brewing Methods"
|
|
139
|
+
|
|
140
|
+
#### 5. Unified Database Architecture
|
|
141
|
+
|
|
142
|
+
**Single app-level database for better performance and project management:**
|
|
143
|
+
|
|
144
|
+
- **Migration from Per-Project DBs**: Moved from multiple SQLite files to single app database
|
|
145
|
+
- **Project Isolation**: Proper data separation with project_id foreign keys
|
|
146
|
+
- **Better Performance**: Optimized queries and reduced file I/O
|
|
147
|
+
|
|
148
|
+
### Complete MCP Tool Suite
|
|
149
|
+
|
|
150
|
+
#### New Project Management Tools
|
|
151
|
+
- **`list_projects()`** - Discover and list all available projects with status
|
|
152
|
+
- **`switch_project(project_name)`** - Change active project context during conversations
|
|
153
|
+
- **`get_current_project()`** - Show currently active project with statistics
|
|
154
|
+
- **`set_default_project(project_name)`** - Update default project configuration
|
|
155
|
+
- **`sync_status()`** - Check file synchronization status and background operations
|
|
156
|
+
|
|
157
|
+
#### New Note Operations Tools
|
|
158
|
+
- **`edit_note()`** - Incremental note editing (append, prepend, find/replace, section replace)
|
|
159
|
+
- **`move_note()`** - Move notes with database consistency and search reindexing
|
|
160
|
+
- **`view_note()`** - Display notes as formatted artifacts for better readability in Claude Desktop
|
|
161
|
+
|
|
162
|
+
#### Enhanced Existing Tools
|
|
163
|
+
All existing tools now support:
|
|
164
|
+
- **Session context awareness** (operates within the currently active project)
|
|
165
|
+
- **Enhanced error messages** with project context metadata
|
|
166
|
+
- **Improved response formatting** with project information footers
|
|
167
|
+
- **Project isolation** ensures operations stay within the correct project boundaries
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
### User Experience Improvements
|
|
171
|
+
|
|
172
|
+
#### Installation Options
|
|
173
|
+
|
|
174
|
+
**Multiple ways to install and test Basic Memory:**
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Stable release
|
|
178
|
+
uv tool install basic-memory
|
|
179
|
+
|
|
180
|
+
# Beta/pre-releases
|
|
181
|
+
uv tool install basic-memory --pre
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
#### Bug Fixes & Quality Improvements
|
|
186
|
+
|
|
187
|
+
**Major issues resolved in v0.13.0:**
|
|
188
|
+
|
|
189
|
+
- **#118**: Fixed YAML tag formatting to follow standard specification
|
|
190
|
+
- **#110**: Fixed `--project` flag consistency across all CLI commands
|
|
191
|
+
- **#107**: Fixed write_note update failures with existing notes
|
|
192
|
+
- **#93**: Fixed custom permalink handling in frontmatter
|
|
193
|
+
- **#52**: Enhanced search capabilities with frontmatter tag indexing
|
|
194
|
+
- **FTS5 Search**: Fixed special character handling in search queries
|
|
195
|
+
- **Error Handling**: Improved error messages and validation across all tools
|
|
196
|
+
|
|
197
|
+
### Breaking Changes & Migration
|
|
198
|
+
|
|
199
|
+
#### For Existing Users
|
|
200
|
+
|
|
201
|
+
**Automatic Migration**: First run will automatically migrate existing data to the new unified database structure. No manual action required.
|
|
202
|
+
|
|
203
|
+
**What Changes:**
|
|
204
|
+
- Database location: Moved to `~/.basic-memory/memory.db` (unified across projects)
|
|
205
|
+
- Configuration: Projects defined in `~/.basic-memory/config.json` are synced with database
|
|
206
|
+
|
|
207
|
+
**What Stays the Same:**
|
|
208
|
+
- All existing notes and data remain unchanged
|
|
209
|
+
- Default project behavior maintained for single-project users
|
|
210
|
+
- All existing MCP tools continue to work without modification
|
|
211
|
+
|
|
212
|
+
### Documentation & Resources
|
|
213
|
+
|
|
214
|
+
#### New Documentation
|
|
215
|
+
- [Project Management Guide](docs/Project%20Management.md) - Multi-project workflows
|
|
216
|
+
- [Note Editing Guide](docs/Note%20Editing.md) - Advanced editing techniques
|
|
217
|
+
|
|
218
|
+
#### Updated Documentation
|
|
219
|
+
- [README.md](README.md) - Installation options and beta build instructions
|
|
220
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) - Release process and version management
|
|
221
|
+
- [CLAUDE.md](CLAUDE.md) - Development workflow and CI/CD documentation
|
|
222
|
+
- [Claude.ai Integration](docs/Claude.ai%20Integration.md) - Updated MCP tool examples
|
|
223
|
+
|
|
224
|
+
#### Quick Start Examples
|
|
225
|
+
|
|
226
|
+
**Project Switching:**
|
|
227
|
+
```
|
|
228
|
+
💬 "Switch to my work project and show recent activity"
|
|
229
|
+
🤖 [Calls switch_project("work") then recent_activity()]
|
|
230
|
+
```
|
|
66
231
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
232
|
+
**Note Editing:**
|
|
233
|
+
```
|
|
234
|
+
💬 "Add a section about deployment to my API docs"
|
|
235
|
+
🤖 [Calls edit_note("api-docs", "append", "## Deployment\n...")]
|
|
236
|
+
```
|
|
71
237
|
|
|
72
|
-
|
|
238
|
+
**File Organization:**
|
|
239
|
+
```
|
|
240
|
+
💬 "Move my old meeting notes to the archive folder"
|
|
241
|
+
🤖 [Calls move_note("meeting-notes", "archive/old-meetings.md")]
|
|
242
|
+
```
|
|
73
243
|
|
|
74
|
-
- **Database Migration**: Automatic migration from per-project to unified database.
|
|
75
|
-
Data will be re-index from the filesystem, resulting in no data loss.
|
|
76
|
-
- **Configuration Changes**: Projects now synced between config.json and database
|
|
77
|
-
- **Full Backward Compatibility**: All existing setups continue to work seamlessly
|
|
78
244
|
|
|
79
245
|
|
|
80
246
|
## v0.12.3 (2025-04-17)
|
|
@@ -861,4 +1027,4 @@ Co-authored-by: phernandez <phernandez@basicmachines.co>
|
|
|
861
1027
|
### Chores
|
|
862
1028
|
|
|
863
1029
|
- Remove basic-foundation src ref in pyproject.toml
|
|
864
|
-
([`29fce8b`](https://github.com/basicmachines-co/basic-memory/commit/29fce8b0b922d54d7799bf2534107ee6cfb961b8))
|
|
1030
|
+
([`29fce8b`](https://github.com/basicmachines-co/basic-memory/commit/29fce8b0b922d54d7799bf2534107ee6cfb961b8))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: basic-memory
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.2
|
|
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
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Basic Memory - Modern Command Runner
|
|
2
|
+
|
|
3
|
+
# Install dependencies
|
|
4
|
+
install:
|
|
5
|
+
pip install -e ".[dev]"
|
|
6
|
+
|
|
7
|
+
# Run unit tests in parallel
|
|
8
|
+
test-unit:
|
|
9
|
+
uv run pytest -p pytest_mock -v -n auto
|
|
10
|
+
|
|
11
|
+
# Run integration tests in parallel
|
|
12
|
+
test-int:
|
|
13
|
+
uv run pytest -p pytest_mock -v --no-cov -n auto test-int
|
|
14
|
+
|
|
15
|
+
# Run all tests
|
|
16
|
+
test: test-unit test-int
|
|
17
|
+
|
|
18
|
+
# Lint and fix code
|
|
19
|
+
lint:
|
|
20
|
+
ruff check . --fix
|
|
21
|
+
|
|
22
|
+
# Type check code
|
|
23
|
+
type-check:
|
|
24
|
+
uv run pyright
|
|
25
|
+
|
|
26
|
+
# Clean build artifacts and cache files
|
|
27
|
+
clean:
|
|
28
|
+
find . -type f -name '*.pyc' -delete
|
|
29
|
+
find . -type d -name '__pycache__' -exec rm -r {} +
|
|
30
|
+
rm -rf installer/build/ installer/dist/ dist/
|
|
31
|
+
rm -f rw.*.dmg .coverage.*
|
|
32
|
+
|
|
33
|
+
# Format code with ruff
|
|
34
|
+
format:
|
|
35
|
+
uv run ruff format .
|
|
36
|
+
|
|
37
|
+
# Run MCP inspector tool
|
|
38
|
+
run-inspector:
|
|
39
|
+
npx @modelcontextprotocol/inspector
|
|
40
|
+
|
|
41
|
+
# Build macOS installer
|
|
42
|
+
installer-mac:
|
|
43
|
+
cd installer && chmod +x make_icons.sh && ./make_icons.sh
|
|
44
|
+
cd installer && uv run python setup.py bdist_mac
|
|
45
|
+
|
|
46
|
+
# Build Windows installer
|
|
47
|
+
installer-win:
|
|
48
|
+
cd installer && uv run python setup.py bdist_win32
|
|
49
|
+
|
|
50
|
+
# Update all dependencies to latest versions
|
|
51
|
+
update-deps:
|
|
52
|
+
uv sync --upgrade
|
|
53
|
+
|
|
54
|
+
# Run all code quality checks and tests
|
|
55
|
+
check: lint format type-check test
|
|
56
|
+
|
|
57
|
+
# Generate Alembic migration with descriptive message
|
|
58
|
+
migration message:
|
|
59
|
+
cd src/basic_memory/alembic && alembic revision --autogenerate -m "{{message}}"
|
|
60
|
+
|
|
61
|
+
# Create a stable release (e.g., just release v0.13.2)
|
|
62
|
+
release version:
|
|
63
|
+
#!/usr/bin/env bash
|
|
64
|
+
set -euo pipefail
|
|
65
|
+
|
|
66
|
+
# Validate version format
|
|
67
|
+
if [[ ! "{{version}}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
68
|
+
echo "❌ Invalid version format. Use: v0.13.2"
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# Extract version number without 'v' prefix
|
|
73
|
+
VERSION_NUM=$(echo "{{version}}" | sed 's/^v//')
|
|
74
|
+
|
|
75
|
+
echo "🚀 Creating stable release {{version}}"
|
|
76
|
+
|
|
77
|
+
# Pre-flight checks
|
|
78
|
+
echo "📋 Running pre-flight checks..."
|
|
79
|
+
if [[ -n $(git status --porcelain) ]]; then
|
|
80
|
+
echo "❌ Uncommitted changes found. Please commit or stash them first."
|
|
81
|
+
exit 1
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
if [[ $(git branch --show-current) != "main" ]]; then
|
|
85
|
+
echo "❌ Not on main branch. Switch to main first."
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# Check if tag already exists
|
|
90
|
+
if git tag -l "{{version}}" | grep -q "{{version}}"; then
|
|
91
|
+
echo "❌ Tag {{version}} already exists"
|
|
92
|
+
exit 1
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# Run quality checks
|
|
96
|
+
echo "🔍 Running quality checks..."
|
|
97
|
+
just check
|
|
98
|
+
|
|
99
|
+
# Update version in __init__.py
|
|
100
|
+
echo "📝 Updating version in __init__.py..."
|
|
101
|
+
sed -i.bak "s/__version__ = \".*\"/__version__ = \"$VERSION_NUM\"/" src/basic_memory/__init__.py
|
|
102
|
+
rm -f src/basic_memory/__init__.py.bak
|
|
103
|
+
|
|
104
|
+
# Commit version update
|
|
105
|
+
git add src/basic_memory/__init__.py
|
|
106
|
+
git commit -m "chore: update version to $VERSION_NUM for {{version}} release"
|
|
107
|
+
|
|
108
|
+
# Create and push tag
|
|
109
|
+
echo "🏷️ Creating tag {{version}}..."
|
|
110
|
+
git tag "{{version}}"
|
|
111
|
+
|
|
112
|
+
echo "📤 Pushing to GitHub..."
|
|
113
|
+
git push origin main
|
|
114
|
+
git push origin "{{version}}"
|
|
115
|
+
|
|
116
|
+
echo "✅ Release {{version}} created successfully!"
|
|
117
|
+
echo "📦 GitHub Actions will build and publish to PyPI"
|
|
118
|
+
echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
|
|
119
|
+
|
|
120
|
+
# Create a beta release (e.g., just beta v0.13.2b1)
|
|
121
|
+
beta version:
|
|
122
|
+
#!/usr/bin/env bash
|
|
123
|
+
set -euo pipefail
|
|
124
|
+
|
|
125
|
+
# Validate version format (allow beta/rc suffixes)
|
|
126
|
+
if [[ ! "{{version}}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(b[0-9]+|rc[0-9]+)$ ]]; then
|
|
127
|
+
echo "❌ Invalid beta version format. Use: v0.13.2b1 or v0.13.2rc1"
|
|
128
|
+
exit 1
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
# Extract version number without 'v' prefix
|
|
132
|
+
VERSION_NUM=$(echo "{{version}}" | sed 's/^v//')
|
|
133
|
+
|
|
134
|
+
echo "🧪 Creating beta release {{version}}"
|
|
135
|
+
|
|
136
|
+
# Pre-flight checks
|
|
137
|
+
echo "📋 Running pre-flight checks..."
|
|
138
|
+
if [[ -n $(git status --porcelain) ]]; then
|
|
139
|
+
echo "❌ Uncommitted changes found. Please commit or stash them first."
|
|
140
|
+
exit 1
|
|
141
|
+
fi
|
|
142
|
+
|
|
143
|
+
if [[ $(git branch --show-current) != "main" ]]; then
|
|
144
|
+
echo "❌ Not on main branch. Switch to main first."
|
|
145
|
+
exit 1
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
# Check if tag already exists
|
|
149
|
+
if git tag -l "{{version}}" | grep -q "{{version}}"; then
|
|
150
|
+
echo "❌ Tag {{version}} already exists"
|
|
151
|
+
exit 1
|
|
152
|
+
fi
|
|
153
|
+
|
|
154
|
+
# Run quality checks
|
|
155
|
+
echo "🔍 Running quality checks..."
|
|
156
|
+
just check
|
|
157
|
+
|
|
158
|
+
# Update version in __init__.py
|
|
159
|
+
echo "📝 Updating version in __init__.py..."
|
|
160
|
+
sed -i.bak "s/__version__ = \".*\"/__version__ = \"$VERSION_NUM\"/" src/basic_memory/__init__.py
|
|
161
|
+
rm -f src/basic_memory/__init__.py.bak
|
|
162
|
+
|
|
163
|
+
# Commit version update
|
|
164
|
+
git add src/basic_memory/__init__.py
|
|
165
|
+
git commit -m "chore: update version to $VERSION_NUM for {{version}} beta release"
|
|
166
|
+
|
|
167
|
+
# Create and push tag
|
|
168
|
+
echo "🏷️ Creating tag {{version}}..."
|
|
169
|
+
git tag "{{version}}"
|
|
170
|
+
|
|
171
|
+
echo "📤 Pushing to GitHub..."
|
|
172
|
+
git push origin main
|
|
173
|
+
git push origin "{{version}}"
|
|
174
|
+
|
|
175
|
+
echo "✅ Beta release {{version}} created successfully!"
|
|
176
|
+
echo "📦 GitHub Actions will build and publish to PyPI as pre-release"
|
|
177
|
+
echo "🔗 Monitor at: https://github.com/basicmachines-co/basic-memory/actions"
|
|
178
|
+
echo "📥 Install with: uv tool install basic-memory --pre"
|
|
179
|
+
|
|
180
|
+
# List all available recipes
|
|
181
|
+
default:
|
|
182
|
+
@just --list
|