hermes-agent/tests/agent
kshitij 5b4c91f1db refactor(models): simplify-pass follow-ups on the refresh path
- Cold force_refresh (fresh CLI process, e.g. hermes config refresh)
  now hydrates the memory cache from disk before fetching, so the
  conditional GET actually fires on the flow the feature was built for
  instead of silently re-downloading the full ~2 MB registry
  (empirically probed: If-None-Match sent, 304 serves disk data).
- Conditional-GET decision is passed in explicitly
  (_fetch_models_dev_from_network(conditional=...)) by callers holding
  the fetch lock, removing the hidden read of module globals inside
  the fetch; the background worker now fetches INSIDE the lock,
  symmetric with foreground (true singleflight — no concurrent
  double-download, no fetching against mid-commit etag state).
- Corrupt disk cache is QUARANTINED (renamed to .json.corrupt) rather
  than left in place: rejection becomes a one-time event instead of a
  re-read + re-parse + warning + unlink on every hot-path call while
  offline (probed: 1 warning across 5 calls, was 5).
- Dropped the dead _DEFAULT_MODELS_DEV_URL constant; module and
  function docstrings updated to match the servable-cache conditional
  semantics.
2026-08-14 03:31:22 +05:30
..
lsp test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
transports fix(xai): preserve Grok 4.6 wire capabilities 2026-08-13 11:07:37 -07:00
__init__.py
test_account_usage.py
test_anthropic_adapter.py fix: send Hermes Agent attribution headers to OpenCode Zen and Go 2026-08-13 02:03:40 -07:00
test_anthropic_billing_guidance.py
test_anthropic_keychain.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_anthropic_kimi_signed_thinking_replay.py
test_anthropic_kwargs_sanitize.py
test_anthropic_mcp_prefix_strip.py
test_anthropic_oauth_pkce.py
test_anthropic_oauth_ua_prefix.py
test_anthropic_output_field_leak.py fix(tests): isolate suite fixtures from host auth 2026-08-12 23:47:28 -07:00
test_anthropic_thinking_block_order.py
test_anthropic_token_scope_isolation.py
test_anthropic_whitespace_text_blocks.py
test_api_content_sidecar.py
test_arcee_trinity_overrides.py
test_async_token_accounting.py
test_async_utils.py
test_aux_progress_streaming.py
test_auxiliary_anthropic_pool_fallback_regression.py
test_auxiliary_client.py fix: update kimi auxiliary test for medium→high mapping 2026-08-13 01:05:49 +05:30
test_auxiliary_client_anthropic_custom.py
test_auxiliary_client_azure_foundry.py
test_auxiliary_client_base_url_host_validation_52608.py fix(auxiliary): honor /anthropic-suffixed gateway base_url on aux + fallback calls 2026-08-13 11:41:59 -07:00
test_auxiliary_client_bootstrap_skew.py
test_auxiliary_client_proxy_env.py
test_auxiliary_client_resolve_dedup.py
test_auxiliary_client_ssl_verify.py
test_auxiliary_client_xai_oauth_recovery.py
test_auxiliary_compression_timeout_floor.py
test_auxiliary_concurrency.py
test_auxiliary_config_bridge.py
test_auxiliary_explicit_base_anthropic.py test(agent): align explicit-base auxiliary tests with host-anchored rewrite policy 2026-08-13 11:45:27 -07:00
test_auxiliary_explicit_cancellation.py
test_auxiliary_main_first.py fix(auxiliary): honor main model for title generation (#83636) 2026-08-11 23:36:47 -05:00
test_auxiliary_named_custom_providers.py
test_auxiliary_relay.py
test_auxiliary_runtime_cache_key.py
test_auxiliary_transient_retry.py
test_auxiliary_transport_autodetect.py
test_auxiliary_user_default_headers.py
test_azure_identity_adapter.py
test_backend_identity.py
test_battery.py
test_bedrock_1m_context.py
test_bedrock_adapter.py
test_bedrock_empty_text_blocks.py
test_bedrock_integration.py
test_bedrock_interrupt_post_worker.py
test_billing_links.py
test_billing_usage.py
test_billing_view.py
test_bounded_response.py
test_budget_reasoning_details_exclusion.py
test_cache_disabled_on_stubs.py
test_canon_args_memo_parity.py fix(agent): stop the send-path repair from rewriting persisted history 2026-08-07 16:57:11 +05:30
test_cascading_interrupt_6600.py
test_chat_completion_helpers_provider_sort.py
test_cjk_token_estimation.py
test_close_interrupted_tool_sequence.py
test_codex_app_server_event_bridge.py
test_codex_app_server_persist.py
test_codex_cloudflare_headers.py
test_codex_gpt55_autoraise_notice.py
test_codex_request_transport_diagnostics.py fix: widen APIConnectionError handling to finalization drain loop 2026-08-12 12:42:39 +05:30
test_codex_responses_adapter.py
test_codex_runtime_live_events.py
test_codex_ttfb_watchdog.py
test_coding_context.py
test_compaction_anti_thrash.py
test_compaction_redaction_boundaries.py
test_compress_context_progress_timeout.py
test_compress_focus.py
test_compress_signal_leak.py
test_compressed_summary_metadata.py
test_compression_adoption_preserves_live_tail.py fix(compression): preserve live tail before snapshot adoption 2026-08-09 22:29:39 +05:30
test_compression_anti_thrash_persistence.py
test_compression_anti_thrash_recovery.py
test_compression_attempt_telemetry.py
test_compression_concurrent_fork.py fix(cache): make proactive pruning durable and cache-aware 2026-08-06 02:22:08 +05:30
test_compression_count_warning_36908.py
test_compression_fallback_budget.py
test_compression_interrupt_protection.py
test_compression_logging_session_context.py
test_compression_max_attempts_config.py
test_compression_orphan_recovery.py fix(sessions): recover compression parents without continuations 2026-08-07 13:24:56 +05:30
test_compression_progress.py
test_compression_review_76354.py
test_compression_rotation_state.py fix(gateway/desktop): durable row-id addressing for rewind truncation 2026-08-13 13:35:55 +05:30
test_compression_small_ctx_threshold_floor.py
test_compression_worker_isolation_76354.py
test_compressor_actionable_tail_anchor.py
test_compressor_assistant_tail_anchor.py
test_compressor_historical_media.py
test_compressor_image_tokens.py
test_compressor_media_stripping.py
test_compressor_tail_cut_oob_fix.py
test_compressor_tail_cut_tool_pair_floor.py
test_compressor_tool_call_budget.py
test_compressor_zero_user_guard.py
test_context_breakdown.py
test_context_compressor.py refactor(compression): fold simplify findings — dedup floor constant, drift-guard test 2026-08-08 14:27:31 +05:30
test_context_compressor_cross_session_guard.py
test_context_compressor_session_end_clears_state.py
test_context_compressor_summary_continuity.py
test_context_compressor_temporal_anchoring.py
test_context_compressor_zero_user_provenance.py fix: double-paren bug in dropped-tools prefix + add empty-response nudge sibling 2026-08-09 16:20:48 +05:30
test_context_engine.py
test_context_engine_host_contract.py
test_context_engine_on_turn_complete_usage.py
test_context_engine_select_context.py
test_context_references.py fix(docker): read attached binary files in backend (#76577) 2026-08-08 05:44:18 -07:00
test_context_refs_concurrent.py
test_context_route_mismatch.py
test_copilot_acp_client.py
test_copilot_acp_deprecation.py
test_credential_pool.py fix(agent): rebind pool entry id after env credential refresh 2026-08-08 19:17:02 -07:00
test_credential_pool_deferred_refresh.py
test_credential_pool_key_rotation.py
test_credential_pool_lease_refresh_reselect.py
test_credential_pool_no_entries_log_throttle.py
test_credential_pool_oat_authtype.py
test_credential_pool_oauth_writethrough.py
test_credential_pool_provider_boundary.py
test_credential_pool_quarantine_locking.py
test_credential_pool_routing.py fix(tests): isolate suite fixtures from host auth 2026-08-12 23:47:28 -07:00
test_credential_pool_sole_cooldown.py
test_credential_pool_unmatched_rotation_bound.py
test_credits_cold_start.py
test_credits_fixture_snapshot.py
test_credits_policy.py
test_credits_tracker.py
test_credits_view.py
test_cron_inline_api_call_62151.py
test_crossloop_client_cache.py
test_curator.py fix(curator): protect cron skills referenced by absolute path 2026-08-08 06:04:14 -07:00
test_curator_activity.py
test_curator_backup.py
test_curator_classification.py
test_curator_reports.py
test_cursor_optimizations_parity.py
test_custom_pool_mismatch_guard.py
test_custom_provider_extra_body.py
test_custom_provider_extra_body_matching.py
test_custom_providers_vision.py
test_deepseek_anthropic_thinking.py
test_direct_provider_url_detection.py
test_display.py
test_display_emoji.py
test_display_todo_progress.py
test_display_tool_failure.py
test_empty_tool_name_loop_dampening.py
test_endpoint_blackhole.py
test_engine_preflight_wire.py
test_error_classifier.py test(error_classifier): cover Qwen applyPromptTemplate vs llama.cpp grammar 2026-08-13 01:17:02 +05:30
test_external_skills.py
test_external_skills_dirs_cache.py
test_failover_identity.py fix: restore empty-response fallback retry, dedupe alibaba set, thread TTL into aux replan 2026-08-13 15:24:47 +05:30
test_file_safety.py
test_file_safety_container_mirror.py
test_file_safety_credentials.py
test_file_safety_cross_profile.py
test_file_safety_sandbox_mirror.py
test_file_safety_session_state.py
test_gateway_turn_sidecar.py
test_gemini_fast_fallback.py
test_gemini_free_tier_gate.py
test_gemini_native_adapter.py fix(gemini): interpose placeholder model turn between tool result and user text 2026-08-05 17:21:01 -07:00
test_gemini_schema.py
test_gemini_standard_key_guidance.py
test_ghost_skill_pruning.py
test_i18n.py
test_idle_compaction.py
test_idle_compaction_lock_and_guards.py
test_image_gen_registry.py
test_image_routing.py
test_insights.py refactor(usage): simplify-pass follow-ups 2026-08-14 02:04:24 +05:30
test_intent_ack_continuation.py
test_interrupt_compat.py
test_jiter_preload.py
test_kanban_stop.py
test_kimi_coding_anthropic_thinking.py
test_last_total_tokens.py
test_learn_prompt.py fix(learn): process large sources incrementally 2026-08-08 05:09:43 -07:00
test_learning_graph.py
test_learning_graph_render.py
test_learning_mutations.py
test_lmstudio_reasoning.py
test_local_probe_disk_cache.py
test_local_stream_timeout.py
test_manual_compression_feedback.py
test_markdown_tables.py
test_memory_async_sync.py
test_memory_boundary_commit.py
test_memory_provider.py fix: support packaged memory provider skills 2026-08-13 11:49:14 -07:00
test_memory_provider_unavailable_warning.py feat(hindsight): memory provider improvements — recall_sync, retain_source, setup templates, memory indicators, error hints 2026-08-13 23:15:25 +05:30
test_memory_recall_indicator.py fix: security + efficiency review fixes for salvaged PR #74379 2026-08-13 23:15:25 +05:30
test_memory_session_switch.py
test_memory_skill_scaffolding.py
test_memory_user_id.py
test_memory_write_bridge.py
test_message_content.py
test_message_sanitization_policy.py
test_micro_compaction.py test(agent): cover reference-only handoff sole-active-turn regression 2026-08-07 19:44:35 +05:30
test_minimax_auxiliary_url.py fix(auxiliary): keep ZAI Coding Plan routing 2026-08-13 12:30:29 -07:00
test_minimax_provider.py
test_moa_aggregator_cache_control.py
test_moa_aggregator_cost_slot.py
test_moa_cold_start_cache_66793.py
test_moa_context_max_tokens.py
test_moa_observability_bridge.py feat(langfuse): widen tracing to errors, sessions, subagents, and MoA fan-out 2026-08-13 23:10:16 +05:30
test_moa_progress.py
test_moa_quiet_reference_output.py
test_moa_reasoning_effort.py
test_moa_reference_system_prompt.py
test_moa_slot_api_mode.py fix(agent): propagate prompt-cache TTL to MoA/aux, clamp Qwen 1h, re-preflight on failover (#84733) 2026-08-13 15:24:47 +05:30
test_moa_slot_max_tokens.py fix(agent): propagate prompt-cache TTL to MoA/aux, clamp Qwen 1h, re-preflight on failover (#84733) 2026-08-13 15:24:47 +05:30
test_moa_switch_api_mode.py
test_moa_trace_streamed_capture.py
test_model_extra_type_guard.py
test_model_metadata.py fix(agent): reject stale 32k metadata for MiniMax 2026-08-13 11:12:05 -07:00
test_model_metadata_local_ctx.py
test_model_metadata_ssl.py
test_models_dev.py refactor(models): simplify-pass follow-ups on the refresh path 2026-08-14 03:31:22 +05:30
test_models_dev_meta_mapping.py fix(models_dev): map meta-ai provider to models.dev 'meta' id (salvage #81418) (#84679) 2026-08-12 14:42:00 -04:00
test_moonshot_schema.py
test_non_stream_stale_timeout.py
test_none_deref_guards.py
test_nous_credits_gauge.py
test_nous_credits_snapshot.py
test_nous_oauth_401_guidance.py
test_nous_portal_anthropic_wire.py
test_nous_rate_guard.py
test_onboarding.py
test_oneshot.py
test_openrouter_response_cache.py
test_org_skill_namespace.py
test_outbound_webhooks.py
test_pet_engine.py
test_pet_generate.py
test_platform_hint_desktop.py
test_platform_hint_overrides.py
test_plugin_context_references.py feat(plugins): allow plugins to register custom @-prefix context references 2026-08-12 18:41:59 -07:00
test_plugin_llm.py
test_plugin_llm_task_routing.py fix(plugins): complete task-routed LLM integration 2026-08-12 16:25:20 -07:00
test_plugin_prompt_sections.py feat(plugins): add cache-safe system prompt sections 2026-08-12 16:34:58 -07:00
test_portal_tags.py
test_post_compression_trim.py
test_pre_compress_memory_context.py
test_preflight_compression_gate.py
test_preflight_lock_defer.py
test_proactive_prune_config.py
test_proactive_prune_restart_safety.py fix(compression): durable-sync the prune runway on model switch + fast no-op for incapable stores 2026-08-06 02:22:08 +05:30
test_proactive_tool_result_pruning.py fix(cache): make proactive pruning durable and cache-aware 2026-08-06 02:22:08 +05:30
test_probe_cache_followups.py
test_prompt_builder.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_prompt_cache_boundary.py refactor(cache): share the boundary-declaration helper and simplify the registry 2026-08-09 15:25:12 +05:30
test_prompt_cache_ttl_propagation.py refactor: hoist preflight clear into restart handler, single-source qwen predicate 2026-08-13 15:24:47 +05:30
test_prompt_caching.py fix(agent): propagate prompt-cache TTL to MoA/aux, clamp Qwen 1h, re-preflight on failover (#84733) 2026-08-13 15:24:47 +05:30
test_protected_tail_pressure_61932.py
test_proxy_and_url_validation.py
test_pydantic_dump_warning_leak.py fix: suppress pydantic serializer warnings leaking to the terminal 2026-08-08 23:14:30 -07:00
test_rate_limit_tracker.py
test_reactions.py
test_reasoning_stale_timeout_floor.py add grok 4.6 (#84661) 2026-08-12 13:37:04 -04:00
test_reasoning_summaries.py fix(reasoning): keep gpt-5.x summary parts as separate blocks on the chat wire 2026-08-06 22:02:37 -05:00
test_redact.py fix(redact): narrow control-split join guard to line-crossing spans 2026-08-07 17:50:03 +05:30
test_reference_handoff_active_turn.py test(agent): cover reference-only handoff sole-active-turn regression 2026-08-07 19:44:35 +05:30
test_refine_focus.py feat: /refine — run the memory/skill self-improvement review on demand 2026-08-05 22:40:51 -07:00
test_relay_llm.py
test_relay_nested_execution.py fix(relay): bypass managed execution for nested calls inside managed callbacks 2026-08-08 23:46:17 -07:00
test_relay_runtime_bounded_scope_ops.py fix(relay): bound the interpreter-shutdown fallback lane; unwedge test fakes at teardown 2026-08-12 19:19:54 -07:00
test_relay_session_segments.py fix(relay): defer rotating-compaction session close while a turn is live 2026-08-13 10:45:15 -07:00
test_relay_tools.py
test_replay_budget_accounting.py fix(compression): charge stale thinking to the tail budget only on the newest assistant turn (#73624) 2026-08-08 17:42:34 -07:00
test_replay_cleanup.py
test_request_client_reuse.py
test_restore_primary_pool_reselect.py
test_resume_stale_active_task.py test(agent): cover reference-only handoff sole-active-turn regression 2026-08-07 19:44:35 +05:30
test_rotation_flush_persisted_boundary_68196.py
test_runtime_cwd.py
test_save_url_image.py
test_secret_scope.py
test_secret_scope_tier1_migration.py
test_send_path_history_isolation.py fix(agent): make the send-path copy structural — close the write-through class 2026-08-07 16:57:11 +05:30
test_session_activity.py
test_session_rotation_flush_cold_resume_68454.py
test_set_runtime_main_custom_provider.py
test_shell_hooks.py feat(plugins): rename hook to transform_api_error_classification per #64231 verdict 2026-08-13 09:36:02 -07:00
test_shell_hooks_consent.py
test_shell_hooks_tree_kill.py fix(hooks): kill the whole process tree when a shell hook times out 2026-08-12 19:44:04 -07:00
test_skill_bundles.py
test_skill_commands.py
test_skill_commands_reload.py
test_skill_invocation_description.py
test_skill_utils.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_skip_background_review.py fix: follow-up for salvaged PR #18255 2026-08-08 00:07:14 +05:30
test_skip_memory_store_65429.py
test_ssl_ca_guard.py fix(ssl_guard): tolerate truststore SSLContext.get_ca_certs() NotImplementedError on Windows 2026-08-08 15:10:24 +05:30
test_ssl_verify.py
test_stale_replay_prune.py fix(compression): correct prune boundary + exempt native compaction checkpoints 2026-08-08 14:09:41 -07:00
test_stream_chunk_byte_estimate.py
test_stream_read_timeout_floor.py
test_stream_single_writer_guard.py
test_streaming_context_scrubber.py
test_subagent_lifecycle.py
test_subagent_progress.py
test_subagent_stop_hook.py feat(delegation): validate batch task quality before spawning children 2026-08-07 08:57:57 -07:00
test_subdirectory_hints.py
test_subdirectory_hints_tilde.py
test_subprocess_env_guard.py
test_subscription_view.py
test_summarize_tool_result_type_safety.py
test_summary_prefix_semantics.py test(agent): cover reference-only handoff sole-active-turn regression 2026-08-07 19:44:35 +05:30
test_summary_prefix_tool_use.py
test_summary_role_template_alternation.py
test_surrogate_chokepoints.py fix(agent,gateway): class-level lone-surrogate chokepoints (#80366 #55143 #55309 #50959 #19819) 2026-08-08 12:31:19 -07:00
test_synthetic_turn_display_kind.py
test_system_prompt.py fix(agent): fail open on malformed telegram extra config 2026-08-08 13:57:44 +05:30
test_system_prompt_restore.py
test_think_scrubber.py
test_thinking_timeout_guidance.py
test_thread_scoped_output.py fix: preserve session history when a turn crashes 2026-08-06 23:08:23 -05:00
test_title_generator.py refactor(title): decide on the stored title and the real turns behind it 2026-08-09 04:33:58 -05:00
test_tool_call_arg_no_redaction.py
test_tool_dispatch_helpers.py
test_tool_executor_checkpoint_paths.py
test_tool_guardrails.py
test_tool_result_classification.py
test_trace_upload.py
test_transcription_registry.py
test_tts_registry.py
test_turn_context.py feat(hindsight): memory provider improvements — recall_sync, retain_source, setup templates, memory indicators, error hints 2026-08-13 23:15:25 +05:30
test_turn_context_overflow_warning.py
test_turn_finalizer_cleanup_guard.py
test_turn_finalizer_final_response_persistence.py
test_turn_finalizer_interrupt_alternation.py
test_turn_finalizer_iteration_limit_exit.py
test_turn_overlap_tripwire.py
test_turn_retry_state.py feat(compression): native OpenAI Responses server-side compaction for gpt-5.6 2026-08-08 11:24:45 -07:00
test_turn_summary.py
test_unsupported_parameter_retry.py
test_unsupported_temperature_retry.py
test_usage_pricing.py refactor(usage): simplify-pass follow-ups 2026-08-14 02:04:24 +05:30
test_verification_evidence.py
test_verification_evidence_fd_leak.py
test_verification_stop.py fix: make verify_on_stop opt-in everywhere (default False, not auto) (#84383) 2026-08-12 01:15:25 -07:00
test_verification_stop_caching.py
test_verify_hooks.py
test_vertex_adapter.py
test_video_gen_registry.py
test_vision_resolved_args.py
test_vision_routing_31179.py