fix(approval): wake blocked gateway approvals on session cleanup

This commit is contained in:
Yukipukii1
2026-04-30 20:47:37 +03:00
committed by Teknium
parent f4ba97ad9a
commit 5f3f456784
3 changed files with 53 additions and 3 deletions

View File

@@ -400,8 +400,8 @@ def unregister_gateway_notify(session_key: str) -> None:
with _lock:
_gateway_notify_cbs.pop(session_key, None)
entries = _gateway_queues.pop(session_key, [])
for entry in entries:
entry.event.set()
for entry in entries:
entry.event.set()
def resolve_gateway_approval(session_key: str, choice: str,
@@ -475,7 +475,12 @@ def clear_session(session_key: str) -> None:
_session_approved.pop(session_key, None)
_session_yolo.discard(session_key)
_pending.pop(session_key, None)
_gateway_queues.pop(session_key, None)
entries = _gateway_queues.pop(session_key, [])
for entry in entries:
# Session-boundary cleanup should cancel any blocked approval waits
# immediately so the old run can unwind instead of idling until timeout.
entry.result = "deny"
entry.event.set()
def is_session_yolo_enabled(session_key: str) -> bool: