From 56015a4d06b7d4633e28737877abb4ce3f28af65 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 20:59:04 +0000 Subject: [PATCH] fix: Add permalink normalization to project lookups in deps.py Project lookups in get_project_config() and get_project_id() were failing when project names contained spaces, special characters, or capitals that needed normalization. Added generate_permalink() call before database lookups to ensure project names are properly normalized to permalinks. Fixes #347 Co-authored-by: jope-bm --- src/basic_memory/deps.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/basic_memory/deps.py b/src/basic_memory/deps.py index c023c6ac..5b4e85bd 100644 --- a/src/basic_memory/deps.py +++ b/src/basic_memory/deps.py @@ -33,6 +33,7 @@ from basic_memory.services.file_service import FileService from basic_memory.services.link_resolver import LinkResolver from basic_memory.services.search_service import SearchService from basic_memory.sync import SyncService +from basic_memory.utils import generate_permalink def get_app_config() -> BasicMemoryConfig: # pragma: no cover @@ -62,7 +63,8 @@ async def get_project_config( HTTPException: If project is not found """ - project_obj = await project_repository.get_by_permalink(str(project)) + project_permalink = generate_permalink(str(project)) + project_obj = await project_repository.get_by_permalink(project_permalink) if project_obj: return ProjectConfig(name=project_obj.name, home=pathlib.Path(project_obj.path)) @@ -149,7 +151,8 @@ async def get_project_id( """ # Try by permalink first (most common case with URL paths) - project_obj = await project_repository.get_by_permalink(str(project)) + project_permalink = generate_permalink(str(project)) + project_obj = await project_repository.get_by_permalink(project_permalink) if project_obj: return project_obj.id