mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
perf(browser): upgrade agent-browser 0.13 -> 0.26, wire daemon idle timeout
Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of daemon reliability fixes: - Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (#1098) - Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (#1157) - Orphaned Chrome processes via process-group kill on shutdown (#1137) - Stale daemon after upgrade via .version sidecar and auto-restart (#1134) - Idle timeout not firing (sleep future recreated each loop) (#1110) - Navigation hanging on lifecycle events that never fire (#1059, #1092) - CDP attach hang on Chrome 144+ (#1133) - Windows daemon TCP bind with Hyper-V port conflicts (#1041) - Shadow DOM traversal in accessibility tree snapshots - doctor command for user self-diagnosis Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess environment so the daemon self-terminates after our configured inactivity timeout (default 300s). This is the daemon-side counterpart to the Python-side inactivity reaper — the daemon kills itself and its Chrome children when no commands arrive, preventing orphan accumulation even when the Python process dies without running atexit handlers. Addresses #7343 (daemon socket hangs, shadow DOM) and #13793 (orphan accumulation from force-killed sessions).
This commit is contained in:
parent
bc5da42b2c
commit
81fe89aca2
3 changed files with 15 additions and 3349 deletions
3351
package-lock.json
generated
3351
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -16,8 +16,8 @@
|
|||
},
|
||||
"homepage": "https://github.com/NousResearch/Hermes-Agent#readme",
|
||||
"dependencies": {
|
||||
"agent-browser": "^0.13.0",
|
||||
"@askjo/camofox-browser": "^1.5.2"
|
||||
"@askjo/camofox-browser": "^1.5.2",
|
||||
"agent-browser": "^0.26.0"
|
||||
},
|
||||
"overrides": {
|
||||
"lodash": "4.18.1"
|
||||
|
|
|
|||
|
|
@ -1182,6 +1182,15 @@ def _run_browser_command(
|
|||
# used during CLI discovery.
|
||||
browser_env["PATH"] = _merge_browser_path(browser_env.get("PATH", ""))
|
||||
browser_env["AGENT_BROWSER_SOCKET_DIR"] = task_socket_dir
|
||||
|
||||
# Tell the agent-browser daemon to self-terminate after being idle
|
||||
# for our configured inactivity timeout. This is the daemon-side
|
||||
# counterpart to our Python-side _cleanup_inactive_browser_sessions
|
||||
# — the daemon kills itself and its Chrome children when no CLI
|
||||
# commands arrive within the window. Added in agent-browser 0.24.
|
||||
if "AGENT_BROWSER_IDLE_TIMEOUT_MS" not in browser_env:
|
||||
idle_ms = str(BROWSER_SESSION_INACTIVITY_TIMEOUT * 1000)
|
||||
browser_env["AGENT_BROWSER_IDLE_TIMEOUT_MS"] = idle_ms
|
||||
|
||||
# Use temp files for stdout/stderr instead of pipes.
|
||||
# agent-browser starts a background daemon that inherits file
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue