hermes-agent/tests/agent
ethernet 30da5d0a89 test: run os-specific tests on their real host, not a faked one
many tests patched sys.platform or a module's _IS_WINDOWS flag, then
ran on linux ci. the patch selects the branch under test, but the host
does not have the behavior the branch exists for. the test proves the
patch, not the platform. some gated assertions never ran on any host.

this commit adds three markers: linux_only, macos_only, windows_only.
a conftest hook skips a marked test on the other hosts, with a clear
reason. no test fakes a host now. two documented fakes remain
(android/termux, freebsd) because no ci runner exists for them.

each fake site got one of four treatments:
- gate it: the real host supplies the platform; mocks cover real
  dependencies only, never host identity
- patch the module's own probe when the subject is the probe's consumer
- assert against the real host when the fake stood in for any non-x host
- delete the patch when it set the value the host already has

bare skipif(sys.platform != ...) guards became markers too. the lane
model skips these on linux and never imports them on windows, so they
ran on no host. platform parametrize tables are now one marked test
per os.

running on real hosts found real errors: a chrome-sandbox failure in
test_gui_command that main hides, and two windows failures fixed here.
the agents.md testing section now documents the policy.
2026-08-09 22:09:49 -04:00
..
lsp test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
transports fix(cache): scope prompt_cache_key by session to stop cross-session bucket sharing 2026-08-05 12:42:46 +05:30
__init__.py
test_account_usage.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_anthropic_adapter.py fix: prefer explicit anthropic api key 2026-08-04 00:12:45 +05:30
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_anthropic_kwargs_sanitize.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_anthropic_mcp_prefix_strip.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_anthropic_oauth_pkce.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_anthropic_oauth_ua_prefix.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_anthropic_output_field_leak.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_anthropic_thinking_block_order.py
test_anthropic_token_scope_isolation.py fix(auth): route anthropic adapter credential reads through the profile secret scope 2026-08-01 16:42:51 -07:00
test_anthropic_whitespace_text_blocks.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_api_content_sidecar.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_arcee_trinity_overrides.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_async_token_accounting.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_async_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_aux_progress_streaming.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_auxiliary_anthropic_pool_fallback_regression.py
test_auxiliary_client.py fix(agent): stop titling a session after our own scaffolding, or a TTS model 2026-08-09 04:33:58 -05:00
test_auxiliary_client_anthropic_custom.py
test_auxiliary_client_azure_foundry.py test: pair load_config_readonly stubs at pruned-file sites (post-merge with main's readonly sweep) 2026-07-29 15:37:24 -07:00
test_auxiliary_client_base_url_host_validation_52608.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_auxiliary_client_bootstrap_skew.py
test_auxiliary_client_proxy_env.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_auxiliary_client_resolve_dedup.py
test_auxiliary_client_ssl_verify.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_auxiliary_client_xai_oauth_recovery.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_auxiliary_compression_timeout_floor.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_auxiliary_concurrency.py fix(agent): cap auxiliary LLM concurrency per task 2026-08-03 23:01:03 +05:30
test_auxiliary_config_bridge.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_auxiliary_explicit_cancellation.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
test_auxiliary_main_first.py test(auxiliary): update _resolve_auto patch to _resolve_auto_route 2026-08-07 16:56:37 +05:30
test_auxiliary_named_custom_providers.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_auxiliary_relay.py Merge updated skill metrics into client resource metrics 2026-08-02 20:12:50 -07:00
test_auxiliary_runtime_cache_key.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_auxiliary_transient_retry.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_auxiliary_transport_autodetect.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_auxiliary_user_default_headers.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_azure_identity_adapter.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_backend_identity.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_battery.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_bedrock_1m_context.py
test_bedrock_adapter.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_bedrock_empty_text_blocks.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_bedrock_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_bedrock_interrupt_post_worker.py Reapply "feat(observability): integrate NeMo Relay runtime and shared metrics" 2026-07-27 21:10:51 -07:00
test_billing_links.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_billing_usage.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_billing_view.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_bounded_response.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_budget_reasoning_details_exclusion.py fix(agent): exclude reasoning_details envelope from tail-budget walk (#73298) 2026-07-31 23:16:58 -07:00
test_cache_disabled_on_stubs.py refactor(agent): share the cache_ttl disable predicate across init and stub paths 2026-08-02 11:52:59 +05:30
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_chat_completion_helpers_provider_sort.py
test_cjk_token_estimation.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_close_interrupted_tool_sequence.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_codex_app_server_event_bridge.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_codex_app_server_persist.py
test_codex_cloudflare_headers.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_codex_gpt55_autoraise_notice.py test: pair load_config_readonly stubs at pruned-file sites (post-merge with main's readonly sweep) 2026-07-29 15:37:24 -07:00
test_codex_responses_adapter.py fix(codex): defang reserved Harmony tokens in requests 2026-07-31 22:53:20 -07:00
test_codex_runtime_live_events.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_codex_ttfb_watchdog.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_coding_context.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_compaction_anti_thrash.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_compaction_redaction_boundaries.py
test_compress_context_progress_timeout.py test(agent): deflake progress-extension timing per FLAKY policy (re-review #8) 2026-08-02 16:16:36 -07:00
test_compress_focus.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_compress_signal_leak.py
test_compressed_summary_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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_compression_anti_thrash_recovery.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_compression_interrupt_protection.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
test_compression_logging_session_context.py
test_compression_max_attempts_config.py test: pair load_config_readonly stubs at pruned-file sites (post-merge with main's readonly sweep) 2026-07-29 15:37:24 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_compression_review_76354.py feat(agent): emit pool_saturated compression-attempt telemetry (re-review #6) 2026-08-02 16:16:36 -07:00
test_compression_rotation_state.py fix(agent): clear archived parent's activity labels after rotation (re-review #4) 2026-08-02 16:16:36 -07:00
test_compression_small_ctx_threshold_floor.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_compression_worker_isolation_76354.py test: skip live aux feasibility probe in worker-isolation regressions 2026-08-02 16:16:36 -07:00
test_compressor_actionable_tail_anchor.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_compressor_assistant_tail_anchor.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_compressor_historical_media.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_compressor_image_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_compressor_media_stripping.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_compressor_tail_cut_oob_fix.py test(agent): add compress()-level E2E regression for short tool-suffix OOB (#75588) 2026-07-31 23:16:58 -07:00
test_compressor_tail_cut_tool_pair_floor.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_compressor_tool_call_budget.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_compressor_zero_user_guard.py fix(agent): preserve a non-empty user query after compression 2026-07-31 23:16:58 -07:00
test_context_breakdown.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_context_compressor_summary_continuity.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_context_compressor_temporal_anchoring.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_context_engine_host_contract.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_context_engine_on_turn_complete_usage.py
test_context_engine_select_context.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_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: prove concurrency with barriers/witnesses instead of wall-clock bounds 2026-07-29 21:30:53 -07:00
test_context_route_mismatch.py test(gateway): cover named-custom context pin on session-info banner 2026-08-04 11:00:04 +05:30
test_copilot_acp_client.py fix(test): hermetic env-detection tests — pin container/supervisor/HOME probes (#422) 2026-07-29 18:55:10 -07:00
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 fix(credential_pool): serialize deferred-refresh pool mutations 2026-08-03 19:08:09 +05:30
test_credential_pool_key_rotation.py fix(credential-pool): clear exhaustion state on key rotation (#22622) 2026-08-04 11:35:06 -06:00
test_credential_pool_lease_refresh_reselect.py fix(credential-pool): re-select in acquire_lease after a deferred refresh 2026-08-04 13:12:24 +05:30
test_credential_pool_no_entries_log_throttle.py
test_credential_pool_oat_authtype.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_pool_oauth_writethrough.py fix(auth): apply same source-path write-through fix to non-pool xAI path 2026-07-31 22:32:48 -07:00
test_credential_pool_provider_boundary.py
test_credential_pool_quarantine_locking.py fix(credential-pool): lock the quarantine read-modify-write of _entries 2026-08-04 13:20:15 +05:30
test_credential_pool_routing.py fix(credential-pool): bench a billing 403 fully, even as the sole key 2026-08-04 23:33:39 +05:30
test_credential_pool_sole_cooldown.py fix(credential-pool): bench a billing 403 fully, even as the sole key 2026-08-04 23:33:39 +05:30
test_credential_pool_unmatched_rotation_bound.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_credits_cold_start.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_credits_fixture_snapshot.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_credits_policy.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_credits_tracker.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_credits_view.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_cron_inline_api_call_62151.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_crossloop_client_cache.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_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 fix(curator): restore the real skills tree when a rollback extract dies part-way 2026-07-31 22:34:57 -07:00
test_curator_classification.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_curator_reports.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_cursor_optimizations_parity.py perf(state): batch the turn flush into one SQLite transaction 2026-08-03 20:43:38 +05:30
test_custom_pool_mismatch_guard.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_custom_provider_extra_body.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_custom_provider_extra_body_matching.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_custom_providers_vision.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_deepseek_anthropic_thinking.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_direct_provider_url_detection.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_display.py refactor(discord): simplify tool preview links 2026-08-02 21:48:06 -07:00
test_display_emoji.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_display_todo_progress.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_display_tool_failure.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_empty_tool_name_loop_dampening.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_endpoint_blackhole.py fix(agent): stop re-probing endpoints that blackhole TCP connects 2026-08-03 21:53:13 +05:30
test_engine_preflight_wire.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_error_classifier.py fix(models): a model id missing its vendor prefix says so instead of 404ing (#78856) 2026-08-04 19:35:57 +00:00
test_external_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_external_skills_dirs_cache.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_failover_identity.py perf(prompt-caching): preserve tool-loop cache boundaries (#20880) 2026-08-01 14:27:12 +05:30
test_file_safety.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_file_safety_container_mirror.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_file_safety_credentials.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_file_safety_cross_profile.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_file_safety_sandbox_mirror.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_file_safety_session_state.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_gateway_turn_sidecar.py
test_gemini_fast_fallback.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_gemini_free_tier_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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_gemini_standard_key_guidance.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_ghost_skill_pruning.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_i18n.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_idle_compaction.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_idle_compaction_lock_and_guards.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_image_gen_registry.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_image_routing.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_insights.py refactor(insights): drop consumer-less get_skill_breakdown alias (simplify-pass) 2026-08-03 18:45:43 +05:30
test_intent_ack_continuation.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_interrupt_compat.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
test_jiter_preload.py
test_kanban_stop.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_kimi_coding_anthropic_thinking.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_learning_graph_render.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_learning_mutations.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_lmstudio_reasoning.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_local_probe_disk_cache.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_local_stream_timeout.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_manual_compression_feedback.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_markdown_tables.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_memory_async_sync.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_memory_boundary_commit.py test: prove concurrency with barriers/witnesses instead of wall-clock bounds 2026-07-29 21:30:53 -07:00
test_memory_provider.py refactor(memory): single shared trivial-prompt classifier + gate tests 2026-08-03 17:53:55 +05:30
test_memory_session_switch.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_memory_skill_scaffolding.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_memory_user_id.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_memory_write_bridge.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_message_content.py
test_message_sanitization_policy.py refactor(agent): single-owner call_id + reasoning_content sanitization policies (wire-parity verified) 2026-07-29 12:29:39 -07:00
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 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_provider.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_moa_aggregator_cache_control.py perf(prompt-caching): preserve tool-loop cache boundaries (#20880) 2026-08-01 14:27:12 +05:30
test_moa_aggregator_cost_slot.py
test_moa_cold_start_cache_66793.py perf(moa): cache resolved preset + per-slot runtime to cut cold-start latency (#66793) 2026-08-03 22:43:15 +05:30
test_moa_context_max_tokens.py
test_moa_progress.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_moa_quiet_reference_output.py
test_moa_reasoning_effort.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_moa_reference_system_prompt.py
test_moa_slot_api_mode.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_moa_slot_max_tokens.py
test_moa_switch_api_mode.py
test_moa_trace_streamed_capture.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_extra_type_guard.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_metadata.py test(model-metadata): use explicit fixture encodings 2026-08-09 01:51:12 -07:00
test_model_metadata_local_ctx.py fix(model_metadata): read llama.cpp context from meta.n_ctx + accept sole model 2026-08-04 11:08:32 +05:30
test_model_metadata_ssl.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_models_dev.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
test_moonshot_schema.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_non_stream_stale_timeout.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_none_deref_guards.py
test_nous_credits_gauge.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_nous_credits_snapshot.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_nous_oauth_401_guidance.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_nous_portal_anthropic_wire.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_nous_rate_guard.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_onboarding.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_oneshot.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_openrouter_response_cache.py test: pair load_config_readonly stubs at pruned-file sites (post-merge with main's readonly sweep) 2026-07-29 15:37:24 -07:00
test_org_skill_namespace.py refactor(sync): put every Skill Sync verb under `hermes sync`; drop HSP naming 2026-07-29 07:47:06 +10:00
test_outbound_webhooks.py fix(hooks): flush outbound queue at interpreter exit 2026-08-02 15:01:11 -07:00
test_pet_engine.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_pet_generate.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_platform_hint_desktop.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_platform_hint_overrides.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_llm.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_portal_tags.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_post_compression_trim.py perf(compressor): release allocator pages after successful compaction 2026-08-03 22:55:36 +05:30
test_pre_compress_memory_context.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_preflight_compression_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_preflight_lock_defer.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_proactive_prune_config.py test: pair load_config_readonly stubs at pruned-file sites (post-merge with main's readonly sweep) 2026-07-29 15:37:24 -07:00
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 fix(model_metadata): rewrite localhost->IPv4 for the remaining local probe sites 2026-08-03 21:12:56 +05:30
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_caching.py fix(prompt-caching): consolidate static-prefix split, guard empty volatile suffix 2026-08-01 15:39:58 +05:30
test_protected_tail_pressure_61932.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_proxy_and_url_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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_reactions.py
test_reasoning_stale_timeout_floor.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_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 fix(moa): carry completed responses through the managed Relay path 2026-07-31 21:52:35 -07:00
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_tools.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_request_client_reuse.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_restore_primary_pool_reselect.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_save_url_image.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_secret_scope.py fix(secrets): allowlist API_SERVER listener settings as global deployment env 2026-08-02 09:59:52 -07:00
test_secret_scope_tier1_migration.py test(secrets): consolidated tier-1 migration regression suite 2026-08-02 10:02:33 -07:00
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 chore: round-2 review nits (re-review #9) 2026-08-02 16:16:36 -07:00
test_session_rotation_flush_cold_resume_68454.py
test_set_runtime_main_custom_provider.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_shell_hooks.py Inspired by Cursor: fail-closed hook semantics + exit-code-2 blocking 2026-08-08 05:02:04 -07:00
test_shell_hooks_consent.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_skill_bundles.py Merge updated tool metrics into skill metrics 2026-07-31 07:30:30 -07:00
test_skill_commands.py Merge updated tool metrics into skill metrics 2026-07-31 07:30:30 -07:00
test_skill_commands_reload.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_skill_invocation_description.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_stream_read_timeout_floor.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_stream_single_writer_guard.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_streaming_context_scrubber.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_subagent_lifecycle.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
test_subagent_progress.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_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 fix(context): dedupe subdirectory hints by content digest and skip backup/vendor dirs 2026-08-03 20:43:34 +05:30
test_subdirectory_hints_tilde.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_env_guard.py refactor: single build_subprocess_env() factory for all child-process spawns (profile + secret-scrub single owner) 2026-07-29 10:14:11 -07:00
test_subscription_view.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_summarize_tool_result_type_safety.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_summary_role_template_alternation.py fix(compression): choose summary role by template-visible alternation 2026-07-30 21:07:36 +05:30
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 fix(agent): type a synthesized user turn when its row is written 2026-07-28 03:54:16 -05:00
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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_think_scrubber.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_thinking_timeout_guidance.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_tool_dispatch_helpers.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_tool_executor_checkpoint_paths.py
test_tool_guardrails.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_tool_result_classification.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_trace_upload.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_transcription_registry.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_tts_registry.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_turn_context.py fix(agent): stop cron and subagent runs auto-titling their sessions 2026-08-09 04:33:58 -05:00
test_turn_context_overflow_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_turn_finalizer_cleanup_guard.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_turn_finalizer_final_response_persistence.py fix(agent): invalidate flush-scan cursor when finalizer pops db marker 2026-07-31 23:18:12 -07:00
test_turn_finalizer_interrupt_alternation.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_turn_finalizer_iteration_limit_exit.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_turn_overlap_tripwire.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_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: prune low-value tests suite-wide (wave 1) — 46,820 → 28,106 test functions 2026-07-29 13:10:23 -07:00
test_unsupported_parameter_retry.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_unsupported_temperature_retry.py
test_usage_pricing.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
test_verification_evidence.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_verification_evidence_fd_leak.py
test_verification_stop.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_verification_stop_caching.py fix(tests): update two more append_message.call_args assertions to append_messages_batch 2026-08-03 20:43:38 +05:30
test_verify_hooks.py
test_vertex_adapter.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_video_gen_registry.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_vision_resolved_args.py
test_vision_routing_31179.py fix(tests): restore original module identities after vision-routing reloads (#61597) 2026-07-29 18:55:10 -07:00