Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
46 changes: 0 additions & 46 deletions src/basic_memory/cloud/__init__.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/basic_memory/cloud/directory_deletes.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/basic_memory/cloud/note_content_materialization.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/basic_memory/cloud/note_content_reads.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/basic_memory/cloud/note_content_writes.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/basic_memory/cloud/project_deletes.py

This file was deleted.

16 changes: 0 additions & 16 deletions src/basic_memory/deps.py

This file was deleted.

22 changes: 0 additions & 22 deletions src/basic_memory/mcp/async_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -457,25 +457,3 @@ async def get_client(
logger.debug("Default routing - using ASGI client for local Basic Memory API")
async with _asgi_client(timeout) as client:
yield client


def create_client() -> AsyncClient:
"""Create an HTTP client based on explicit routing flags.

DEPRECATED: Use get_client() context manager instead for proper resource management.
"""
timeout = _build_timeout()

if _force_local_mode() or not _force_cloud_mode():
logger.info("Creating ASGI client for local Basic Memory API")
# Deprecated sync path: create_client() cannot await the local ASGI
# pre-initialization used by get_client(), so callers that need proper
# resource setup should use the async context manager instead.
from basic_memory.api.app import app as fastapi_app

return _build_asgi_client(fastapi_app, timeout)

logger.info("Creating HTTP client for cloud proxy (legacy create_client path)")
config = ConfigManager().config
proxy_base_url = f"{config.cloud_host}/proxy"
return AsyncClient(base_url=proxy_base_url, timeout=timeout)
9 changes: 0 additions & 9 deletions tests/cloud/test_cloud_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from contextlib import asynccontextmanager
from datetime import UTC, datetime
from importlib import import_module
from types import SimpleNamespace
from typing import Any, cast
from uuid import uuid4
Expand Down Expand Up @@ -50,14 +49,6 @@
)


def test_cloud_package_is_the_canonical_shared_cloud_surface() -> None:
cloud = import_module("basic_memory.cloud")

assert cloud.NoteContentQueryService is NoteContentQueryService
assert cloud.NoteContentMutationService is NoteContentMutationService
assert cloud.DirectoryDeleteService is DirectoryDeleteService


class FakeSession:
async def __aenter__(self) -> FakeSession:
return self
Expand Down
11 changes: 0 additions & 11 deletions tests/test_architecture_boundaries.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,6 @@ def _imported_modules(path: Path) -> set[str]:
return modules


def test_core_production_modules_do_not_import_cloud_compatibility_package() -> None:
violations = {
path.relative_to(PACKAGE_ROOT).as_posix(): sorted(
module for module in _imported_modules(path) if module.startswith("basic_memory.cloud")
)
for path in PACKAGE_ROOT.rglob("*.py")
if "cloud" not in path.relative_to(PACKAGE_ROOT).parts
}
assert not {path: modules for path, modules in violations.items() if modules}


def test_repositories_do_not_import_indexing_workflows() -> None:
repository_root = PACKAGE_ROOT / "repository"
violations = {
Expand Down
Loading