From d72e7e07aaba6c6167b0f40a0d42584c999df04f Mon Sep 17 00:00:00 2001 From: Caio Gallo Date: Tue, 31 Mar 2026 11:38:15 -0300 Subject: [PATCH] fix: pass custom instructions to agent when rejecting tool permissions --- .../features/sessions/components/SessionView.tsx | 5 ++++- .../claude/permissions/permission-handlers.ts | 12 +++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/code/src/renderer/features/sessions/components/SessionView.tsx b/apps/code/src/renderer/features/sessions/components/SessionView.tsx index 3f32f8be6..e5771a67e 100644 --- a/apps/code/src/renderer/features/sessions/components/SessionView.tsx +++ b/apps/code/src/renderer/features/sessions/components/SessionView.tsx @@ -252,7 +252,10 @@ export function SessionView({ } if (customInput) { - if (isOtherOption(optionId)) { + if ( + isOtherOption(optionId) || + selectedOption?._meta?.customInput === true + ) { await getSessionService().respondToPermission( taskId, firstPendingPermission.toolCallId, diff --git a/packages/agent/src/adapters/claude/permissions/permission-handlers.ts b/packages/agent/src/adapters/claude/permissions/permission-handlers.ts index b6f62ca34..0013679f6 100644 --- a/packages/agent/src/adapters/claude/permissions/permission-handlers.ts +++ b/packages/agent/src/adapters/claude/permissions/permission-handlers.ts @@ -388,12 +388,14 @@ async function handleDefaultPermissionFlow( updatedInput: toolInput as Record, }; } else { - const message = "User refused permission to run tool"; + const feedback = ( + response._meta?.customInput as string | undefined + )?.trim(); + const message = feedback + ? `User refused permission to run tool with feedback: ${feedback}` + : "User refused permission to run tool"; await emitToolDenial(context, message); - return { - behavior: "deny", - message, - }; + return { behavior: "deny", message, interrupt: !feedback }; } }