From b721982bde7d313be5328b5c6d8e18ef102aa4ee Mon Sep 17 00:00:00 2001 From: cyq <15000851237@163.com> Date: Mon, 8 Jun 2026 23:56:25 +0800 Subject: [PATCH] fix(tui): name allow_shell blocker for shell tools --- crates/tui/src/core/engine/tests.rs | 5 +++++ crates/tui/src/core/engine/tool_catalog.rs | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/tui/src/core/engine/tests.rs b/crates/tui/src/core/engine/tests.rs index bed3276a..393f4ea0 100644 --- a/crates/tui/src/core/engine/tests.rs +++ b/crates/tui/src/core/engine/tests.rs @@ -3244,6 +3244,10 @@ fn missing_shell_tool_error_message_names_allow_shell_gate() { ] { let message = missing_tool_error_message(tool_name, &catalog); assert!(message.contains("not available in the current tool catalog")); + assert!( + message.contains("allow_shell = false"), + "{tool_name}: {message}" + ); assert!(message.contains("allow_shell"), "{tool_name}: {message}"); assert!( message.contains("/config allow_shell true"), @@ -3272,6 +3276,7 @@ fn missing_shell_tool_error_message_keeps_allow_shell_hint_with_suggestions() { assert!(message.contains("Did you mean:")); assert!(message.contains("exec")); + assert!(message.contains("allow_shell = false")); assert!(message.contains("allow_shell")); assert!(message.contains("/config allow_shell true")); assert!(message.contains("--save")); diff --git a/crates/tui/src/core/engine/tool_catalog.rs b/crates/tui/src/core/engine/tool_catalog.rs index 9ddc0862..56ebdf55 100644 --- a/crates/tui/src/core/engine/tool_catalog.rs +++ b/crates/tui/src/core/engine/tool_catalog.rs @@ -544,7 +544,8 @@ pub(super) fn missing_tool_error_message(tool_name: &str, catalog: &[Tool]) -> S } fn shell_tool_allow_shell_hint() -> &'static str { - "Shell tools require top-level `allow_shell = true`. \ + "Shell tools are disabled because top-level `allow_shell = false`; \ + they require `allow_shell = true`. \ In Agent mode, run `/config allow_shell true` for this session or add `--save` \ for future sessions; the next turn will expose shell with approval gating" }