From 49d8c9557f143bcde2695f5dfb666532e7100fea Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Thu, 9 Apr 2026 14:54:07 -0700 Subject: [PATCH] fix: cleanup_all_camofox_sessions respects managed persistence (#6820) When managed_persistence is enabled, cleanup_all now only clears local tracking state without sending DELETE requests to the Camofox server. This prevents persistent browser profiles (cookies, logins, localStorage) from being destroyed during process-wide cleanup. Ephemeral sessions still get full server-side deletion as before. --- tools/browser_camofox.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tools/browser_camofox.py b/tools/browser_camofox.py index 3a305bbcb10..d0e268a4da5 100644 --- a/tools/browser_camofox.py +++ b/tools/browser_camofox.py @@ -594,13 +594,20 @@ def camofox_console(clear: bool = False, task_id: Optional[str] = None) -> str: # --------------------------------------------------------------------------- def cleanup_all_camofox_sessions() -> None: - """Close all active camofox sessions.""" + """Close all active camofox sessions. + + When managed persistence is enabled, only clears local tracking state + without destroying server-side browser profiles (cookies, logins, etc. + must survive). Ephemeral sessions are fully deleted on the server. + """ + managed = _managed_persistence_enabled() with _sessions_lock: sessions = list(_sessions.items()) - for task_id, session in sessions: - try: - _delete(f"/sessions/{session['user_id']}") - except Exception: - pass + if not managed: + for _task_id, session in sessions: + try: + _delete(f"/sessions/{session['user_id']}") + except Exception: + pass with _sessions_lock: _sessions.clear()