From 444198b39091fbb6b260e53c8c15ff6f6639f2d5 Mon Sep 17 00:00:00 2001 From: GCWing Date: Fri, 13 Mar 2026 15:00:11 +0800 Subject: [PATCH] feat(config): enable tool auto-execution by default Set skip_tool_confirmation default to true in AIConfig so new users get auto-execute enabled out of the box; add a dedicated serde default fn so the value is also correct when the field is absent from an existing config file. Mark DeleteFileTool and FileWriteTool as not requiring permissions (needs_permissions to false), aligning with the auto-execute default. --- .../src/agentic/tools/implementations/delete_file_tool.rs | 2 +- .../src/agentic/tools/implementations/file_write_tool.rs | 2 +- src/crates/core/src/service/config/types.rs | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/crates/core/src/agentic/tools/implementations/delete_file_tool.rs b/src/crates/core/src/agentic/tools/implementations/delete_file_tool.rs index e0df0761..b0eb641a 100644 --- a/src/crates/core/src/agentic/tools/implementations/delete_file_tool.rs +++ b/src/crates/core/src/agentic/tools/implementations/delete_file_tool.rs @@ -100,7 +100,7 @@ Important notes: } fn needs_permissions(&self, _input: Option<&Value>) -> bool { - true + false } async fn validate_input(&self, input: &Value, _context: Option<&ToolUseContext>) -> ValidationResult { diff --git a/src/crates/core/src/agentic/tools/implementations/file_write_tool.rs b/src/crates/core/src/agentic/tools/implementations/file_write_tool.rs index 776d15ba..5f322e17 100644 --- a/src/crates/core/src/agentic/tools/implementations/file_write_tool.rs +++ b/src/crates/core/src/agentic/tools/implementations/file_write_tool.rs @@ -61,7 +61,7 @@ Usage: } fn needs_permissions(&self, _input: Option<&Value>) -> bool { - true + false } async fn validate_input( diff --git a/src/crates/core/src/service/config/types.rs b/src/crates/core/src/service/config/types.rs index 73176987..e69155a1 100644 --- a/src/crates/core/src/service/config/types.rs +++ b/src/crates/core/src/service/config/types.rs @@ -404,7 +404,7 @@ pub struct AIConfig { pub tool_confirmation_timeout_secs: Option, /// Skip tool execution confirmation (global, applies to all modes). - #[serde(default)] + #[serde(default = "default_skip_tool_confirmation")] pub skip_tool_confirmation: bool, /// Debug-mode configuration (log path, language templates, etc.). @@ -453,6 +453,10 @@ fn default_tool_confirmation_timeout() -> Option { None } +fn default_skip_tool_confirmation() -> bool { + true +} + impl Default for ModeConfig { fn default() -> Self { Self { @@ -1114,7 +1118,7 @@ impl Default for AIConfig { proxy: ProxyConfig::default(), tool_execution_timeout_secs: default_tool_execution_timeout(), tool_confirmation_timeout_secs: default_tool_confirmation_timeout(), - skip_tool_confirmation: false, + skip_tool_confirmation: true, debug_mode_config: DebugModeConfig::default(), known_tools: Vec::new(), }