Show input_preview only for Bash permission prompts

Bash commands are the security decision — the user needs to see the
actual command. Other tools (Write, Edit, etc.) have bulky payloads
that flood a phone screen; the description line is enough.
This commit is contained in:
Claude 2026-03-24 06:01:58 +00:00
parent d369b8cb8b
commit a7c291aca7
No known key found for this signature in database

View File

@ -530,15 +530,18 @@ mcp.setNotificationHandler(
request_id: z.string(), request_id: z.string(),
tool_name: z.string(), tool_name: z.string(),
description: z.string(), description: z.string(),
input_preview: z.string(),
}), }),
}), }),
async ({ params }) => { async ({ params }) => {
const { request_id, tool_name, description } = params const { request_id, tool_name, description, input_preview } = params
const access = loadAccess() const access = loadAccess()
const preview = tool_name === 'Bash' ? `\n${input_preview}` : ''
const text = const text =
`🔐 Permission request [${request_id}]\n` + `🔐 Permission request [${request_id}]\n` +
`${tool_name}: ${description}\n\n` + `${tool_name}: ${description}` +
`Reply "yes ${request_id}" to allow or "no ${request_id}" to deny.` preview +
`\n\nReply "yes ${request_id}" to allow or "no ${request_id}" to deny.`
// allowFrom holds handle IDs, not chat GUIDs — resolve via qChatsForHandle. // allowFrom holds handle IDs, not chat GUIDs — resolve via qChatsForHandle.
// Include SELF addresses so the owner's self-chat gets the prompt even // Include SELF addresses so the owner's self-chat gets the prompt even
// when allowFrom is empty (default config). // when allowFrom is empty (default config).