hermes-agent/tests
ethernet 7e84d2b5a4 fix(terminal): ignore stale env.cwd from a different session's cd
The terminal environment is shared process-globally (collapsed to the
default key), so env.cwd tracks the LAST session that ran a command.
_resolve_command_cwd() trusted env.cwd unconditionally — no ownership
check — so when session A left env.cwd pointing at A's checkout,
session B's first terminal command inherited A's stale cwd and ran in
the wrong workspace.

The file tools already solved this exact shared-env problem with
_live_cwd_if_owned() checking env.cwd_owner. The terminal tool never
got the same guard.

Fix: capture env.cwd_owner BEFORE the current session claims it, and
pass it as prev_owner to _resolve_command_cwd. When the previous owner
was a different session, env.cwd is stale — fall through to default_cwd
(the config/override cwd for this session) instead. Once the session
has claimed the env, subsequent calls in the same session still trust
env.cwd so in-session  state survives.
2026-07-14 15:31:39 -04:00
..
acp fix(approval): scope smart deny owner overrides to one operation 2026-07-13 04:31:55 -07:00
acp_adapter
…
agent fix(agent): gate Telegram rich-Markdown hint on rich_messages config 2026-07-14 06:48:53 -07:00
ci
…
cli test(cli): cover noted multimodal persistence handoff 2026-07-14 03:32:46 +05:30
computer_use
…
cron feat(config): support per-model reasoning_effort overrides 2026-07-14 11:46:40 -07:00
dashboard fix(dashboard): use loopback host for in-container WebSocket client (#58993) [salvage #59682] (#60092) 2026-07-07 18:33:28 +10:00
docker
…
e2e test(e2e): stub reset-notice session info to deflake test_new_resets_session (#60175) 2026-07-07 04:28:12 -07:00
fakes
…
fixtures/plugins/example-dashboard/dashboard
…
gateway test: update stale _load_reasoning_config mocks for new model parameter 2026-07-14 11:46:40 -07:00
hermes_cli fix(upstage): collapse unknown future efforts to high; behavior-contract tests 2026-07-15 00:09:24 +05:30
hermes_state feat(sessions): full prune-filter set + --redact on sessions export 2026-07-07 12:36:41 -07:00
honcho_plugin
…
integration
…
manual
…
openviking_plugin
…
plugins fix(upstage): collapse unknown future efforts to high; behavior-contract tests 2026-07-15 00:09:24 +05:30
providers feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
run_agent perf(agent): segment mixed tool batches to recover lost concurrency (#64460) 2026-07-14 11:53:05 -07:00
scripts
…
secret_sources feat(secrets): adapt 1Password onto the SecretSource interface 2026-07-06 04:58:07 -07:00
skills
…
stress
…
tools fix(terminal): ignore stale env.cwd from a different session's cd 2026-07-14 15:31:39 -04:00
tui_gateway feat(config): support per-model reasoning_effort overrides 2026-07-14 11:46:40 -07:00
website
…
__init__.py
…
conftest.py test: deflake CI and dev-machine flaky tests in bulk (11 tests, 10 files) (#61816) 2026-07-09 20:03:11 -07:00
run_interrupt_test.py
…
test_account_usage.py
…
test_assistant_ui_tap_compat.py
…
test_atomic_replace_symlinks.py
…
test_background_review_list_shapes.py fix(background-review): guard summarize against list-shaped tool responses (#59437) 2026-07-06 03:28:30 -07:00
test_background_review_session_isolation.py
…
test_base_url_hostname.py
…
test_batch_runner_checkpoint.py
…
test_bitwarden_secrets.py feat(secrets): pluggable SecretSource interface + multi-source orchestrator 2026-07-06 04:58:07 -07:00
test_cli_file_drop.py
…
test_cli_manual_compress.py
…
test_cli_skin_integration.py
…
test_code_skew.py
…
test_copilot_initiator.py
…
test_ctx_halving_fix.py chore: restore test_ctx_halving_fix.py to main 2026-07-14 03:58:54 +05:30
test_dashboard_sidecar_close_on_disconnect.py
…
test_delegate_cascade_49148.py
…
test_desktop_electron_pin.py feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00
test_desktop_mac_entitlements.py
…
test_dispatch_session_id.py
…
test_empty_model_fallback.py
…
test_empty_session_hygiene.py
…
test_env_loader_op_bootstrap.py fix(secrets): make 1Password bootstrap token reliable outside systemd 2026-07-06 04:58:07 -07:00
test_env_loader_secret_sources.py feat(secrets): adapt 1Password onto the SecretSource interface 2026-07-06 04:58:07 -07:00
test_evidence_store.py
…
test_fast_safe_load.py
…
test_gateway_streaming_nested_config.py
…
test_get_tool_definitions_cache_isolation.py
…
test_hermes_bootstrap.py
…
test_hermes_constants.py refactor(reasoning): unify per-model reasoning resolution behind a single chokepoint 2026-07-14 11:46:40 -07:00
test_hermes_home_profile_warning.py
…
test_hermes_logging.py
…
test_hermes_state.py test(gateway): cover ws_orphan_reap session recovery (#63207) 2026-07-14 16:58:47 +05:30
test_hermes_state_compression_locks.py
…
test_hermes_state_wal_fallback.py
…
test_honcho_client_concurrency.py
…
test_honcho_client_config.py
…
test_honcho_session_context.py
…
test_honcho_startup_fail_open.py
…
test_install_diverged_update.py
…
test_install_lockfile_churn.py
…
test_install_no_initial_commit.py
…
test_install_ps1_native_stderr_eap.py
…
test_install_ps1_node_path_for_npm.py test(installer): guard Ensure-NodeExeOnPath wiring in install.ps1 2026-07-07 21:17:34 +07:00
test_install_ps1_python_fallback_venv.py
…
test_install_ps1_uv_powershell_host.py
…
test_install_ps1_web_server_syntax_probe.py fix(install): guard Windows desktop installs against broken web_server 2026-07-05 19:35:30 -07:00
test_install_sh_browser_install.py
…
test_install_sh_install_method_stamp.py
…
test_install_sh_node_global_prefix.py
…
test_install_sh_pythonpath_sanitization.py
…
test_install_sh_root_fhs_uv_python_path.py
…
test_install_sh_setup_wizard_tty_probe.py
…
test_install_sh_symlink_stomp.py
…
test_install_sh_termux_network_prereqs.py
…
test_install_unmerged_index.py
…
test_ipv4_preference.py
…
test_lazy_session_regressions.py
…
test_lint_config.py
…
test_live_system_guard_self_test.py
…
test_mcp_serve.py
…
test_mini_swe_runner.py
…
test_minimax_model_validation.py
…
test_minimax_oauth.py
…
test_minisweagent_path.py
…
test_model_forces_max_completion_tokens.py
…
test_model_picker_scroll.py
…
test_model_tools.py
…
test_model_tools_async_bridge.py
…
test_ollama_num_ctx.py
…
test_onepassword_secrets.py feat(secrets): add 1Password (op://) secret source 2026-07-06 04:58:07 -07:00
test_output_cap_parsing.py
…
test_package_json_lazy_deps.py
…
test_packaging_metadata.py
…
test_plugin_skills.py
…
test_plugin_utils.py
…
test_process_loop_event_loop_warning.py
…
test_profile_isolation_runtime.py
…
test_project_metadata.py fix(nemo-relay): align dynamic plugin configuration 2026-07-13 17:01:08 -06:00
test_pty_keepalive_ws.py feat(chat): reattach /api/pty sessions via ?attach= token 2026-07-07 15:15:37 -07:00
test_pty_session.py feat(pty): periodic reaper wired into dashboard lifespan 2026-07-07 15:15:37 -07:00
test_retry_utils.py refactor(retry): single-source Z.AI overload short-attempts + drop change-detector assert 2026-07-07 11:57:01 +05:30
test_run_tests_parallel.py
…
test_sanitize_tool_error.py
…
test_session_workspace_binding.py feat(sessions): workspace_key grouping helper + tests 2026-07-12 05:07:52 -04:00
test_setup_temporary_outputs.py
…
test_slash_worker_watchdog.py
…
test_sql_injection.py
…
test_stale_utils_module_import.py
…
test_state_db_malformed_repair.py
…
test_subprocess_home_isolation.py
…
test_telegram_polling_progress_ptb.py chore(release): map arnispiekus in AUTHOR_MAP 2026-07-14 17:46:21 +05:30
test_termux_all_extra_compat.py
…
test_timezone.py
…
test_toolset_distributions.py
…
test_toolsets.py
…
test_trajectory_compressor.py
…
test_trajectory_compressor_async.py
…
test_transform_llm_output_hook.py
…
test_transform_tool_result_hook.py
…
test_tui_gateway_loop_noise.py
…
test_tui_gateway_queue_on_busy.py
…
test_tui_gateway_server.py test: update stale _load_reasoning_config mocks for new model parameter 2026-07-14 11:46:40 -07:00
test_tui_gateway_ws.py
…
test_tui_mcp_late_refresh.py
…
test_utils_truthy_values.py
…
test_web_server.py
…
test_wheel_locales_e2e.py
…
test_windows_subprocess_no_window_flags.py
…
test_yaml_indent_consistency_31999.py
…
test_yuanbao_integration.py
…
test_yuanbao_markdown.py
…
test_yuanbao_pipeline.py perf(yuanbao): bounded-concurrency inbound media resolve 2026-07-08 08:05:45 -07:00
test_yuanbao_proto.py
…
test_yuanbao_reconnect_set_active.py
…
test_yuanbao_shutdown.py
…