hermes-agent/tests/tools
2751738943 54d0948d38 fix(tui): route post-turn completions by owner
Apply positive-proof routing to every addressed notification in the registry and TUI poller while preserving ownerless legacy behavior and TUI delivery for poll-observed completions.

Remove the unused exact-key drain helper and cover ordinary success and failure, origin, compression-lineage, orphan, and poll-observed paths.

Complements NousResearch/hermes-agent#54785.
2026-07-15 23:51:43 -07:00
..
__init__.py
…
conftest.py
…
test_accretion_caps.py
…
test_ansi_strip.py
…
test_approval.py fix(approval): scope smart deny owner overrides to one operation 2026-07-13 04:31:55 -07:00
test_approval_deny_rules.py feat(approvals): user-defined deny rules that block commands even under yolo (#59164) 2026-07-05 14:48:40 -07:00
test_approval_heartbeat.py
…
test_approval_interrupt.py fix(approval): honor canonical gateway timeout 2026-07-12 22:43:57 -07:00
test_approval_plugin_hooks.py test(approval): isolate smart observer redaction failure 2026-07-13 04:31:55 -07:00
test_approved_command_clean_slate.py fix(interrupt): run user-approved commands from a clean interrupt slate 2026-07-06 04:58:42 -07:00
test_async_delegation.py test: deflake async-delegation interrupt test under CI load (#64767) 2026-07-14 23:36:37 -07:00
test_base_environment.py fix(terminal): bound foreground output capture 2026-07-14 22:00:28 -07:00
test_blueprints.py
…
test_browser_camofox.py
…
test_browser_camofox_auth.py
…
test_browser_camofox_ensure_tab.py
…
test_browser_camofox_persistence.py
…
test_browser_camofox_private_page_guard.py fix(browser): block Camofox input on private pages 2026-07-03 03:27:47 -07:00
test_browser_camofox_state.py
…
test_browser_camofox_timeout.py
…
test_browser_cdp_override.py
…
test_browser_cdp_tool.py fix(browser): apply private-page guard to browser_cdp frame_id routing 2026-07-03 03:27:47 -07:00
test_browser_chromium_autoinstall.py
…
test_browser_chromium_check.py
…
test_browser_cleanup.py
…
test_browser_cloud_fallback.py
…
test_browser_cloud_provider_cache.py
…
test_browser_command_timeout_race.py
…
test_browser_console.py
…
test_browser_console_ssrf.py
…
test_browser_content_none_guard.py
…
test_browser_eval_ssrf.py
…
test_browser_eval_supervisor_path.py
…
test_browser_get_images_ssrf.py
…
test_browser_hardening.py
…
test_browser_homebrew_paths.py
…
test_browser_hybrid_routing.py
…
test_browser_lightpanda.py
…
test_browser_open_timeout.py
…
test_browser_orphan_reaper.py
…
test_browser_private_page_action_guard.py
…
test_browser_secret_exfil.py
…
test_browser_snapshot_ssrf.py
…
test_browser_ssrf_local.py
…
test_browser_supervisor.py
…
test_browser_supervisor_healthcheck.py
…
test_browser_type_redaction.py
…
test_budget_config.py
…
test_checkpoint_manager.py
…
test_clarify_gateway.py
…
test_clarify_tool.py
…
test_clipboard.py
…
test_code_execution.py
…
test_code_execution_modes.py
…
test_code_execution_windows_env.py
…
test_command_guards.py
…
test_computer_use.py fix(computer-use): target Linux app windows reliably (#63725) 2026-07-16 00:34:20 +05:30
test_computer_use_capture_routing.py
…
test_computer_use_null_pid_windows.py Fix computer-use crash on X11 windows with null PID 2026-07-04 02:37:33 -07:00
test_computer_use_vision_routing.py
…
test_config_null_guard.py fix(deepinfra): harden multimodal provider routing 2026-07-14 02:59:39 +05:30
test_container_cwd_sanitize.py
…
test_credential_files.py
…
test_credential_pool_env_fallback.py
…
test_cron_approval_mode.py
…
test_cron_prompt_injection.py
…
test_cronjob_run_immediate.py
…
test_cronjob_tools.py
…
test_cross_profile_guard.py
…
test_daemon_pool.py fix(cli): reliable interrupts, bounded exit, and exit feedback (#57000) 2026-07-02 04:20:43 -07:00
test_daytona_environment.py
…
test_debug_helpers.py
…
test_delegate.py fix(runtime): preserve resolved fork metadata 2026-07-10 18:50:28 +05:30
test_delegate_composite_toolsets.py
…
test_delegate_subagent_timeout_diagnostic.py
…
test_delegate_summary_budget.py
…
test_delegate_toolset_scope.py
…
test_discord_send_message_caption.py feat(gateway): attach MEDIA: caption to the media bubble on standalone sends 2026-07-09 15:38:32 +05:30
test_discord_tool.py fix(discord): bound REST response reads 2026-07-07 02:40:04 -07:00
test_docker_cgroup_limits.py
…
test_docker_config_migrate.py
…
test_docker_environment.py Revert "Merge pull request #30179 from NousResearch/feat/iron-proxy" 2026-07-04 13:38:59 -07:00
test_docker_find.py
…
test_docker_network_config.py fix(docker): widen docker_network to file/code-exec paths + guard container reuse 2026-07-05 14:41:51 -07:00
test_docker_orphan_reaper_integration.py
…
test_docker_rebootstrap_nous_session.py fix(auth): apply newer hosted bootstrap session (#64612) 2026-07-16 08:52:47 +10:00
test_dockerfile_immutable_install.py
…
test_dockerfile_node_modules_perms.py
…
test_dockerfile_pid1_reaping.py
…
test_env_passthrough.py
…
test_env_probe.py
…
test_execute_code_approval_cluster.py fix(approval): scope smart deny owner overrides to one operation 2026-07-13 04:31:55 -07:00
test_feishu_tools.py
…
test_file_operations.py fix(windows): bash-safe snapshot paths after #63113 2026-07-13 01:59:58 -04:00
test_file_operations_edge_cases.py
…
test_file_ops_cwd_tracking.py
…
test_file_read_guards.py fix: disclose mid-line clamp in truncation hint 2026-07-05 14:42:05 -07:00
test_file_staleness.py
…
test_file_state_registry.py
…
test_file_sync.py
…
test_file_sync_back.py
…
test_file_sync_perf.py
…
test_file_sync_sigint.py fix(file-sync): re-deliver deferred Ctrl+C via raise_signal, not os.kill (Windows hard-kill) 2026-07-06 01:55:58 -07:00
test_file_tools.py fix(tools): resolve MSYS paths in file tools on Windows 2026-07-10 01:54:51 -05:00
test_file_tools_container_config.py
…
test_file_tools_cwd_resolution.py fix(file-tools): preserve container paths for docker file ops (#56637) 2026-07-03 14:18:20 +10:00
test_file_tools_live.py
…
test_file_tools_tilde_profile.py
…
test_file_write_safety.py test(file-safety): add integration tests for safe-root denial messages 2026-07-14 17:09:40 +05:30
test_find_shell.py fix(windows): survive broken Git Bash login shells 2026-07-13 16:14:18 -04:00
test_force_dangerous_override.py
…
test_fuzzy_match.py
…
test_gateway_cwd_contract.py
…
test_gnu_long_option_abbreviation_bypass.py
…
test_hardline_blocklist.py fix(approval): require exact ./.. segments in the root-collapse hardline token (#56179) 2026-07-05 02:24:00 -07:00
test_heartbeat_stale_thresholds.py
…
test_hermes_subprocess_env.py
…
test_hidden_dir_filter.py
…
test_homeassistant_tool.py
…
test_hook_output_spill.py feat(hooks): spill oversized hook-injected context to disk (#20468) 2026-07-05 13:51:26 -07:00
test_image_generation.py
…
test_image_generation_artifacts.py
…
test_image_generation_env.py
…
test_image_generation_image_to_image.py
…
test_image_generation_plugin_dispatch.py fix(deepinfra): harden multimodal provider routing 2026-07-14 02:59:39 +05:30
test_image_source.py fix(vision): bound the sandbox exec-read at the ingest cap 2026-07-04 15:30:50 -07:00
test_init_session_cwd_respect.py
…
test_interrupt.py fix(interrupt): run user-approved commands from a clean interrupt slate 2026-07-06 04:58:42 -07:00
test_kanban_redaction.py
…
test_kanban_tools.py fix(kanban): harden durable artifact handoff 2026-07-12 23:09:41 -07:00
test_lazy_deps.py fix(update): skip unsupported Matrix refresh on Windows 2026-07-04 13:40:59 -07:00
test_lazy_deps_durable_target.py
…
test_line_ending_preservation.py
…
test_llm_content_none_guard.py
…
test_local_background_child_hang.py fix(terminal): make bounded capture opt-in for the foreground terminal path only 2026-07-14 22:00:28 -07:00
test_local_env_blocklist.py fix(terminal): stop stripping CLAUDE_CODE_OAUTH_TOKEN from spawned subprocesses (#56935) 2026-07-02 02:13:30 -07:00
test_local_env_cwd_recovery.py
…
test_local_env_session_leak.py
…
test_local_env_windows_msys.py fix(windows): put Git Bash coreutils on PATH for the non-login fallback 2026-07-13 20:00:38 -04:00
test_local_interrupt_cleanup.py
…
test_local_shell_init.py
…
test_local_tempdir.py
…
test_managed_browserbase_and_modal.py
…
test_managed_media_gateways.py fix(tts): coerce direct-only OpenAI model on the managed audio gateway 2026-07-03 05:30:16 -05:00
test_managed_modal_environment.py
…
test_managed_tool_gateway.py
…
test_mcp_cancelled_error_propagation.py
…
test_mcp_capability_gating.py
…
test_mcp_circuit_breaker.py Handle minimal MCP server fakes 2026-07-07 15:16:00 -07:00
test_mcp_client_cert.py
…
test_mcp_dynamic_discovery.py feat(mcp): adopt mcp__server__tool naming convention 2026-07-05 13:40:21 -07:00
test_mcp_elicitation.py
…
test_mcp_empty_error_message.py
…
test_mcp_image_content.py
…
test_mcp_invalid_url.py
…
test_mcp_loop_profile_override.py
…
test_mcp_oauth.py refactor(mcp): DRY the non-interactive OAuth guard + positive-control test 2026-07-04 14:10:33 +05:30
test_mcp_oauth_bidirectional.py
…
test_mcp_oauth_cold_load_expiry.py
…
test_mcp_oauth_integration.py
…
test_mcp_oauth_manager.py
…
test_mcp_oauth_metadata.py
…
test_mcp_parked_self_probe.py test(mcp): parked server self-probe revival + AUTHOR_MAP for #54139 salvage 2026-07-05 19:10:31 -07:00
test_mcp_preflight_content_type.py docs+test(mcp): document skip_preflight and cover the bypass with a test 2026-07-05 21:36:19 -07:00
test_mcp_probe.py
…
test_mcp_reconnect_retry_reset.py fix(mcp): reset reconnect retry counter after successful session establishment 2026-07-05 19:10:31 -07:00
test_mcp_reconnect_signal.py
…
test_mcp_register_wakes_stale.py fix(mcp): wake stale cached servers on session startup + AUTHOR_MAP 2026-07-05 21:48:36 -07:00
test_mcp_resource_content.py fix(mcp): use real wire name in ResourceLink marker + surface resource text in isError path 2026-07-14 13:59:38 -07:00
test_mcp_server_log_notifications.py feat(mcp): surface MCP server log notifications in agent.log (#57416) 2026-07-05 02:06:39 -07:00
test_mcp_sse_transport.py
…
test_mcp_stability.py fix(mcp): reap stdio orphans before reconnect 2026-07-07 15:16:00 -07:00
test_mcp_stdio_init_timeout.py fix(mcp): bound stdio initialize handshake to stop subprocess/FD leak 2026-07-07 15:16:00 -07:00
test_mcp_structured_content.py
…
test_mcp_tool.py test(mcp): unblock recycle-reconnect test from the parked self-probe wait 2026-07-07 15:16:00 -07:00
test_mcp_tool_401_handling.py
…
test_mcp_tool_issue_948.py fix(mcp): reap orphaned stdio MCP children on ungraceful parent death 2026-07-07 15:16:00 -07:00
test_mcp_tool_session_expired.py fix: reconnect stale MCP sessions before retry 2026-07-05 21:48:36 -07:00
test_mcp_utility_capability_gating.py
…
test_media_caption_split.py feat(gateway): attach MEDIA: caption to the media bubble on standalone sends 2026-07-09 15:38:32 +05:30
test_memory_tool.py fix: default memory null target to memory store (#46356) 2026-07-07 02:10:43 -07:00
test_memory_tool_import_fallback.py
…
test_memory_tool_schema.py
…
test_microsoft_graph_auth.py
…
test_microsoft_graph_client.py
…
test_modal_bulk_upload.py
…
test_modal_sandbox_fixes.py test: deflake CI and dev-machine flaky tests in bulk (11 tests, 10 files) (#61816) 2026-07-09 20:03:11 -07:00
test_modal_snapshot_isolation.py
…
test_notify_on_complete.py
…
test_osv_check.py
…
test_parse_env_var.py
…
test_patch_failure_tracking.py
…
test_patch_parser.py fix(patch): ignore inert context-only hunks (#63678) 2026-07-13 02:42:18 -07:00
test_pr_6656_regressions.py
…
test_process_registry.py fix(tui): route post-turn completions by owner 2026-07-15 23:51:43 -07:00
test_read_extract.py
…
test_read_loop_detection.py
…
test_refresh_agent_mcp_tools.py
…
test_registry.py fix(tools): enforce registry result contract (#61787) 2026-07-09 21:32:01 -07:00
test_request_tool_approval.py feat(plugins): pass approve rule keys to approval gate 2026-07-07 15:14:30 -07:00
test_resolve_path.py
…
test_restored_delegation_ownership.py fix(delegation): fail closed on restored completions + stamp CLI dispatch identity 2026-07-14 22:14:10 -07:00
test_schema_sanitizer.py fix(schema): preserve multi-type arrays as anyOf instead of dropping branches 2026-07-07 02:52:17 -07:00
test_search_budget_truncation.py
…
test_search_error_guard.py
…
test_search_hidden_dirs.py
…
test_send_message_missing_platforms.py
…
test_send_message_react.py
…
test_send_message_target_parse.py
…
test_send_message_telegram_proxy.py
…
test_send_message_tool.py feat(gateway): attach MEDIA: caption to the media bubble on standalone sends 2026-07-09 15:38:32 +05:30
test_session_search.py
…
test_shared_container_task_id.py
…
test_shell_bypass_denylist.py
…
test_signal_media.py
…
test_singularity_preflight.py
…
test_skill_bundle_provenance.py fix(skills): bind bundles to exact files and origins 2026-07-12 02:59:27 -07:00
test_skill_env_passthrough.py
…
test_skill_improvements.py
…
test_skill_manager_tool.py
…
test_skill_provenance.py
…
test_skill_size_limits.py
…
test_skill_usage.py
…
test_skill_view_path_check.py
…
test_skill_view_traversal.py
…
test_skills_ast_audit.py
…
test_skills_guard.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
test_skills_hub.py fix(skills): don't request Brotli for the centralized skills index 2026-07-05 22:21:05 -07:00
test_skills_hub_browse_sh.py
…
test_skills_hub_clawhub.py
…
test_skills_list_modified_diff.py
…
test_skills_sync.py
…
test_skills_tool.py
…
test_skills_tool_discovery_cache.py fix: return per-call copies from the skill-discovery cache 2026-07-09 15:38:14 +05:30
test_skills_tool_profile_scope.py fix(skills): resolve skills dir from active profile 2026-07-07 05:14:00 -07:00
test_slash_confirm.py
…
test_smart_approval_injection.py
…
test_spotify_client.py
…
test_ssh_bulk_upload.py
…
test_ssh_environment.py
…
test_stage2_hook_seed_one_symlinks.py
…
test_stage2_hook_symlink_chown.py
…
test_subprocess_stdin_guard.py
…
test_symlink_prefix_confusion.py
…
test_sync_back_backends.py
…
test_telegram_send_message_caption.py feat(gateway): attach MEDIA: caption to the media bubble on standalone sends 2026-07-09 15:38:32 +05:30
test_terminal_compound_background.py
…
test_terminal_config_env_sync.py
…
test_terminal_exit_semantics.py
…
test_terminal_foreground_timeout_cap.py
…
test_terminal_none_command_guard.py
…
test_terminal_output_transform_hook.py fix(terminal): bound foreground output capture 2026-07-14 22:00:28 -07:00
test_terminal_requirements.py
…
test_terminal_task_cwd.py test(terminal): expect bounded_capture=True in foreground execute kwargs 2026-07-14 22:00:28 -07:00
test_terminal_timeout_output.py
…
test_terminal_tool.py fix(ssh): preserve remote tilde cwd 2026-07-04 14:17:11 +05:30
test_terminal_tool_pty_fallback.py
…
test_terminal_tool_requirements.py
…
test_threaded_process_handle.py
…
test_threat_patterns.py
…
test_tirith_security.py
…
test_todo_tool.py
…
test_todo_tool_type_coercion.py
…
test_tool_backend_helpers.py
…
test_tool_output_limits.py
…
test_tool_result_storage.py
…
test_tool_search.py
…
test_transcription.py
…
test_transcription_command_providers.py
…
test_transcription_deepinfra.py feat(providers): Support DeepInfra as an LLM provider 2026-07-14 02:59:39 +05:30
test_transcription_dotenv_fallback.py
…
test_transcription_plugin_dispatch.py
…
test_transcription_tools.py
…
test_tts_command_providers.py fix(deepinfra): align refresh and TTS availability 2026-07-14 02:59:39 +05:30
test_tts_deepinfra.py fix(deepinfra): align refresh and TTS availability 2026-07-14 02:59:39 +05:30
test_tts_dotenv_fallback.py fix(deepinfra): align refresh and TTS availability 2026-07-14 02:59:39 +05:30
test_tts_gemini.py fix(gemini): restrict TTS client context to official host 2026-07-13 22:26:19 -07:00
test_tts_kittentts.py
…
test_tts_max_text_length.py
…
test_tts_mistral.py fix(deepinfra): align refresh and TTS availability 2026-07-14 02:59:39 +05:30
test_tts_opus_routing.py
…
test_tts_path_traversal.py
…
test_tts_piper.py fix(deepinfra): align refresh and TTS availability 2026-07-14 02:59:39 +05:30
test_tts_plugin_dispatch.py
…
test_tts_speed.py fix(tts): coerce direct-only OpenAI model on the managed audio gateway 2026-07-03 05:30:16 -05:00
test_tts_xai_speech_tags.py
…
test_url_safety.py fix: repair URL authority whitespace before web fetches (#46363) 2026-07-07 02:39:36 -07:00
test_video_analyze.py security(vision): route local-file inputs through the shared credential-read guard 2026-07-05 00:47:54 -07:00
test_video_generation_dispatch.py
…
test_video_generation_dynamic_schema.py feat(providers): Support DeepInfra as an LLM provider 2026-07-14 02:59:39 +05:30
test_video_generation_tool_surface_matrix.py
…
test_vision_native_fast_path.py fix(vision): address review — restore bare relative paths, remove dead code, async I/O 2026-07-04 15:30:50 -07:00
test_vision_tools.py security(vision): route local-file inputs through the shared credential-read guard 2026-07-05 00:47:54 -07:00
test_voice_cli_integration.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
test_voice_mode.py
…
test_watch_patterns.py
…
test_web_extract_robustness.py
…
test_web_providers.py fix(web): correct 'disabled plugin' diagnosis for web backends (#59573) 2026-07-06 04:38:17 -07:00
test_web_providers_brave_free.py
…
test_web_providers_ddgs.py
…
test_web_providers_searxng.py
…
test_web_providers_xai.py
…
test_web_tools_config.py fix(web): don't crash on a null web/backend config value 2026-07-09 20:28:44 -07:00
test_web_tools_dict_urls.py fix(web): preserve extract result input order 2026-07-10 19:14:06 +05:30
test_web_tools_tavily.py
…
test_web_tools_truncate.py
…
test_website_policy.py
…
test_whatsapp_send_message_media.py feat(gateway): attach MEDIA: caption to the media bubble on standalone sends 2026-07-09 15:38:32 +05:30
test_windows_compat.py
…
test_windows_native_support.py
…
test_write_approval.py test(tools): add unit tests for skill_gist 2026-07-08 06:17:56 -07:00
test_write_deny.py
…
test_write_file_syntax_gate.py fix(tools): make the YAML write gate syntax-only so multi-doc/tagged YAML isn't refused 2026-07-07 22:14:33 -07:00
test_x_search_tool.py
…
test_xai_http_storage.py
…
test_yolo_mode.py
…
test_zombie_process_cleanup.py
…