Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
99349b9
refactor: implement async client context manager pattern
phernandez Oct 9, 2025
1cac173
refactor: convert write_note.py to context manager pattern
phernandez Oct 9, 2025
a97d66f
refactor: convert delete_note.py to context manager pattern
phernandez Oct 9, 2025
caf078d
refactor: convert read_content.py to context manager pattern
phernandez Oct 9, 2025
1bf7236
refactor: convert list_directory.py to context manager pattern
phernandez Oct 9, 2025
916cd80
refactor: convert canvas.py to context manager and update SPEC-16
phernandez Oct 9, 2025
45d05c3
refactor: convert canvas.py and build_context.py to context manager p…
phernandez Oct 9, 2025
461a339
refactor: convert edit_note.py to context manager pattern
phernandez Oct 9, 2025
de6227e
refactor: convert move_note.py to context manager pattern
phernandez Oct 9, 2025
e4e6828
refactor: convert search.py to context manager pattern
phernandez Oct 9, 2025
9962b31
refactor: convert recent_activity.py to context manager pattern
phernandez Oct 9, 2025
eeb69e7
refactor: convert project_management.py to context manager pattern
phernandez Oct 9, 2025
36526bd
refactor(mcp): convert sync_status.py to context manager pattern
phernandez Oct 9, 2025
a4ba8b7
refactor(mcp): convert continue_conversation.py to context manager pa…
phernandez Oct 9, 2025
e0815ae
refactor(mcp): convert search.py prompt to context manager pattern
phernandez Oct 9, 2025
bd9569a
refactor(mcp): convert project_info.py resource to context manager pa…
phernandez Oct 9, 2025
9649bf3
fix(mcp): correct type annotation for client factory in async_client.py
phernandez Oct 9, 2025
b3e04a2
refactor(cli): convert CLI commands to use context manager pattern
phernandez Oct 9, 2025
ef7c4f9
update spec tasks
phernandez Oct 9, 2025
05b3928
docs(spec): mark Phase 0 integration validation complete
phernandez Oct 9, 2025
714f2ae
docs: add async client context manager pattern to CLAUDE.md
phernandez Oct 9, 2025
1320445
remove async_client.client, update auth console logging
phernandez Oct 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,41 @@ See the [README.md](README.md) file for a project overview.
- Avoid creating mocks in tests in most circumstances.
- Each test runs in a standalone environment with in memory SQLite and tmp_file directory

### Async Client Pattern (Important!)

**All MCP tools and CLI commands use the context manager pattern for HTTP clients:**

```python
from basic_memory.mcp.async_client import get_client

async def my_mcp_tool():
async with get_client() as client:
# Use client for API calls
response = await call_get(client, "/path")
return response
```

**Do NOT use:**
- ❌ `from basic_memory.mcp.async_client import client` (deprecated module-level client)
- ❌ Manual auth header management
- ❌ `inject_auth_header()` (deleted)

**Key principles:**
- Auth happens at client creation, not per-request
- Proper resource management via context managers
- Supports three modes: Local (ASGI), CLI cloud (HTTP + auth), Cloud app (factory injection)
- Factory pattern enables dependency injection for cloud consolidation

**For cloud app integration:**
```python
from basic_memory.mcp import async_client

# Set custom factory before importing tools
async_client.set_client_factory(your_custom_factory)
```

See SPEC-16 for full context manager refactor details.

## BASIC MEMORY PRODUCT USAGE

### Knowledge Structure
Expand Down
Loading
Loading