From 037cc95e2c91f50eb3de1b7ce9bbf0aeeaf830fe Mon Sep 17 00:00:00 2001 From: bittergreen Date: Mon, 13 Apr 2026 10:28:47 +0800 Subject: [PATCH 1/3] fix: polardb metadata bug fix --- src/memos/graph_dbs/polardb.py | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/memos/graph_dbs/polardb.py b/src/memos/graph_dbs/polardb.py index abfae7710..619955867 100644 --- a/src/memos/graph_dbs/polardb.py +++ b/src/memos/graph_dbs/polardb.py @@ -976,15 +976,7 @@ def get_nodes(self, ids: list[str], user_name: str, **kwargs) -> list[dict[str, properties["embedding"] = embedding except (json.JSONDecodeError, TypeError): logger.warning(f"Failed to parse embedding for node {node_id}") - nodes.append( - self._parse_node( - { - "id": properties.get("id", node_id), - "memory": properties.get("memory", ""), - "metadata": properties, - } - ) - ) + nodes.append(self._parse_node(properties)) return nodes @timed @@ -1534,7 +1526,7 @@ def search_by_keywords_like( user_name_conditions = self._build_user_name_and_kb_ids_conditions_sql( user_name=user_name, knowledgebase_ids=knowledgebase_ids, - default_user_name=self.config.user_name, + default_user_name=self._get_config_value("user_name"), ) # Add OR condition if we have any user_name conditions @@ -1633,7 +1625,7 @@ def search_by_keywords_tfidf( user_name_conditions = self._build_user_name_and_kb_ids_conditions_sql( user_name=user_name, knowledgebase_ids=knowledgebase_ids, - default_user_name=self.config.user_name, + default_user_name=self._get_config_value("user_name"), ) # Add OR condition if we have any user_name conditions @@ -1751,7 +1743,7 @@ def search_by_fulltext( user_name_conditions = self._build_user_name_and_kb_ids_conditions_sql( user_name=user_name, knowledgebase_ids=knowledgebase_ids, - default_user_name=self.config.user_name, + default_user_name=self._get_config_value("user_name"), ) if user_name_conditions: @@ -1873,7 +1865,7 @@ def search_by_embedding( user_name_conditions = self._build_user_name_and_kb_ids_conditions_sql( user_name=user_name, knowledgebase_ids=knowledgebase_ids, - default_user_name=self.config.user_name, + default_user_name=self._get_config_value("user_name"), ) if user_name_conditions: From 9483b3c54cf8b373c0bff3afb4c048dbb4c278ac Mon Sep 17 00:00:00 2001 From: bittergreen Date: Mon, 13 Apr 2026 15:02:38 +0800 Subject: [PATCH 2/3] fix: fix chunking bug in memreader --- src/memos/mem_reader/multi_modal_struct.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/memos/mem_reader/multi_modal_struct.py b/src/memos/mem_reader/multi_modal_struct.py index 092f29ac6..2fd56d6b8 100644 --- a/src/memos/mem_reader/multi_modal_struct.py +++ b/src/memos/mem_reader/multi_modal_struct.py @@ -102,8 +102,9 @@ def _split_large_memory_item( split_items = [] def _create_chunk_item(chunk): - # Chunk objects have a 'text' attribute - chunk_text = chunk.text + # Different chunkers are not fully consistent: + # some return Chunk-like objects with `.text`, while others return raw strings. + chunk_text = chunk.text if hasattr(chunk, "text") else chunk if not chunk_text or not chunk_text.strip(): return None # Create a new memory item for each chunk, preserving original metadata From 0337860a00f8a5c021b888d1c83db7771d158820 Mon Sep 17 00:00:00 2001 From: bittergreen Date: Fri, 17 Apr 2026 10:40:24 +0800 Subject: [PATCH 3/3] fix: also fix get_node for nested metadata --- src/memos/graph_dbs/polardb.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/memos/graph_dbs/polardb.py b/src/memos/graph_dbs/polardb.py index 619955867..856f94f2a 100644 --- a/src/memos/graph_dbs/polardb.py +++ b/src/memos/graph_dbs/polardb.py @@ -899,13 +899,7 @@ def get_node( logger.info( f" polardb [get_node] get_node completed time in {elapsed_time:.2f}s" ) - return self._parse_node( - { - "id": id, - "memory": properties.get("memory", ""), - **properties, - } - ) + return self._parse_node(properties) return None except Exception as e: