hermes-agent/tests/tools
Teknium e95e13783b fix(docker): per-session container isolation and session-scoped workspace mounts
Two bugs reported on the docker terminal backend (desktop app, sandboxed
profiles with container_persistent: false):

1. A NEW chat's container inherited the PREVIOUS session's workspace,
   bind-mounted rw at /workspace, because the mount source was the
   process-global TERMINAL_CWD env var (written by the workspace picker,
   outliving its session) and all sessions shared one 'default' container.

2. Every command failed with exit 126 because the desktop gateway recorded
   the HOST launch directory as the session cwd, and each command was
   prefixed with 'cd /Users/<user>/...' inside the container.

Fixes (class-wide, single owners):

- container_persistent: false + docker now keys containers PER SESSION:
  fresh container per chat, removed at session close/idle. delegate_task
  children share the parent's container via an explicit alias registry.
  container_persistent: true keeps the documented ONE-long-lived-container
  contract unchanged.
- _resolve_task_host_cwd() is the single owner of the cwd->/workspace mount
  policy across all four env-creation sites; under isolation it refuses
  process-global cwd sources and mounts only the session's own attached
  workspace (tui_gateway now tags overrides with cwd_source).
- _resolve_command_cwd() gains the same host-path guard the env-creation
  sites already had (#50636/#54447 sibling site): a recorded host cwd is
  discarded on container backends instead of cd-ing every command into a
  nonexistent path.

E2E-tested against real Docker: distinct containers per session, no stale
mount in a fresh session, no exit 126 from host cwd records, containers
removed at session teardown.
2026-08-09 14:35:02 -07:00
..
__init__.py
…
conftest.py
…
test_accretion_caps.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ansi_strip.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_approval.py Merge branch 'main' into feat/hermes-relay-tool-metrics 2026-08-04 12:43:38 -04:00
test_approval_config_readonly.py perf(tools): use load_config_readonly on the approval guard path 2026-08-02 21:17:49 +05:30
test_approval_deny_rules.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_approval_interrupt.py fix(approval): honor canonical gateway timeout 2026-07-12 22:43:57 -07:00
test_approval_mode_parity.py refactor: complete approval mode/timeout resolution migration to tools/approval.py core (TUI + codex surfaces) 2026-07-29 11:19:24 -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 test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_async_delegation.py fix(gateway): preserve delegates during session reaping 2026-08-02 14:02:08 -07:00
test_async_delegation_fd_leak.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_audio_container.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_base_environment.py fix(tools): allocate snapshot temp paths with mktemp instead of $BASHPID 2026-08-03 13:47:29 +05:30
test_blocked_command_guidance.py feat(terminal): auto-save parser-limit-blocked payloads as runnable scripts 2026-08-02 15:11:21 -07:00
test_blueprints.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_camofox.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_camofox_auth.py fix(tools): isolate model tools by multiplex profile 2026-08-02 00:11:50 -07:00
test_browser_camofox_ensure_tab.py
…
test_browser_camofox_persistence.py fix(browser): scope Camofox session identity 2026-08-02 00:11:50 -07:00
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: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_camofox_timeout.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_cdp_override.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_cdp_tool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_chromium_autoinstall.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_chromium_check.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_cloud_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_cloud_provider_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_command_timeout_race.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_console.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_console_ssrf.py fix(browser): extend private-network guard to browser_console 2026-07-01 05:23:17 -07:00
test_browser_content_none_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_eval_ssrf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_eval_supervisor_path.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_get_images_ssrf.py
…
test_browser_hardening.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_headed_mode.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_homebrew_paths.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_hybrid_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_lightpanda.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_open_timeout.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_orphan_reaper.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_private_page_action_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_secret_exfil.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_snapshot_ssrf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_ssrf_local.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_supervisor.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_supervisor_healthcheck.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_browser_type_redaction.py
…
test_browser_use_session_expiry.py fix(browser): replace expired cloud sessions 2026-08-02 11:18:41 +05:30
test_budget_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_build_subprocess_env.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_checkpoint_manager.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clarify_gateway.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clarify_tool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_clipboard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_code_execution.py test(tools): cover UTF-8 BOM input in json_parse sandbox helper 2026-08-08 12:32:23 -07:00
test_code_execution_modes.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_code_execution_windows_env.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_command_guards.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
test_computer_use.py fix(sec): update mcp to 1.28.1 2026-07-31 13:42:03 -04:00
test_computer_use_approval_isolation.py test: isolate computer-use approval globals between tests 2026-07-29 10:06:27 -07:00
test_computer_use_capture_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_computer_use_cua_0_9.py feat(computer_use): align cua-driver 0.10 permission modes 2026-07-29 12:19:37 -07:00
test_computer_use_cua_0_10_permissions.py fix(computer_use): resolve gateway session-key namespace in permission-mode lookup 2026-07-29 12:19:37 -07:00
test_computer_use_cua_backend_linux.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_computer_use_delivery_ladder.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_computer_use_null_pid_windows.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_computer_use_vision_routing.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_config_null_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_container_cwd_sanitize.py test: fix restored-test regressions vs current main 2026-07-29 19:48:37 -07:00
test_credential_files.py fix(docker): close the cold-container and multi-backend gaps in attachment delivery 2026-08-08 05:44:18 -07:00
test_credential_pool_env_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cron_approval_mode.py fix(cron): scope cron approval context per session 2026-08-03 00:25:20 +05:30
test_cron_prompt_injection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_cronjob_run_background.py fix(cron): deliver manual runs on gateway loop 2026-08-06 23:14:55 -07:00
test_cronjob_run_immediate.py fix(cron): thread per-run prompt through cronjob(action='run') (#57331) 2026-08-06 23:14:55 -07:00
test_cronjob_tools.py fix(cron): close GitHub auth-header exemption abuse in prompt scanner 2026-07-31 22:33:00 -07:00
test_cross_profile_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_daemon_pool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_daytona_environment.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_debug_helpers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate.py feat(delegation): validate batch task quality before spawning children 2026-08-07 08:57:57 -07:00
test_delegate_apiserver_background.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate_batch_validation.py fix: post-merge audit follow-ups for #81138/#81139/#81141/#81148 2026-08-08 05:21:09 -07:00
test_delegate_composite_toolsets.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate_cost_footer.py feat(delegation): surface per-delegation cost in the result entry 2026-08-07 08:58:02 -07:00
test_delegate_kanban_isolation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate_output_schema.py test: use valid 2-task batches in schema-rejection tests 2026-08-07 09:07:42 -07:00
test_delegate_subagent_timeout_diagnostic.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate_summary_budget.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegate_toolset_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_delegation_live_log.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_denial_circuit_breaker.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_desktop_ui.py feat(desktop): agent can focus panes + shared desktop-UI event bridge 2026-07-22 12:13:01 -05:00
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(tools): isolate model tools by multiplex profile 2026-08-02 00:11:50 -07:00
test_docker_cgroup_limits.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_config_migrate.py refactor: config auto-migration support floor at v12 + deprecated shim retirement 2026-07-29 16:44:31 -07:00
test_docker_daemon_redirect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_environment.py fix(security): isolate explicit Docker passthrough snapshots 2026-08-02 00:36:03 -07:00
test_docker_find.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_network_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_orphan_reaper_integration.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_rebootstrap_nous_session.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_docker_session_isolation.py fix(docker): per-session container isolation and session-scoped workspace mounts 2026-08-09 14:35:02 -07:00
test_dockerfile_immutable_install.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_dockerfile_node_modules_perms.py
…
test_dockerfile_pid1_reaping.py fix(install): support non-pid-1 container entrypoints 2026-08-01 10:52:34 -07:00
test_ensure_task_env.py fix(tools): lazily bring up sandbox for vision_analyze reads 2026-08-07 09:11:48 -07:00
test_env_passthrough.py fix(security): scope passthrough env to routed profile 2026-08-02 00:36:03 -07:00
test_env_probe.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_execute_code_approval_cluster.py fix(cron): scope cron approval context per session 2026-08-03 00:25:20 +05:30
test_execution_flag_detection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_fal_common.py test(fal): pin fal_common behavioral contracts 2026-07-29 21:30:53 -07:00
test_feishu_tools.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_operations.py fix(file-ops): classify binary files at the byte layer, not on transport-lossy text 2026-08-08 12:34:06 -07:00
test_file_operations_edge_cases.py fix(file): align grep fallback regex behavior 2026-08-06 05:31:17 +05:30
test_file_ops_cwd_tracking.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_read_guards.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_staleness.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_state_registry.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_sync.py fix(file-sync): serialize concurrent sync cycles 2026-08-03 22:53:32 +05:30
test_file_sync_back.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_sync_perf.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
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 feat(file): raise read_file default limit from 500 to 2000 lines 2026-08-02 15:09:33 -07:00
test_file_tools_container_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_tools_cwd_resolution.py fix(file-tools): resolve local V4A patch paths before apply 2026-08-01 14:31:51 -07:00
test_file_tools_live.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_tools_tilde_profile.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_file_write_safety.py feat(security): protected agent-instruction files always require write approval 2026-08-07 08:58:38 -07:00
test_file_write_surrogate_roundtrip.py test(file_operations): pin early surrogate rejection over the backstop (#79178) 2026-08-08 12:31:19 -07:00
test_find_shell.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_flux3_video_tool.py Portal free user vision fix + flux3 polling improvements (#75448) 2026-07-31 10:17:55 -04:00
test_focus_pane_tool.py fix(agent): the desktop's tools reach it on remote and cloud backends too 2026-08-06 19:35:47 -06:00
test_force_dangerous_override.py
…
test_fuzzy_match.py fix(tools): validate timeout, reject whitespace old_string, narrow /private/var block 2026-08-01 15:41:21 -07:00
test_gateway_cwd_contract.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_generation_source_confinement.py fix(image_gen): confine generation source images to the terminal backend 2026-08-08 04:19:38 -07:00
test_gnu_long_option_abbreviation_bypass.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_hardline_blocklist.py fix(approval): stop treating newlines inside quoted arguments as command starts 2026-08-02 23:11:56 -07:00
test_heartbeat_stale_thresholds.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_hermes_subprocess_env.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_hidden_dir_filter.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_homeassistant_tool.py fix(tools): isolate model tools by multiplex profile 2026-08-02 00:11:50 -07:00
test_hook_output_spill.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_hub_lock_non_utf8_68053.py fix(skills): tolerate non-UTF-8 bytes in hub lock.json 2026-07-24 17:10:39 -07:00
test_image_generation.py Add more FAL models to nous portal (#82019) 2026-08-08 19:59:12 -04:00
test_image_generation_artifacts.py fix(file-sync): serialize concurrent sync cycles 2026-08-03 22:53:32 +05:30
test_image_generation_env.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_image_generation_image_to_image.py feat(media): default-on upscaling for sub-2MP image models (FAL + Krea) 2026-08-08 14:49:28 -07:00
test_image_generation_plugin_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_image_source.py fix(vision): retry container exec-read for Docker cold-start, surface stderr (#76566) 2026-08-08 03:59:42 -07:00
test_init_session_cwd_respect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_interrupt.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_kanban_comment_injection.py feat(kanban): talk to a running worker without a restart 2026-07-30 07:18:08 -05:00
test_kanban_redaction.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_kanban_tools.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_lazy_deps.py refactor: derive teams install hint via feature_install_command(venv_pip=True) 2026-08-07 13:28:43 +05:30
test_lazy_deps_durable_target.py fix(tools): preserve document extraction boundaries 2026-08-08 05:13:46 -07:00
test_lazy_deps_managed.py fix(lazy-deps): skip the install ladder on package-manager installs 2026-08-03 14:09:46 +05:30
test_line_ending_preservation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_llm_content_none_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_background_child_hang.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_cwd_permission_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_env_blocklist.py fix(security): scope passthrough env to routed profile 2026-08-02 00:36:03 -07:00
test_local_env_cwd_recovery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_env_relative_cwd.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_env_session_leak.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_env_windows_msys.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_interrupt_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_shell_init.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_local_tempdir.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_managed_browserbase_and_modal.py test: stub EnvironmentConnectionError in environments.base module stub 2026-08-07 09:07:55 -07:00
test_managed_media_gateways.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_managed_modal_environment.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_managed_tool_gateway.py Portal free user vision fix + flux3 polling improvements (#75448) 2026-07-31 10:17:55 -04:00
test_mcp_bridge_single_failure.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_cancelled_error_propagation.py fix(ci): make tests, workflows, and attribution reliable under load (#66373) 2026-07-17 20:55:24 +00:00
test_mcp_capability_gating.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_circuit_breaker.py fix(ci): make tests, workflows, and attribution reliable under load (#66373) 2026-07-17 20:55:24 +00:00
test_mcp_client_cert.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_config_whitespace_warning.py feat(mcp): warn on hidden whitespace in MCP config values 2026-07-31 21:21:10 -07:00
test_mcp_dashboard_oauth.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_discovery_cross_process.py fix(mcp): guard discovery with cross-process lock 2026-07-28 14:31:24 -07:00
test_mcp_dynamic_discovery.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_elicitation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_empty_error_message.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_failure_classification.py fix(mcp): let a server that 401s at startup come back after re-login 2026-08-08 02:21:36 -05:00
test_mcp_identity_header.py feat(kanban,mcp): orphaned-card reconciliation + per-server MCP identity header 2026-08-07 08:58:20 -07:00
test_mcp_image_content.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_initial_connect_shutdown.py fix(mcp): let a server that 401s at startup come back after re-login 2026-08-08 02:21:36 -05:00
test_mcp_invalid_url.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_lazy_start.py polish(mcp): simplify-pass folds on the lazy-startup salvage 2026-08-03 14:24:37 +05:30
test_mcp_list_pagination.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_loop_profile_override.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_oauth.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_oauth_bidirectional.py
…
test_mcp_oauth_cold_load_expiry.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_oauth_integration.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_oauth_manager.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_oauth_metadata.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_parked_self_probe.py fix(mcp): re-register tools during parked revival 2026-07-21 12:43:00 -07:00
test_mcp_poll_loop_oom_integration.py test(mcp): e2e integration coverage for #63892 poll-loop OOM spin 2026-07-18 18:49:56 -04:00
test_mcp_preflight_content_type.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_probe.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_rapid_drop_budget.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_reconnect_log_hygiene.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_reconnect_retry_reset.py fix(ci): make tests, workflows, and attribution reliable under load (#66373) 2026-07-17 20:55:24 +00:00
test_mcp_reconnect_signal.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
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 test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_schema_cache.py polish(mcp): simplify-pass folds on the lazy-startup salvage 2026-08-03 14:24:37 +05:30
test_mcp_server_log_notifications.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_sse_transport.py
…
test_mcp_stability.py Merge remote-tracking branch 'origin/main' into tests/prune-low-value 2026-07-29 15:13:21 -07:00
test_mcp_stdio_encoding_handler.py fix(mcp): use encoding_error_handler='replace' for stdio transport 2026-07-24 15:47:12 -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_stdio_watchdog.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_structured_content.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_tool.py feat(plugins): map portable Agent Plugins streamable-http entries into the native MCP runtime 2026-08-08 23:56:46 -07:00
test_mcp_tool_401_handling.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_tool_issue_948.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_tool_session_expired.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_transport_group_reconnect.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_mcp_trust_gating.py feat(mcp): trust-tier gating for write-capable MCP tools via readOnlyHint 2026-08-07 08:58:32 -07:00
test_mcp_utility_capability_gating.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_media_caption_split.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_memory_tool.py fix: finish the missing-encoding sweep — BOM-tolerant reads for user-edited stores 2026-08-08 12:32:23 -07:00
test_memory_tool_import_fallback.py
…
test_memory_tool_schema.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_microsoft_graph_auth.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_microsoft_graph_client.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_modal_bulk_upload.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_modal_sandbox_fixes.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
test_modal_snapshot_isolation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_notify_on_complete.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_open_preview_tool.py fix(agent): the desktop's tools reach it on remote and cloud backends too 2026-08-06 19:35:47 -06:00
test_osv_check.py fix(security): cache OSV malware preflight verdicts and stop double component discovery (#75485) 2026-08-01 10:47:20 -07:00
test_parse_env_var.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_patch_already_applied.py feat(patch): detect already-applied edits and return success no-op 2026-08-02 15:09:53 -07:00
test_patch_failure_tracking.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_patch_multimatch_locations.py feat(patch): list match locations in ambiguous old_string errors 2026-08-02 15:51:43 -07:00
test_patch_parser.py refactor(file-ops): fold simplify-pass findings 2026-08-04 14:34:24 +05:30
test_patch_ws_diagnosis.py feat(patch): whitespace-visualized diagnosis on residual no-match errors 2026-08-02 15:12:02 -07:00
test_pr_6656_regressions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_process_registry.py refactor: clean up gateway scope identity predicate and tests 2026-08-09 21:43:32 +05:30
test_process_registry_write_stdin_surrogates.py fix(process_registry): surrogateescape-safe PTY stdin writes (#79178) 2026-08-08 12:31:19 -07:00
test_process_wait_clarity.py fix(process): wait timeout result reads as status, not failure 2026-08-02 15:11:02 -07:00
test_read_extract.py feat(read_extract): label each unreadable PDF gap with its preceding section text 2026-08-08 05:51:33 -07:00
test_read_file_utf8_binary_regression.py test(file-ops): end-to-end regression suite for the UTF-8-flagged-as-binary class 2026-08-08 12:34:06 -07:00
test_read_loop_detection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_read_preview_tool.py fix(agent): the desktop's tools reach it on remote and cloud backends too 2026-08-06 19:35:47 -06:00
test_read_window_tool.py feat(agent): read_window_below tool — which OS window is underneath the desktop app 2026-08-08 12:17:50 -05:00
test_refresh_agent_mcp_tools.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_registry.py fix(tools): bound the exception text dispatch writes into its own log line 2026-08-08 14:56:38 +05:30
test_request_tool_approval.py Merge updated model metrics into tool metrics 2026-08-02 20:11:20 -07:00
test_resolve_path.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_restored_delegation_ownership.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_sandbox_failure_hints.py feat(execute_code): recovery hints for known sandbox failure classes 2026-08-02 15:13:24 -07:00
test_schema_sanitizer.py feat(mcp): collapse const-only anyOf/oneOf unions to property enums 2026-08-07 08:58:25 -07:00
test_search_auto_multiline.py feat(search): auto-enable multiline mode for newline patterns 2026-08-02 15:13:04 -07:00
test_search_budget_truncation.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_search_error_guard.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_search_hidden_dirs.py test(search): update grep command mirrors to -rnHE for fidelity with production 2026-08-06 05:31:17 +05:30
test_search_zero_match_and_multipath.py test(search): guard zero-match hint wiring on both engines 2026-08-02 15:42:44 -07:00
test_self_repo_guard.py fix(tools): keep non-bash -c invocations covered by the shell guard 2026-08-08 14:56:38 +05:30
test_send_message_missing_platforms.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_message_react.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_message_slack.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_message_target_parse.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_send_message_telegram_proxy.py
…
test_send_message_tool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_cwd_store.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_session_search.py perf(session-search): project fields before enrichment 2026-08-03 17:50:58 +05:30
test_shared_container_task_id.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_shell_bypass_denylist.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_signal_media.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_singularity_preflight.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_bundle_provenance.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_env_passthrough.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_improvements.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_linter.py feat(skills): advisory SKILL.md convention linter on create 2026-08-08 11:12:27 -07:00
test_skill_manager_tool.py Merge updated tool metrics into skill metrics 2026-07-31 07:30:30 -07:00
test_skill_provenance.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_size_limits.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_usage.py Merge updated tool metrics into skill metrics 2026-07-31 07:30:30 -07:00
test_skill_view_dedup.py feat(skills): dedup repeat skill_view calls with an unchanged-content stub 2026-08-02 15:12:43 -07:00
test_skill_view_path_check.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skill_view_traversal.py
…
test_skills_ast_audit.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skills_guard.py fix(security): extend secret redaction to GitLab token families 2026-07-31 21:31:10 -07:00
test_skills_hub.py Merge updated tool metrics into skill metrics 2026-08-02 20:12:37 -07:00
test_skills_hub_browse_sh.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skills_hub_clawhub.py fix(skills-hub): include owner in ClawHub source URLs and add retry on 429 (#51236) 2026-07-31 22:33:11 -07:00
test_skills_list_modified_diff.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skills_sync.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skills_sync_client.py fix(sync): read org state from the org endpoints, not the personal ones (#75237) 2026-07-30 22:31:42 -07:00
test_skills_tool.py Merge updated tool metrics into skill metrics 2026-07-31 07:30:30 -07:00
test_skills_tool_discovery_cache.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_skills_tool_profile_scope.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slack_send_message_media.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_slash_confirm.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_smart_approval_injection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_smart_approval_policy.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_snapshot_multiline_session_env_injection.py test(environments): cover multiline session env snapshot injection 2026-07-26 19:30:02 -07:00
test_snapshot_session_id_leak.py fix(tools): allocate snapshot temp paths with mktemp instead of $BASHPID 2026-08-03 13:47:29 +05:30
test_spotify_client.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ssh_bulk_upload.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_ssh_environment.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stage2_hook_seed_one_symlinks.py
…
test_stage2_hook_symlink_chown.py fix(docker): gate the remaining every-boot chown walks (cron, pairing) 2026-08-02 21:54:10 +05:30
test_stt_cloud_trim.py refactor(stt): fold review findings into the cloud silence trim 2026-08-07 19:26:04 +05:30
test_stt_default_language.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stt_idle_unload.py fix(stt): close idle-unload races — strong model ref, single long-lived watcher 2026-08-07 19:26:12 +05:30
test_stt_language_resolution.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_stt_silence_hallucinations.py fix(stt): thread confidence thresholds into faster-whisper's own gate (#74178) 2026-08-03 14:30:05 +05:30
test_subagent_steer.py fix(delegation): bind steering to session generation 2026-08-06 09:40:27 -07:00
test_subprocess_stdin_guard.py
…
test_subprocess_utf8_encoding.py fix: extend UTF-8 encoding to _op_version probe (#53428) 2026-07-24 11:45:57 -07:00
test_symlink_prefix_confusion.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_sync_back_backends.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_telegram_send_message_caption.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_terminal_compound_background.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_terminal_config_env_sync.py
…
test_terminal_cwd_echo.py feat(terminal): echo cwd in result when a command changes the working directory 2026-08-02 15:10:13 -07:00
test_terminal_degraded_mode.py feat(terminal): graceful degradation for remote backend connection failures 2026-08-07 09:07:55 -07:00
test_terminal_env_bridge.py fix(terminal): preserve SSH remote home cwd 2026-08-07 18:41:57 -06:00
test_terminal_error_redaction.py fix(terminal-tool): redact terminal error result fields 2026-08-08 04:28:19 -07:00
test_terminal_exit_semantics.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_terminal_foreground_timeout_cap.py fix(tools): validate timeout, reject whitespace old_string, narrow /private/var block 2026-08-01 15:41:21 -07:00
test_terminal_hints.py feat(terminal): output-pattern failure hints for common error classes 2026-08-02 15:08:35 -07:00
test_terminal_none_command_guard.py
…
test_terminal_output_transform_hook.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_terminal_requirements.py test: fix restored-test regressions vs current main 2026-07-29 19:48:37 -07:00
test_terminal_self_repo_guard.py fix(tools): harden live source checkout guard 2026-08-08 14:56:38 +05:30
test_terminal_task_cwd.py fix(tools): dedup eviction task_id + workdir cwd leak 2026-08-01 15:38:57 -07:00
test_terminal_timeout_output.py
…
test_terminal_tool.py fix(tools): allow Unicode letters in workdir validation 2026-08-03 13:47:29 +05:30
test_terminal_tool_exception_redaction.py fix(security): redact terminal exception results and ACP stderr logs (#77484) 2026-08-08 04:19:49 -07:00
test_terminal_tool_pty_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_terminal_tool_requirements.py fix(tools): isolate model tools by multiplex profile 2026-08-02 00:11:50 -07:00
test_terminal_truncation_spill.py feat(terminal): recoverable truncation — spill full output + report pre-truncation size 2026-08-02 15:52:14 -07:00
test_termux_api_detection.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_threaded_process_handle.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_threat_patterns.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tirith_security.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_todo_tool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_todo_tool_type_coercion.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_backend_helpers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_output_limits.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_result_storage.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tool_search.py Merge branch 'main' into feat/hermes-relay-tool-metrics 2026-08-04 12:43:38 -04:00
test_tool_search_context_provider.py fix(tools): make the tool-search context gate provider-aware (#68589) 2026-07-21 05:27:23 -07:00
test_transcription.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_transcription_command_providers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
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: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_transcription_plugin_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_transcription_tools.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_command_providers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_container_repair.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_deepinfra.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_dotenv_fallback.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_gemini.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_instructions.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_kittentts.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_long_form_chunking.py fix(tts): split long speech by provider and platform limits 2026-08-08 22:54:20 +05:30
test_tts_macos_output.py test: adapt salvaged voice tests to current main + lint fix 2026-07-28 11:57:37 -07:00
test_tts_max_text_length.py fix(tts): split long speech by provider and platform limits 2026-08-08 22:54:20 +05:30
test_tts_minimax_region.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_mistral.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_model_cache_lru.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_openai_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_opus_routing.py fix(matrix): enforce Ogg/Opus at send_voice boundary, probe metadata off-loop 2026-07-28 11:55:48 -07:00
test_tts_output_timestamp.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_path_traversal.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_piper.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_plugin_dispatch.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_prepare_spoken.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_provider_base_urls.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_pythonpath_fallback.py test(tts): add STT fallback regression for _transcribe_mistral (#53259) 2026-07-28 11:53:36 -07:00
test_tts_response_body_cap.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_speed.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_streaming.py perf(tts): pipeline sync per-sentence synthesis with playback 2026-08-03 10:25:15 +05:30
test_tts_streaming_e2e.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_text_normalize.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_tts_xai_speech_tags.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_url_safety.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_vercel_sandbox_environment.py fix(tests): stub _ensure_vercel_sdk in vercel sandbox tests — CI has no vercel dist 2026-07-29 21:30:53 -07:00
test_video_analyze.py fix(video): route terminal-backend reads through the shared media resolver 2026-08-08 03:59:39 -07:00
test_video_generation_dispatch.py feat(media): opt-in upscale pass for image_generate and video_generate across FAL and Krea 2026-08-08 14:49:28 -07:00
test_video_generation_dynamic_schema.py Add more FAL models to nous portal (#82019) 2026-08-08 19:59:12 -04:00
test_video_generation_tool_surface_matrix.py Add more FAL models to nous portal (#82019) 2026-08-08 19:59:12 -04:00
test_vision_native_fast_path.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_vision_region.py feat(vision): optional region zoom crop on vision_analyze 2026-08-07 08:58:49 -07:00
test_vision_tools.py feat(vision): optional region zoom crop on vision_analyze 2026-08-07 08:58:49 -07:00
test_voice_cli_integration.py fix(tts): split long speech by provider and platform limits 2026-08-08 22:54:20 +05:30
test_voice_credential_pool_resolution.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_voice_mode.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_voice_mode_playback_env_scrub.py test: set returncode on fake Popen proc (main's player loop reads returncode, not wait()) 2026-07-28 18:12:26 -07:00
test_voice_stop_phrase.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_voice_thinking_sound.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_voice_tts_echo_guard.py fix(voice): require minimum evidence for fragment echo matching, use char windows 2026-08-07 14:38:02 +05:30
test_voice_wsl_pipewire.py fix(voice): honor forwarded audio (PIPEWIRE_REMOTE) in WSL detection 2026-07-28 11:57:37 -07:00
test_wake_word.py test(wake-word): verify resampled audio values 2026-08-08 13:49:24 +05:30
test_watch_patterns.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_extract_robustness.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_providers.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_providers_brave_free.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_providers_ddgs.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_providers_searxng.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_providers_xai.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_tools_config.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_tools_dict_urls.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_tools_tavily.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_web_tools_truncate.py fix(tests): read and write test files as UTF-8 so the suite runs on Windows 2026-08-08 12:33:19 -07:00
test_website_policy.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_whatsapp_send_message_media.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_windows_compat.py fix: relax start_new_session assertion for systemd scope path 2026-08-08 01:12:16 +05:30
test_windows_native_support.py fix(windows): native Windows correctness for CLI, gateway status, banner, and WSL browser paths 2026-07-29 23:16:18 -07:00
test_working_diff.py fix(tools): decode git output as UTF-8 in working_diff on Windows 2026-08-08 12:34:46 -07:00
test_write_approval.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_write_deny.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_write_file_syntax_gate.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_write_verification.py feat(file): verify write_file content on disk and say so (verified: true) 2026-08-02 15:12:23 -07:00
test_x_search_tool.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_xai_http_credentials.py fix(xai): fail closed in xai_http.get_env_value — honor get_secret's verdict 2026-08-02 09:59:52 -07:00
test_xai_http_storage.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00
test_yolo_mode.py Merge remote-tracking branch 'origin/main' into tests/prune-low-value 2026-07-29 14:12:25 -07:00
test_zombie_process_cleanup.py test: prune wave 2 + speed fixes — 28,106 → 19,757 test functions, suite wall 315s → 294s 2026-07-29 13:39:40 -07:00