Context
During code review of PR #1529 (fix #1525), the reviewer noted a low-priority test gap:
There is no test asserting that a blocked command is rejected via execute_confirmed() (i.e., with skip_confirm = true). The existing execute_confirmed_skips_confirmation test only verifies that a confirm-pattern command passes through; it does not exercise a blocklist hit via execute_confirmed.
The fix in #1529 places find_blocked_command() before the skip_confirm guard, so this path is covered by logic — but not by an automated test.
Acceptance criteria
Add a test in crates/zeph-tools/src/shell.rs that calls execute_confirmed() with a blocked command and asserts ToolError::Blocked is returned.
Context
During code review of PR #1529 (fix #1525), the reviewer noted a low-priority test gap:
There is no test asserting that a blocked command is rejected via
execute_confirmed()(i.e., withskip_confirm = true). The existingexecute_confirmed_skips_confirmationtest only verifies that a confirm-pattern command passes through; it does not exercise a blocklist hit viaexecute_confirmed.The fix in #1529 places
find_blocked_command()before theskip_confirmguard, so this path is covered by logic — but not by an automated test.Acceptance criteria
Add a test in
crates/zeph-tools/src/shell.rsthat callsexecute_confirmed()with a blocked command and assertsToolError::Blockedis returned.