hermes-agent/tools
Teknium 92ad7cc62c
fix(browser): recover from CDP DOM-node serialization crash in browser_console (#35385)
browser_console(expression="document.body") returned the cryptic CDP error
"Object reference chain is too long" instead of a usable result.

With returnByValue=true, Chrome deep-serializes the eval result; for a live
DOM Node/NodeList/Window that serialization overruns CDP's recursion guard
and fails the whole call with a protocol-level error (not a JS exception),
which _browser_eval surfaced raw.

- browser_supervisor.evaluate_runtime: on that specific error, retry once
  with returnByValue=false so Chrome returns the node's description string —
  the same graceful path already used for document.querySelector() results.
- browser_tool._browser_eval (CLI subprocess fallback): the subprocess can't
  retry, so convert the reference-chain error into actionable guidance
  (extract a primitive / use JSON.stringify) instead of leaking it raw.

No expression rewriting — normal evals (1+41 -> 42) are untouched.
2026-05-30 07:31:25 -07:00
..
computer_use
…
environments
…
neutts_samples
…
__init__.py
…
ansi_strip.py
…
approval.py
…
binary_extensions.py
…
browser_camofox.py
…
browser_camofox_state.py
…
browser_cdp_tool.py
…
browser_dialog_tool.py
…
browser_supervisor.py fix(browser): recover from CDP DOM-node serialization crash in browser_console (#35385) 2026-05-30 07:31:25 -07:00
browser_tool.py fix(browser): recover from CDP DOM-node serialization crash in browser_console (#35385) 2026-05-30 07:31:25 -07:00
budget_config.py
…
checkpoint_manager.py
…
clarify_gateway.py
…
clarify_tool.py
…
code_execution_tool.py
…
computer_use_tool.py
…
credential_files.py
…
cronjob_tools.py
…
debug_helpers.py
…
delegate_tool.py
…
discord_tool.py
…
env_passthrough.py
…
env_probe.py
…
fal_common.py
…
feishu_doc_tool.py
…
feishu_drive_tool.py
…
file_operations.py perf(read_file): compact line-number gutter — ~14% fewer tokens per read (#35368) 2026-05-30 07:01:22 -07:00
file_state.py
…
file_tools.py
…
fuzzy_match.py
…
homeassistant_tool.py
…
image_generation_tool.py
…
interrupt.py
…
kanban_tools.py
…
lazy_deps.py
…
managed_tool_gateway.py
…
mcp_oauth.py
…
mcp_oauth_manager.py
…
mcp_tool.py fix(mcp): reap stdio MCP grandchildren via process-group signal 2026-05-30 02:08:29 -07:00
memory_tool.py
…
microsoft_graph_auth.py
…
microsoft_graph_client.py
…
mixture_of_agents_tool.py
…
neutts_synth.py
…
openrouter_client.py
…
osv_check.py
…
patch_parser.py
…
path_security.py
…
process_registry.py
…
registry.py
…
schema_sanitizer.py
…
send_message_tool.py fix(tools): point email home-channel error at EMAIL_HOME_ADDRESS 2026-05-30 02:39:08 -07:00
session_search_tool.py
…
skill_manager_tool.py
…
skill_provenance.py
…
skill_usage.py
…
skills_ast_audit.py
…
skills_guard.py
…
skills_hub.py
…
skills_sync.py fix(skills): make _rmtree_writable handle read-only directories, not just files 2026-05-30 02:05:10 -07:00
skills_tool.py
…
slash_confirm.py
…
terminal_tool.py
…
thread_context.py
…
threat_patterns.py
…
tirith_security.py
…
todo_tool.py
…
tool_backend_helpers.py
…
tool_output_limits.py
…
tool_result_storage.py
…
tool_search.py
…
transcription_tools.py
…
tts_tool.py
…
url_safety.py
…
video_generation_tool.py
…
vision_tools.py
…
voice_mode.py
…
web_tools.py
…
website_policy.py
…
x_search_tool.py
…
xai_http.py
…
yuanbao_tools.py
…