fix: capture pending_user_turn before _restore_runtime_checkpoint clears it
Test Suite / Detect changes (push) Has been cancelled
Test Suite / Python (Windows, 3.14) (push) Has been cancelled
Test Suite / Python (minimum, 3.11) (push) Has been cancelled
Test Suite / Python (latest, 3.14 + coverage) (push) Has been cancelled
Test Suite / webui (push) Has been cancelled
Test Suite / docker (push) Has been cancelled
Test Suite / Detect changes (push) Has been cancelled
Test Suite / Python (Windows, 3.14) (push) Has been cancelled
Test Suite / Python (minimum, 3.11) (push) Has been cancelled
Test Suite / Python (latest, 3.14 + coverage) (push) Has been cancelled
Test Suite / webui (push) Has been cancelled
Test Suite / docker (push) Has been cancelled
_restore_runtime_checkpoint() clears both the runtime_checkpoint and pending_user_turn flags (lines 1966-1967). recover_stale_sessions() checked had_pending AFTER calling it, so had_pending was always False when a checkpoint existed. This meant the re-publish of the last user message never happened — the user got a notification but the interrupted turn was never re-triggered.
This commit is contained in:
@@ -2063,7 +2063,12 @@ class AgentLoop:
|
||||
try:
|
||||
session = self.sessions.get_or_create(key)
|
||||
changed = False
|
||||
had_pending = False
|
||||
# Capture pending flag before _restore_runtime_checkpoint
|
||||
# clears it (it clears both checkpoint and pending_turn at
|
||||
# lines 1966-1967).
|
||||
had_pending = bool(
|
||||
session.metadata.get(self._PENDING_USER_TURN_KEY)
|
||||
)
|
||||
if self._restore_runtime_checkpoint(session):
|
||||
changed = True
|
||||
if self._restore_pending_user_turn(session):
|
||||
|
||||
Reference in New Issue
Block a user