From 41c5195ed36d87518fc26b97ec625fa6ac68398b Mon Sep 17 00:00:00 2001 From: cornmander Date: Fri, 15 Aug 2025 10:37:49 -0400 Subject: [PATCH] feat(shell): Include disallowed commands in block reason (#6278) Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- packages/core/src/utils/shell-utils.test.ts | 6 ++++-- packages/core/src/utils/shell-utils.ts | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/core/src/utils/shell-utils.test.ts b/packages/core/src/utils/shell-utils.test.ts index 9473dee7..22d316ad 100644 --- a/packages/core/src/utils/shell-utils.test.ts +++ b/packages/core/src/utils/shell-utils.test.ts @@ -38,7 +38,9 @@ describe('isCommandAllowed', () => { config.getCoreTools = () => ['ShellTool(ls -l)']; const result = isCommandAllowed('rm -rf /', config); expect(result.allowed).toBe(false); - expect(result.reason).toBe(`Command(s) not in the allowed commands list.`); + expect(result.reason).toBe( + `Command(s) not in the allowed commands list. Disallowed commands: "rm -rf /"`, + ); }); it('should block a command if it is in the blocked list', () => { @@ -157,7 +159,7 @@ describe('checkCommandPermissions', () => { expect(result).toEqual({ allAllowed: false, disallowedCommands: ['git status'], - blockReason: `Command(s) not in the allowed commands list.`, + blockReason: `Command(s) not in the allowed commands list. Disallowed commands: "git status"`, isHardDenial: false, }); }); diff --git a/packages/core/src/utils/shell-utils.ts b/packages/core/src/utils/shell-utils.ts index c7f1839e..4164cdca 100644 --- a/packages/core/src/utils/shell-utils.ts +++ b/packages/core/src/utils/shell-utils.ts @@ -301,7 +301,9 @@ export function checkCommandPermissions( return { allAllowed: false, disallowedCommands, - blockReason: `Command(s) not on the global or session allowlist.`, + blockReason: `Command(s) not on the global or session allowlist. Disallowed commands: ${disallowedCommands + .map((c) => JSON.stringify(c)) + .join(', ')}`, isHardDenial: false, // This is a soft denial; confirmation is possible. }; } @@ -322,7 +324,7 @@ export function checkCommandPermissions( return { allAllowed: false, disallowedCommands, - blockReason: `Command(s) not in the allowed commands list.`, + blockReason: `Command(s) not in the allowed commands list. Disallowed commands: ${disallowedCommands.map((c) => JSON.stringify(c)).join(', ')}`, isHardDenial: false, // This is a soft denial. }; }