Skip to content

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery#1333

Merged
teknium1 merged 2 commits into
mainfrom
hermes/hermes-1fc28d17
Mar 14, 2026
Merged

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery#1333
teknium1 merged 2 commits into
mainfrom
hermes/hermes-1fc28d17

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

  • salvage the substantive browser cleanup and screenshot recovery changes from Improve browser cleanup, local browser PATH setup, and screenshot recovery #1001 onto current main
  • unify browser teardown so manual close, inactivity cleanup, and emergency cleanup share the same cleanup path
  • prefer the Hermes-managed Node binary for local agent-browser runs while keeping standard system PATH entries available
  • recover real screenshot paths from non-JSON agent-browser output, request full-page screenshots, and honor the actual screenshot path returned by the CLI
  • add regression coverage for cleanup bookkeeping and screenshot path recovery

Test plan

  • python -m pytest tests/tools/test_browser_cleanup.py tests/tools/test_browser_console.py tests/gateway/test_send_image_file.py -n0 -q
  • python -m pytest tests/ -n0 -q
  • python -m hermes_cli.main chat -q "Reply with OK."

davetist and others added 2 commits March 14, 2026 11:28
Unify browser session teardown so manual close, inactivity cleanup, and emergency shutdown all follow the same cleanup path instead of partially duplicating logic.

This changes browser_close() to delegate to cleanup_browser(), which means recording shutdown, Browserbase release, activity bookkeeping cleanup, and local socket-directory removal now happen consistently. It also updates emergency cleanup to route through cleanup_all_browsers() and explicitly clear in-memory tracking state after teardown so stale active-session, last-activity, and recording entries are not left behind on exit.

The screenshot fallback path has also been fixed. _extract_screenshot_path_from_text() now matches real absolute PNG paths, including quoted output, so browser_vision() can recover screenshots when agent-browser emits human-readable text instead of JSON.

Regression coverage was added in tests/tools/test_browser_cleanup.py for screenshot path extraction, cleanup_browser() state removal, browser_close() delegation, and emergency cleanup state clearing.

Verified with:
- python -m pytest tests/tools/test_browser_cleanup.py -q
- python -m pytest tests/tools/test_browser_console.py tests/gateway/test_send_image_file.py -q
Resolve the cherry-pick against current browser_tool structure without carrying unrelated formatting churn, while preserving the intended cleanup, PATH, and screenshot recovery changes from PR #1001.
@teknium1 teknium1 merged commit 80a243e into main Mar 14, 2026
1 check passed
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…1fc28d17

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…1fc28d17

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…1fc28d17

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…1fc28d17

fix: improve browser cleanup, local browser PATH setup, and screenshot recovery
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants