Skip to content

Conversation

@aurelienaws
Copy link

Issue #, if available:
N/A

Description of changes:
• Adds configurable tool output verbosity via new setting chat.tool_output_verbose (default: true)
• When set to false, hides detailed tool execution output for trusted tools while preserving:
• Permission prompts for untrusted tools (safety preserved)
• Completion messages with tool names: ● Completed in 0.99s (fs_read, fs_write)
• Structured events for IDE integration
• Implementation changes:
• Added ChatToolOutputVerbose setting to Setting enum with full mapping
• Added tools_used_in_turn: Vec<String> field to ChatSession to track tools used in current turn
• Modified print_tool_description() to conditionally display output based on verbose || !trusted
• Enhanced completion message to append tool names when not verbose
• Added show_details parameter to Tool::invoke() and propagated through to queue_function_result()
• Updated fs_read tool implementations to respect show_details flag (6 call sites)

Tests

Test case: Default behavior (verbose=true)

List files in current directory

Output shows full tool details:

🛠️  Using tool: fs_read (trusted)
 ⋮ 
 ● Reading directory: /path/to/dir with maximum depth of 1
 ✓ Successfully read directory /path/to/dir (32 entries)
 ⋮ 
 ● Completed in 0.99s

Test case: Reduced verbosity (verbose=false, trusted tools)

List files in current directory

Output shows only completion: ● Completed in 0.99s (fs_read)

Test case: Permission prompts preserved (verbose=false, untrusted tools)

Create a test directory

Output shows full details with permission prompt:

🛠️  Using tool: execute_bash
 ⋮ 
 ● I will run the following shell command: mkdir -p /tmp/test
 ⋮ 
Allow this action? [y/n/t]:

Test case: Multiple tools (verbose=false)

Read README.md and create a summary

Output shows all tools used: ● Completed in 1.5s (fs_read, fs_write)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- Add chat.tool_output_verbose setting (default: true)
- Hide detailed tool output for trusted tools when verbose=false
- Preserve permission prompts for untrusted tools
- Show tool names in completion message when not verbose
- Maintain structured events for IDE integration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant