From ce5e0c31f19c688fcf25e2b54d169a53f794f7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=AD=E9=98=B3=E9=98=B3?= Date: Thu, 12 Feb 2026 15:27:22 +0800 Subject: [PATCH] fix: preference return results --- src/memos/multi_mem_cube/single_cube.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/memos/multi_mem_cube/single_cube.py b/src/memos/multi_mem_cube/single_cube.py index 307bf05b2..1678d9d15 100644 --- a/src/memos/multi_mem_cube/single_cube.py +++ b/src/memos/multi_mem_cube/single_cube.py @@ -443,7 +443,28 @@ def _search_pref( }, search_filter=search_req.filter, ) - return self._postformat_memories(results, user_context.mem_cube_id) + formatted_results = self._postformat_memories(results, user_context.mem_cube_id) + + # For each returned item, tackle with metadata.info project_id / + # operation / manager_user_id + for item in formatted_results: + if not isinstance(item, dict): + continue + metadata = item.get("metadata") + if not isinstance(metadata, dict): + continue + info = metadata.get("info") + if not isinstance(info, dict): + continue + + for key in ("project_id", "operation", "manager_user_id"): + if key not in info: + continue + value = info.pop(key) + if key not in metadata: + metadata[key] = value + + return formatted_results except Exception as e: self.logger.error("Error in _search_pref: %s; traceback: %s", e, traceback.format_exc()) return []