From 8833fee23286691d6d7746351799dacbd4a9ad76 Mon Sep 17 00:00:00 2001 From: Stream Date: Tue, 23 Sep 2025 23:17:34 +0800 Subject: [PATCH] feat: move version update logic out of save_memory --- api/controllers/service_api/app/chatflow_memory.py | 4 ++-- api/controllers/web/chatflow_memory.py | 4 ++-- api/services/chatflow_memory_service.py | 14 ++------------ 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/api/controllers/service_api/app/chatflow_memory.py b/api/controllers/service_api/app/chatflow_memory.py index 69e5590cc2..e9bd55a4f3 100644 --- a/api/controllers/service_api/app/chatflow_memory.py +++ b/api/controllers/service_api/app/chatflow_memory.py @@ -73,7 +73,7 @@ class MemoryEditApi(Resource): is_draft=False ) - # Create updated memory instance + # Create updated memory instance with incremented version updated_memory = MemoryBlock( spec=existing_memory.spec, tenant_id=existing_memory.tenant_id, @@ -81,7 +81,7 @@ class MemoryEditApi(Resource): conversation_id=existing_memory.conversation_id, node_id=existing_memory.node_id, value=update, # New value - version=existing_memory.version, # Keep current version (save_memory will handle version increment) + version=existing_memory.version + 1, # Increment version for update edited_by_user=True, created_by=existing_memory.created_by, ) diff --git a/api/controllers/web/chatflow_memory.py b/api/controllers/web/chatflow_memory.py index 60829b972b..1387807c6c 100644 --- a/api/controllers/web/chatflow_memory.py +++ b/api/controllers/web/chatflow_memory.py @@ -73,7 +73,7 @@ class MemoryEditApi(WebApiResource): is_draft=False ) - # Create updated memory instance + # Create updated memory instance with incremented version updated_memory = MemoryBlock( spec=existing_memory.spec, tenant_id=existing_memory.tenant_id, @@ -81,7 +81,7 @@ class MemoryEditApi(WebApiResource): conversation_id=existing_memory.conversation_id, node_id=existing_memory.node_id, value=update, # New value - version=existing_memory.version, # Keep current version (save_memory will handle version increment) + version=existing_memory.version + 1, # Increment version for update edited_by_user=True, created_by=existing_memory.created_by, ) diff --git a/api/services/chatflow_memory_service.py b/api/services/chatflow_memory_service.py index f82d451a2c..23e9f4174d 100644 --- a/api/services/chatflow_memory_service.py +++ b/api/services/chatflow_memory_service.py @@ -114,16 +114,6 @@ class ChatflowMemoryService: created_by = memory.created_by.id with Session(db.engine) as session: - existing = session.query(ChatflowMemoryVariable).filter_by( - memory_id=memory.spec.id, - tenant_id=memory.tenant_id, - app_id=memory.app_id, - node_id=memory.node_id, - conversation_id=memory.conversation_id, - created_by_role=created_by_role, - created_by=created_by, - ).order_by(ChatflowMemoryVariable.version.desc()).first() - new_version = 1 if not existing else existing.version + 1 session.add( ChatflowMemoryVariable( memory_id=memory.spec.id, @@ -138,7 +128,7 @@ class ChatflowMemoryService: ).model_dump_json(), term=memory.spec.term, scope=memory.spec.scope, - version=new_version, + version=memory.version, # Use version from MemoryBlock directly created_by_role=created_by_role, created_by=created_by, ) @@ -555,7 +545,7 @@ class ChatflowMemoryService: node_id=memory_block.node_id, edited_by_user=False, created_by=memory_block.created_by, - version=memory_block.version, + version=memory_block.version + 1, # Increment version for business logic update ) ChatflowMemoryService.save_memory(updated_memory, variable_pool, is_draft)