mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-07 02:51:50 +00:00
fix: restore approval session cleanup
This commit is contained in:
parent
d631431872
commit
60b088ce6f
2 changed files with 19 additions and 0 deletions
|
|
@ -73,6 +73,7 @@ def _clear_approval_state():
|
||||||
mod._gateway_queues.clear()
|
mod._gateway_queues.clear()
|
||||||
mod._gateway_notify_cbs.clear()
|
mod._gateway_notify_cbs.clear()
|
||||||
mod._session_approved.clear()
|
mod._session_approved.clear()
|
||||||
|
mod._session_yolo.clear()
|
||||||
mod._permanent_approved.clear()
|
mod._permanent_approved.clear()
|
||||||
mod._pending.clear()
|
mod._pending.clear()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -297,6 +297,24 @@ def approve_session(session_key: str, pattern_key: str):
|
||||||
_session_approved.setdefault(session_key, set()).add(pattern_key)
|
_session_approved.setdefault(session_key, set()).add(pattern_key)
|
||||||
|
|
||||||
|
|
||||||
|
def clear_session(session_key: str) -> None:
|
||||||
|
"""Clear all in-memory approval state for a session key.
|
||||||
|
|
||||||
|
Safe to call even when the session has no tracked approval state.
|
||||||
|
Any blocked gateway approvals for the session are unblocked.
|
||||||
|
"""
|
||||||
|
if not session_key:
|
||||||
|
return
|
||||||
|
with _lock:
|
||||||
|
_pending.pop(session_key, None)
|
||||||
|
_session_approved.pop(session_key, None)
|
||||||
|
_session_yolo.discard(session_key)
|
||||||
|
_gateway_notify_cbs.pop(session_key, None)
|
||||||
|
entries = _gateway_queues.pop(session_key, [])
|
||||||
|
for entry in entries:
|
||||||
|
entry.event.set()
|
||||||
|
|
||||||
|
|
||||||
def enable_session_yolo(session_key: str) -> None:
|
def enable_session_yolo(session_key: str) -> None:
|
||||||
"""Enable YOLO bypass for a single session key."""
|
"""Enable YOLO bypass for a single session key."""
|
||||||
if not session_key:
|
if not session_key:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue