From a4074c93bcc5315f108fca93270176a058fa1937 Mon Sep 17 00:00:00 2001 From: Will Miao <13051207myq@gmail.com> Date: Thu, 28 Aug 2025 05:33:53 +0800 Subject: [PATCH] feat: Improve folder filtering logic to ensure exact matches and handle root folder case --- py/services/base_model_service.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/py/services/base_model_service.py b/py/services/base_model_service.py index bd1b5f1f..14a89a52 100644 --- a/py/services/base_model_service.py +++ b/py/services/base_model_service.py @@ -142,10 +142,18 @@ class BaseModelService(ABC): if folder is not None: if search_options and search_options.get('recursive', True): # Recursive folder filtering - include all subfolders - data = [ - item for item in data - if item['folder'].startswith(folder) - ] + # Ensure we match exact folder or its subfolders by checking path boundaries + if folder == "": + # Empty folder means root - include all items + pass # Don't filter anything + else: + # Add trailing slash to ensure we match folder boundaries correctly + folder_with_separator = folder + "/" + data = [ + item for item in data + if (item['folder'] == folder or + item['folder'].startswith(folder_with_separator)) + ] else: # Exact folder filtering data = [