hermes-agent/tests
ethernet ee7c614eef fix(ci): follow artifact download redirect without auth
The artifact download URL returns a 302 redirect to a signed blob URL.
urllib sent the Authorization header to the blob, and the blob rejected it
with a 401 error. The download now has two hops. The first hop authenticates
to the API. The second hop follows the redirect without the auth header.

The query runs?event=workflow_call returns nothing for this repository.
GitHub flattens reusable-workflow jobs and their artifacts into the caller
run. The fetch now lists the artifacts on the orchestrator run only. The
dead sub-run enumeration is gone. Two API calls per cycle are gone with it.

The 'artifact statuses updated' reason never appeared. The code updated the
count before the comparison. Now the code compares first and updates after.

The code rejects zip members that contain '..' or start with '/'.

tests/ci/test_live_comment.py is deleted. This repository does not keep
tests for CI infrastructure.
2026-08-05 11:16:18 -04:00
..
acp fix(approval): classify CLI/TUI approval timeouts separately from explicit denials 2026-08-02 20:21:59 -07:00
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 fix(cache): scope prompt_cache_key by session to stop cross-session bucket sharing 2026-08-05 12:42:46 +05:30
ci fix(ci): follow artifact download redirect without auth 2026-08-05 11:16:18 -04:00
cli fix(cli): persist YOLO mode across --resume 2026-08-02 20:30:06 -07:00
computer_use Merge remote-tracking branch 'origin/main' into tests/prune-low-value 2026-07-29 14:12:25 -07:00
conformance test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
cron fix: join heartbeat thread in finally + add error-path test 2026-08-05 14:00:25 +05:30
dashboard test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
docker fix(docker): update runtime tests and docs for the entrypoint dispatcher 2026-08-01 10:52:34 -07:00
e2e test(relay): gate native Anthropic streaming in e2e 2026-07-28 08:25:25 -07:00
fakes
…
fixtures feat(computer_use): align cua-driver 0.9 contracts 2026-07-29 12:19:37 -07:00
gateway Discord drops an empty outbound message instead of sending it (#78815) 2026-08-04 18:23:04 +00:00
hermes_cli fix(terminal): skip binary content on the referenced-script remote-read fallback (#77703) 2026-08-05 20:34:59 +05:30
hermes_state fix(state): stop delegate/tool children corrupting compression lineage 2026-08-05 13:50:26 +05:30
honcho_plugin refactor(memory): single shared trivial-prompt classifier + gate tests 2026-08-03 17:53:55 +05:30
install test(install): prove updating from a release reaches this commit 2026-08-04 17:36:26 -04:00
integration
…
manual
…
monitoring test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
openviking_plugin fix(openviking): integrate reliability and configuration hardening 2026-08-03 20:35:47 +05:30
plugins Merge branch 'main' into feat/hermes-relay-model-metrics 2026-08-04 12:07:51 -04:00
providers fix(cache): scope prompt_cache_key by session to stop cross-session bucket sharing 2026-08-05 12:42:46 +05:30
run_agent fix(agent): prevent historical steer replay 2026-08-05 13:00:47 +05:30
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 fix(gateway): hydrate cold profile secret sources 2026-08-02 00:11:50 -07:00
skills fix(skills): match evidence quotes through markdown markup 2026-08-02 16:18:28 -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(delegation): keep subagents alive during slow model waits 2026-08-05 14:00:25 +05:30
tui_gateway test(tui): pin picker-cache prewarm wiring in entry.main() 2026-08-04 12:28:05 +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 perf(moa): cache resolved preset + per-slot runtime to cut cold-start latency (#66793) 2026-08-03 22:43:15 +05:30
run_interrupt_test.py
…
test_account_usage.py
…
test_atomic_replace_symlinks.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_audio_playback_guard.py fix(tests): stop the test suite speaking aloud and launching a browser 2026-07-28 14:07:21 -07:00
test_background_review_list_shapes.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_background_review_session_isolation.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_base_url_hostname.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_batch_runner_checkpoint.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_cli_manual_compress.py
…
test_cli_skin_integration.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_code_skew.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_command_secret_source.py fix(gateway): hydrate cold profile secret sources 2026-08-02 00:11:50 -07:00
test_conftest_wal_gate.py
…
test_copilot_initiator.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_credential_file_permissions.py
…
test_ctx_halving_fix.py fix(tests): eliminate flaky/broken tests — shadow sys.path inserts, unmocked network in compressor tests, stale-SDK feishu pin guard, quadratic redact regexes 2026-07-29 15:12:28 -07:00
test_delegate_cascade_49148.py
…
test_dispatch_session_id.py
…
test_empty_model_fallback.py feat(models): add qwen3.8-max to Nous portal + OpenRouter catalogs, replacing qwen3.7-max 2026-08-03 17:19:49 -07:00
test_empty_session_hygiene.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_engines_satisfiable.py fix(install): sync the lockfile engines mirrors with the manifests 2026-08-01 23:28:28 -05:00
test_env_loader_applied_homes.py
…
test_env_loader_op_bootstrap.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_env_loader_secret_sources.py fix(env): seed .op.env bootstrap into cold-profile hydration 2026-08-02 00:11:50 -07:00
test_evidence_store.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_fast_safe_load.py
…
test_fts_cjk_bigram.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_fts_update_of_narrowing.py fix(state): quarantine CJK when ensure soft-fails after OF migration 2026-08-03 20:30:32 +05:30
test_gateway_streaming_nested_config.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_get_tool_definitions_cache_isolation.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_bootstrap.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_constants.py fix(install): restore installs — engines floor no shipping toolchain can meet 2026-08-01 22:56:52 -05:00
test_hermes_home_profile_warning.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_logging.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_state.py test(session): guard config-gated performance PRAGMAs across all connection types 2026-08-03 20:28:35 +05:30
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_state_readonly_preflight.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_hermes_state_wal_fallback.py fix(state): reconcile salvaged WAL fixes with current main 2026-07-29 18:13:09 -07:00
test_hermetic_side_effect_guards.py test: guard browser and Keychain side effects suite-wide (#35404) 2026-07-29 18:55:10 -07:00
test_honcho_client_concurrency.py
…
test_honcho_client_config.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_honcho_session_context.py
…
test_honcho_startup_fail_open.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_install_autostash_conflict_recovery.py
…
test_install_commit_pin_rollback.py fix(installer): never let a stale --commit pin roll an install backwards 2026-07-29 17:35:16 -05:00
test_install_diverged_update.py
…
test_install_lockfile_churn.py
…
test_install_macos_launcher.py fix(install): avoid realpath-dependent uv launcher on macOS 2026-07-26 19:30:32 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_iron_proxy.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_iron_proxy_cli.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_iron_proxy_e2e.py
…
test_journal_mode_config.py fix(state): make journal mode canonical and behaviorally verified 2026-07-29 18:13:09 -07:00
test_lazy_session_regressions.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_live_system_guard.py test(tui_gateway): make the tui gateway suite order-independent 2026-07-29 21:30:53 -07:00
test_live_system_guard_self_test.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_log_isolation.py fix(tests): stop the suite writing into the operator's real Hermes logs 2026-07-29 19:53:17 -07:00
test_managed_runtime_resolution.py fix(runtime): resolve Hermes-managed Node and uv before bare PATH 2026-08-01 21:17:51 -04:00
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 fix(state): make _row_id opt-in per consumer instead of universal 2026-07-30 00:08:28 -05:00
test_mini_swe_runner.py
…
test_minimax_model_validation.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_minimax_oauth.py fix(minimax-oauth): read streamed error bodies inside the client context + real-transport tests 2026-08-03 17:38:13 +05:30
test_minisweagent_path.py
…
test_model_forces_max_completion_tokens.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_model_picker_scroll.py fix(tests): eliminate flaky/broken tests — shadow sys.path inserts, unmocked network in compressor tests, stale-SDK feishu pin guard, quadratic redact regexes 2026-07-29 15:12:28 -07:00
test_model_tools.py Merge updated model metrics into tool metrics 2026-07-31 07:18:02 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_onepassword_secrets.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_output_cap_parsing.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_packaging_build_guard.py
…
test_packaging_metadata.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_plugin_skills.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_plugin_utils.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_process_loop_event_loop_warning.py
…
test_profile_isolation_runtime.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_project_metadata.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
test_pty_keepalive_ws.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_pty_session.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_retry_utils.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_run_tests_parallel.py fix(test-runner): native Windows venv probe + glyph-safe stdio 2026-07-29 21:30:53 -07:00
test_run_tests_parallel_stdio.py fix(test-runner): native Windows venv probe + glyph-safe stdio 2026-07-29 21:30:53 -07:00
test_sanitize_tool_error.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_search_slow_query_log.py
…
test_secret_scope_plugin_families.py fix(secrets): resolve google_meet realtime key via secret scope at spawn time 2026-08-02 10:04:48 -07:00
test_session_db_read_path_split.py fix(state): route session-resume reads through the WAL read-only connection 2026-08-03 21:02:11 +05:30
test_session_skill_previews.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_session_system_prompt_dedup.py fix(state): deduplicate session system prompts 2026-08-03 20:37:17 +05:30
test_session_vacuum_config.py fix(state): make VACUUM interval configurable 2026-08-02 21:32:13 +05:30
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_stale_tool_call_marker_session_repair.py fix(cli): back up state.db before clean-markers writes by default 2026-08-04 11:26:15 +05:30
test_stale_utils_module_import.py
…
test_state_db_malformed_repair.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_subprocess_home_isolation.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_telegram_polling_progress_ptb.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_termux_all_extra_compat.py
…
test_timezone.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_tini_shim.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_toolset_distributions.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_toolsets.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_trajectory_compressor.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_trajectory_compressor_async.py
…
test_transform_llm_output_hook.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_transform_tool_result_hook.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_tui_entry_mcp_owner.py
…
test_tui_gateway_loop_noise.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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(tests): update two more append_message.call_args assertions to append_messages_batch 2026-08-03 20:43:38 +05:30
test_tui_gateway_ws.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_tui_mcp_late_refresh.py
…
test_utils_truthy_values.py
…
test_voice_max_recording_seconds.py fix(voice): enforce voice.max_recording_seconds (was dead config) 2026-07-28 11:57:37 -07:00
test_wal_checkpoint_strategy.py
…
test_web_server.py fix(web): raise uvicorn WS frame cap for Desktop file.attach 2026-07-28 19:20:14 -05:00
test_web_server_sessiondb_eventloop.py fix(dashboard): preserve maintenance writes on read polling 2026-08-02 21:30:54 +05:30
test_web_server_status_topology_cache.py fix(serve): cache /api/status profile-gateway topology scan 2026-08-02 23:10:28 +05:30
test_windows_subprocess_no_window_flags.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_yaml_indent_consistency_31999.py
…
test_yuanbao_integration.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_yuanbao_markdown.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_yuanbao_pipeline.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_yuanbao_proto.py test: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_yuanbao_reconnect_set_active.py
…
test_yuanbao_shutdown.py
…
test_zeroed_state_db.py
…