diff --git a/tests/gateway/test_approve_deny_commands.py b/tests/gateway/test_approve_deny_commands.py index 7976838ef..18eef7b65 100644 --- a/tests/gateway/test_approve_deny_commands.py +++ b/tests/gateway/test_approve_deny_commands.py @@ -421,6 +421,18 @@ class TestBlockingApprovalE2E: os.environ.pop("HERMES_GATEWAY_SESSION", None) os.environ.pop("HERMES_EXEC_ASK", None) os.environ.pop("HERMES_SESSION_KEY", None) + # Force manual approval mode — these tests exercise the blocking + # gateway flow, not smart approval. The default became "smart" + # (#62661), which routes through _smart_approve() first and + # delays the notify callback past the test's wait window. + self._approval_mode_patch = patch( + "tools.approval._get_approval_config", + return_value={"mode": "manual"}, + ) + self._approval_mode_patch.start() + + def teardown_method(self): + self._approval_mode_patch.stop() def test_blocking_approval_approve_once(self): """check_all_command_guards blocks until resolve_gateway_approval is called."""