Feature: TUI Shell Exec Coverage Scenarios that exercise previously uncovered code paths in the tui/input/shell_exec module (lines 48-49, 52-56, 61, 77-82). Background: Given the shell_exec module is imported Scenario: Empty command returns error result When I run a shell command with an empty string Then the shell result exit code should be 2 And the shell result stderr should be "empty command" And the shell result stdout should be empty Scenario: Whitespace-only command returns error result When I run a shell command with only whitespace " " Then the shell result exit code should be 2 And the shell result stderr should be "empty command" Scenario: Shell mode disabled via env var set to 1 Given the environment variable CLEVERAGENTS_DISABLE_SHELL_MODE is set to "1" When I run a shell command "echo hello" Then the shell result exit code should be 2 And the shell result stderr should be "shell mode is disabled" Scenario: Shell mode disabled via env var set to true Given the environment variable CLEVERAGENTS_DISABLE_SHELL_MODE is set to "true" When I run a shell command "echo hello" Then the shell result exit code should be 2 And the shell result stderr should be "shell mode is disabled" Scenario: Dangerous command confirmed via callback proceeds to execution Given a confirm_dangerous callback that returns True When I run a dangerous command "rm -rf /" with the callback Then the dangerous command should have been confirmed And the shell result should reflect the executed command Scenario: Dangerous command confirmed but callback returns False is still blocked Given a confirm_dangerous callback that returns False When I run a dangerous command "rm -rf /" with the callback Then the shell result exit code should be 1 And the shell result stderr should be "blocked by shell safety policy" Scenario: Command that exceeds timeout returns timeout result Given subprocess run is mocked to raise TimeoutExpired When I run a shell command "sleep 999" with a 1 second timeout Then the shell result exit code should be 124 And the shell result stderr should contain "command timed out after"