From ccac0080bf0d3cdf27d7cb45f3af345defadda9d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:43:46 +0000 Subject: [PATCH 1/2] Initial plan From 6b66eda897de7305fccd8664a31b04976abd1f07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:46:27 +0000 Subject: [PATCH 2/2] Fix permissions middleware to only apply DM checks when permission validation is needed Co-authored-by: twlite <46562212+twlite@users.noreply.github.com> --- .../src/app/middlewares/permissions.ts | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/commandkit/src/app/middlewares/permissions.ts b/packages/commandkit/src/app/middlewares/permissions.ts index e7aac3f6..18583e43 100644 --- a/packages/commandkit/src/app/middlewares/permissions.ts +++ b/packages/commandkit/src/app/middlewares/permissions.ts @@ -21,6 +21,22 @@ export async function beforeExecute(ctx: MiddlewareContext) { return; } + let userPermissionsRequired = command.metadata?.userPermissions ?? []; + let botPermissionsRequired = command.metadata?.botPermissions ?? []; + + if (typeof userPermissionsRequired === 'string') { + userPermissionsRequired = [userPermissionsRequired]; + } + + if (typeof botPermissionsRequired === 'string') { + botPermissionsRequired = [botPermissionsRequired]; + } + + // Only perform permission validation if required + if (!userPermissionsRequired.length && !botPermissionsRequired.length) { + return; + } + if ( (interaction && interaction.channel?.isDMBased()) || (message && message.channel?.isDMBased()) @@ -52,27 +68,13 @@ export async function beforeExecute(ctx: MiddlewareContext) { const userPermissions = interaction?.memberPermissions ?? message?.member?.permissions; - let userPermissionsRequired = command.metadata?.userPermissions ?? []; let missingUserPermissions: string[] = []; - if (typeof userPermissionsRequired === 'string') { - userPermissionsRequired = [userPermissionsRequired]; - } - const botPermissions = interaction?.guild?.members.me?.permissions ?? message?.guild?.members.me?.permissions; - let botPermissionsRequired = command.metadata?.botPermissions ?? []; let missingBotPermissions: string[] = []; - if (typeof botPermissionsRequired === 'string') { - botPermissionsRequired = [botPermissionsRequired]; - } - - if (!userPermissionsRequired.length && !botPermissionsRequired.length) { - return; - } - if (userPermissionsRequired.length) { for (const permission of userPermissionsRequired) { const hasPermission = userPermissions?.has(permission);