From b86367e49697d26456a6b0c13bf8a938f44f8e8b Mon Sep 17 00:00:00 2001 From: Ethan <23321960+0xLeathery@users.noreply.github.com> Date: Fri, 3 Jul 2026 17:00:42 +1000 Subject: [PATCH] fix: signal lock-hold to callers when compression skips --- agent/conversation_compression.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/agent/conversation_compression.py b/agent/conversation_compression.py index b7b3af882804..8360b46e892f 100644 --- a/agent/conversation_compression.py +++ b/agent/conversation_compression.py @@ -1370,6 +1370,11 @@ def compress_context( _lock_sid, existing, ) _lock_holder = None # don't release a lock we don't own + # Signal to callers that this no-op is due to a concurrent lock, + # not a genuine "nothing to compress" or aux-model failure. + # Manual /compress callers can surface a clear status message + # instead of the misleading "No changes from compression" text. + agent._compression_skipped_due_to_lock = existing or True # Surface to the user once — quiet for downstream auto-compress loops if getattr(agent, "_last_compression_lock_warning_sid", None) != _lock_sid: agent._last_compression_lock_warning_sid = _lock_sid