hermes-agent/tests
Teknium 5eeafc8d25 fix(security): cache OSV malware preflight verdicts and stop double component discovery (#75485)
Two amplifiers behind the 779K api.osv.dev DNS queries/16h report:

1. tools/osv_check.py: check_package_for_malware() hit OSV on EVERY
   call. MCP reconnect ladders, stdio recycles, and parked-server
   self-probes re-run the preflight for the same package on every spawn
   attempt, so a flapping server became a sustained OSV query/DNS
   stream. Verdicts (clean or blocked) are now cached for 1h
   (OSV_CHECK_CACHE_TTL to tune); network failures stay uncached so
   fail-open never masks a real advisory once connectivity returns.

2. hermes_cli/security_audit.py: cmd_security_audit() ran full
   component discovery twice per audit (_count_components + run_audit).
   Discovery now runs once via _discover_components() and run_audit()
   accepts the pre-discovered list.

Both regression tests fail against the previous code (verified via
sabotage run).
2026-08-01 10:47:20 -07:00
..
acp
acp_adapter fix(acp): serialize late MCP refresh with turn start + self-sufficient agent-build wait 2026-08-01 13:27:58 +05:30
agent refactor(compression): fold simplify-pass findings into feasibility skip 2026-08-01 16:00:52 +05:30
ci
cli fix(cli): dispatch /background inline instead of queuing it behind the turn 2026-07-31 22:35:12 -07:00
computer_use
conformance
cron
dashboard
docker
e2e
fakes
fixtures
gateway fix(gateway): use connector-owned no-clobber guard for relay thread rename + trace logs (#75912) 2026-08-01 09:28:31 -07:00
hermes_cli fix(security): cache OSV malware preflight verdicts and stop double component discovery (#75485) 2026-08-01 10:47:20 -07:00
hermes_state
honcho_plugin
integration
manual
monitoring
openviking_plugin
plugins fix(hindsight): create embedded profile env file owner-only (0600) 2026-07-31 22:39:34 -07:00
providers
run_agent fix(agent): reader/writer path roles in parallel batch planner — search_files no longer races batched writes 2026-08-01 10:46:25 -07:00
scripts fix(skills-hub): include owner in ClawHub source URLs and add retry on 429 (#51236) 2026-07-31 22:33:11 -07:00
secret_sources
skills fix(deps): repair Google transitive security floors (#72108) 2026-07-31 23:18:38 -07:00
state fix(state): heal session_model_usage PK unconditionally to restore token/cost accounting 2026-07-31 23:18:12 -07:00
stress
tools fix(security): cache OSV malware preflight verdicts and stop double component discovery (#75485) 2026-08-01 10:47:20 -07:00
tui_gateway fix(gateway): dedup model-switch markers so they don't accumulate in history 2026-08-01 14:20:38 +05:30
website fix(skills-hub): include owner in ClawHub source URLs and add retry on 429 (#51236) 2026-07-31 22:33:11 -07:00
__init__.py
conftest.py
run_interrupt_test.py
test_account_usage.py
test_atomic_replace_symlinks.py
test_audio_playback_guard.py
test_background_review_list_shapes.py
test_background_review_session_isolation.py
test_base_url_hostname.py
test_batch_runner_checkpoint.py
test_batch_runner_durability.py refactor: dedupe fallback warning per model, drive pool-cleanup tests through real run() 2026-08-01 15:05:05 +05:30
test_bitwarden_secrets.py
test_cli_manual_compress.py
test_cli_skin_integration.py
test_code_skew.py
test_command_secret_source.py
test_conftest_wal_gate.py
test_copilot_initiator.py
test_credential_file_permissions.py
test_ctx_halving_fix.py
test_delegate_cascade_49148.py
test_dispatch_session_id.py
test_empty_model_fallback.py
test_empty_session_hygiene.py
test_env_loader_applied_homes.py
test_env_loader_op_bootstrap.py
test_env_loader_secret_sources.py
test_evidence_store.py
test_fast_safe_load.py
test_fts_cjk_bigram.py
test_gateway_streaming_nested_config.py
test_get_tool_definitions_cache_isolation.py
test_hermes_bootstrap.py
test_hermes_constants.py
test_hermes_home_profile_warning.py
test_hermes_logging.py
test_hermes_state.py fix(gateway): scope session lists before limiting 2026-07-31 22:36:55 -07:00
test_hermes_state_compression_busy_retry.py fix(sessions): briefly wait out a live compression lock instead of killing the turn 2026-07-31 22:35:07 -07:00
test_hermes_state_compression_locks.py
test_hermes_state_readonly_preflight.py
test_hermes_state_wal_fallback.py
test_hermetic_side_effect_guards.py
test_honcho_client_concurrency.py
test_honcho_client_config.py
test_honcho_session_context.py
test_honcho_startup_fail_open.py
test_install_autostash_conflict_recovery.py
test_install_commit_pin_rollback.py
test_install_diverged_update.py
test_install_lockfile_churn.py
test_install_macos_launcher.py
test_install_no_initial_commit.py
test_install_ps1_ascii_only.py
test_install_ps1_native_stderr_eap.py
test_install_ps1_node_path_for_npm.py
test_install_ps1_python_fallback_venv.py
test_install_ps1_uv_powershell_host.py
test_install_ps1_web_server_syntax_probe.py
test_install_sh_acp_launcher.py fix(install): expose hermes-agent and hermes-acp launchers on PATH 2026-07-31 22:39:11 -07:00
test_install_sh_bootstrap_marker.py
test_install_sh_browser_install.py
test_install_sh_install_method_stamp.py
test_install_sh_node_global_prefix.py
test_install_sh_pythonpath_sanitization.py
test_install_sh_root_fhs_uv_python_path.py
test_install_sh_setup_wizard_tty_probe.py
test_install_sh_symlink_stomp.py
test_install_sh_termux_network_prereqs.py
test_install_unmerged_index.py
test_ipv4_preference.py
test_iron_proxy.py
test_iron_proxy_cli.py
test_iron_proxy_e2e.py
test_journal_mode_config.py
test_lazy_session_regressions.py
test_live_system_guard.py
test_live_system_guard_self_test.py
test_log_isolation.py
test_mcp_serve.py fix(mcp): avoid replaying historical events on startup (#13414) 2026-08-01 13:13:30 +05:30
test_message_reactions.py
test_mini_swe_runner.py
test_minimax_model_validation.py
test_minimax_oauth.py
test_minisweagent_path.py
test_model_forces_max_completion_tokens.py
test_model_picker_scroll.py
test_model_tools.py
test_model_tools_async_bridge.py
test_no_shadowed_test_definitions.py test: restore four silently shadowed definitions and guard against more 2026-07-31 22:35:16 -07:00
test_ollama_num_ctx.py
test_onepassword_secrets.py
test_output_cap_parsing.py
test_packaging_build_guard.py
test_packaging_metadata.py
test_plugin_skills.py
test_plugin_utils.py
test_process_loop_event_loop_warning.py
test_profile_isolation_runtime.py
test_project_metadata.py
test_pty_keepalive_ws.py
test_pty_session.py
test_retry_utils.py
test_run_tests_parallel.py
test_run_tests_parallel_stdio.py
test_sanitize_tool_error.py
test_search_slow_query_log.py
test_session_db_read_path_split.py
test_session_skill_previews.py
test_session_workspace_binding.py
test_slack_thread_require_mention.py
test_slash_worker_watchdog.py
test_sql_injection.py
test_sqlite_lock_safe_inspection.py fix(cli): untrack sqlite connections only after close succeeds 2026-07-31 23:18:12 -07:00
test_sqlite_wal_reset_gate.py
test_stale_utils_module_import.py
test_state_db_malformed_repair.py
test_subprocess_home_isolation.py
test_telegram_polling_progress_ptb.py
test_termux_all_extra_compat.py
test_timezone.py
test_tini_shim.py
test_toolset_distributions.py
test_toolsets.py
test_trajectory_compressor.py
test_trajectory_compressor_async.py
test_transform_llm_output_hook.py
test_transform_tool_result_hook.py
test_tui_entry_mcp_owner.py
test_tui_gateway_loop_noise.py
test_tui_gateway_queue_on_busy.py fix(tui): preserve queued image ownership 2026-08-01 15:58:42 +05:30
test_tui_gateway_server.py fix(tui): preserve queued image ownership 2026-08-01 15:58:42 +05:30
test_tui_gateway_ws.py
test_tui_mcp_late_refresh.py
test_utils_truthy_values.py
test_voice_max_recording_seconds.py
test_wal_checkpoint_strategy.py
test_web_server.py
test_web_server_sessiondb_eventloop.py
test_windows_subprocess_no_window_flags.py
test_yaml_indent_consistency_31999.py
test_yuanbao_integration.py
test_yuanbao_markdown.py
test_yuanbao_pipeline.py
test_yuanbao_proto.py
test_yuanbao_reconnect_set_active.py
test_yuanbao_shutdown.py
test_zeroed_state_db.py