From 9b7bbc7116ca0f662e3d3f7dfe04d1a41dfbb6d2 Mon Sep 17 00:00:00 2001 From: phernandez Date: Tue, 25 Nov 2025 22:54:37 -0600 Subject: [PATCH] formatting and logic change to resolve_relations, remove fuzzy search --- src/basic_memory/db.py | 5 ++++- src/basic_memory/services/entity_service.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/basic_memory/db.py b/src/basic_memory/db.py index c189699a..7e001f9f 100644 --- a/src/basic_memory/db.py +++ b/src/basic_memory/db.py @@ -350,7 +350,10 @@ async def run_migrations( # For SQLite: Create FTS5 virtual table # For Postgres: No-op (tsvector column added by migrations) # The project_id is not used for init_search_index, so we pass a dummy value - if database_type == DatabaseType.POSTGRES or app_config.database_backend == DatabaseBackend.POSTGRES: + if ( + database_type == DatabaseType.POSTGRES + or app_config.database_backend == DatabaseBackend.POSTGRES + ): await PostgresSearchRepository(session_maker, 1).init_search_index() else: await SQLiteSearchRepository(session_maker, 1).init_search_index() diff --git a/src/basic_memory/services/entity_service.py b/src/basic_memory/services/entity_service.py index 21a1d784..1a6f7548 100644 --- a/src/basic_memory/services/entity_service.py +++ b/src/basic_memory/services/entity_service.py @@ -448,8 +448,11 @@ class EntityService(BaseService[EntityModel]): import asyncio # Create tasks for all relation lookups + # Use strict=True to disable fuzzy search - only exact matches should create resolved relations + # This ensures forward references (links to non-existent entities) remain unresolved (to_id=NULL) lookup_tasks = [ - self.link_resolver.resolve_link(rel.target) for rel in markdown.relations + self.link_resolver.resolve_link(rel.target, strict=True) + for rel in markdown.relations ] # Execute all lookups in parallel