From 99362554b62a99b98b54f36102ddcd4e4888f3d2 Mon Sep 17 00:00:00 2001 From: harvey_xiang Date: Tue, 27 Jan 2026 22:02:36 +0800 Subject: [PATCH 1/3] chore: update version to 2.0.4 --- pyproject.toml | 2 +- src/memos/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3fbe4ced4..8dd1d90c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ ############################################################################## name = "MemoryOS" -version = "2.0.3" +version = "2.0.4" description = "Intelligence Begins with Memory" license = {text = "Apache-2.0"} readme = "README.md" diff --git a/src/memos/__init__.py b/src/memos/__init__.py index 3c764db79..2d946cfbb 100644 --- a/src/memos/__init__.py +++ b/src/memos/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.0.3" +__version__ = "2.0.4" from memos.configs.mem_cube import GeneralMemCubeConfig from memos.configs.mem_os import MOSConfig From 07b48571b20bb9d209738b92b72f933f4c2cdecb Mon Sep 17 00:00:00 2001 From: CaralHsi Date: Wed, 28 Jan 2026 15:22:42 +0800 Subject: [PATCH 2/3] fix: playground chat bug (#968) * feat: add timer for split text * feat: add chat_handler log * feat: add chat_handler log * fix: chat in playgound bug: use index in null list * chore: deprecated warning * fix: we don't use query when search in graph-db --- src/memos/api/handlers/chat_handler.py | 5 +++++ src/memos/mem_reader/multi_modal_struct.py | 7 ------- src/memos/mem_reader/read_multi_modal/base.py | 2 ++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/memos/api/handlers/chat_handler.py b/src/memos/api/handlers/chat_handler.py index 812cf2793..8292e027b 100644 --- a/src/memos/api/handlers/chat_handler.py +++ b/src/memos/api/handlers/chat_handler.py @@ -110,6 +110,7 @@ def handle_chat_complete(self, chat_req: APIChatCompleteRequest) -> dict[str, An Raises: HTTPException: If chat fails """ + self.logger.info(f"[ChatHandler] Chat Req is: {chat_req}") try: # Resolve readable cube IDs (for search) readable_cube_ids = chat_req.readable_cube_ids or [chat_req.user_id] @@ -241,6 +242,7 @@ def handle_chat_stream(self, chat_req: ChatRequest) -> StreamingResponse: Raises: HTTPException: If stream initialization fails """ + self.logger.info(f"[ChatHandler] Chat Req is: {chat_req}") try: def generate_chat_response() -> Generator[str, None, None]: @@ -422,6 +424,7 @@ def handle_chat_stream_playground(self, chat_req: ChatPlaygroundRequest) -> Stre Raises: HTTPException: If stream initialization fails """ + self.logger.info(f"[ChatHandler] Chat Req is: {chat_req}") try: def generate_chat_response() -> Generator[str, None, None]: @@ -585,6 +588,8 @@ def generate_chat_response() -> Generator[str, None, None]: # get internet reference internet_reference = self._get_internet_reference( search_response.data.get("text_mem")[0]["memories"] + if search_response.data.get("text_mem") + else [] ) yield f"data: {json.dumps({'type': 'reference', 'data': reference}, ensure_ascii=False)}\n\n" diff --git a/src/memos/mem_reader/multi_modal_struct.py b/src/memos/mem_reader/multi_modal_struct.py index 9edcd0a55..d61b20d0f 100644 --- a/src/memos/mem_reader/multi_modal_struct.py +++ b/src/memos/mem_reader/multi_modal_struct.py @@ -464,13 +464,6 @@ def _get_maybe_merged_memory( status="activated", threshold=merge_threshold, user_name=user_name, - filter={ - "or": [ - {"memory_type": "LongTermMemory"}, - {"memory_type": "UserMemory"}, - {"memory_type": "WorkingMemory"}, - ] - }, ) if not search_results: diff --git a/src/memos/mem_reader/read_multi_modal/base.py b/src/memos/mem_reader/read_multi_modal/base.py index 1a756c5d0..95d427864 100644 --- a/src/memos/mem_reader/read_multi_modal/base.py +++ b/src/memos/mem_reader/read_multi_modal/base.py @@ -15,6 +15,7 @@ TextualMemoryItem, TreeNodeTextualMemoryMetadata, ) +from memos.utils import timed from .utils import detect_lang, get_text_splitter @@ -245,6 +246,7 @@ def parse( else: raise ValueError(f"Unknown mode: {mode}. Must be 'fast' or 'fine'") + @timed def _split_text(self, text: str, is_markdown: bool = False) -> list[str]: """ Split text into chunks using text splitter from utils. From 07cfce240297901a55bb061521ffe366ad1fbbb5 Mon Sep 17 00:00:00 2001 From: harvey_xiang Date: Wed, 28 Jan 2026 20:04:52 +0800 Subject: [PATCH 3/3] chore: revert version to 2.0.3 --- pyproject.toml | 2 +- src/memos/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8dd1d90c6..3fbe4ced4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ ############################################################################## name = "MemoryOS" -version = "2.0.4" +version = "2.0.3" description = "Intelligence Begins with Memory" license = {text = "Apache-2.0"} readme = "README.md" diff --git a/src/memos/__init__.py b/src/memos/__init__.py index 2d946cfbb..3c764db79 100644 --- a/src/memos/__init__.py +++ b/src/memos/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.0.4" +__version__ = "2.0.3" from memos.configs.mem_cube import GeneralMemCubeConfig from memos.configs.mem_os import MOSConfig