From 8fa9eed6a885ac94005013a2fd55ef56dd058638 Mon Sep 17 00:00:00 2001 From: axelray-dev <110029405+axelray-dev@users.noreply.github.com> Date: Mon, 29 Jun 2026 01:13:44 +0800 Subject: [PATCH] refactor(session): trim RetentionResult to only fields callers read Remove retained and new_last_consolidated from RetentionResult. Both were populated but never read by any caller. The authoritative state remains self.messages and self.last_consolidated, which the method mutates in place. Update docstring accordingly. --- nanobot/session/manager.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/nanobot/session/manager.py b/nanobot/session/manager.py index b6e80c5c..533b5c9c 100644 --- a/nanobot/session/manager.py +++ b/nanobot/session/manager.py @@ -112,10 +112,8 @@ def _metadata_title(metadata: Any) -> str: @dataclass class RetentionResult: - retained: list[dict] dropped: list[dict] already_consolidated_count: int - new_last_consolidated: int @dataclass @@ -300,25 +298,22 @@ class Session: ) -> RetentionResult: """Keep a legal recent suffix, optionally extending it back to a user turn. - Returns a RetentionResult describing retained messages, removed messages, - and how the last_consolidated cursor changed. + Returns a RetentionResult with dropped messages and how many of those + were in the already-consolidated prefix. This method mutates + self.messages and self.last_consolidated in place. """ if max_messages <= 0: dropped = list(self.messages) lc = self.last_consolidated self.clear() return RetentionResult( - retained=self.messages, dropped=dropped, already_consolidated_count=min(lc, len(dropped)), - new_last_consolidated=self.last_consolidated, ) if len(self.messages) <= max_messages: return RetentionResult( - retained=self.messages, dropped=[], already_consolidated_count=0, - new_last_consolidated=self.last_consolidated, ) original = list(self.messages) @@ -386,10 +381,8 @@ class Session: self.last_consolidated = new_lc self.updated_at = datetime.now() return RetentionResult( - retained=retained, dropped=dropped, already_consolidated_count=already_consolidated, - new_last_consolidated=new_lc, ) def enforce_file_cap(