From 5e18d4d097d683056174b3c8b270806326e7ee96 Mon Sep 17 00:00:00 2001 From: Omer Tuchfeld Date: Tue, 22 Jul 2025 19:24:51 +0200 Subject: [PATCH] fix(agent): ensure turns are sorted (#2854) # What does this PR do? Ensures that session turns retrieved from the agent persistence layer are sorted by their `started_at` timestamp, as the key-value store does not guarantee order. Closes #2852 ## Test Plan - [ ] Add unit tests --- .../providers/inline/agents/meta_reference/persistence.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/llama_stack/providers/inline/agents/meta_reference/persistence.py b/llama_stack/providers/inline/agents/meta_reference/persistence.py index cda535937..437d617ad 100644 --- a/llama_stack/providers/inline/agents/meta_reference/persistence.py +++ b/llama_stack/providers/inline/agents/meta_reference/persistence.py @@ -128,6 +128,11 @@ class AgentPersistence: except Exception as e: log.error(f"Error parsing turn: {e}") continue + + # The kvstore does not guarantee order, so we sort by started_at + # to ensure consistent ordering of turns. + turns.sort(key=lambda t: t.started_at) + return turns async def get_session_turn(self, session_id: str, turn_id: str) -> Turn | None: