mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 15:20:44 +00:00
fix(discord): keep exec approval fallbacks reachable
This commit is contained in:
@@ -791,11 +791,12 @@ export const discordPlugin: ChannelPlugin<ResolvedDiscordAccount, DiscordProbe>
|
||||
...discordOutbound,
|
||||
preferFinalAssistantVisibleText: true,
|
||||
shouldTreatDeliveredTextAsVisible: shouldTreatDiscordDeliveredTextAsVisible,
|
||||
shouldSuppressLocalPayloadPrompt: ({ cfg, accountId, payload }) =>
|
||||
shouldSuppressLocalPayloadPrompt: ({ cfg, accountId, payload, hint }) =>
|
||||
shouldSuppressLocalDiscordExecApprovalPrompt({
|
||||
cfg,
|
||||
accountId,
|
||||
payload,
|
||||
hint,
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { ChannelOutboundPayloadHint } from "openclaw/plugin-sdk/channel-contract";
|
||||
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-types";
|
||||
import type { DiscordExecApprovalConfig } from "openclaw/plugin-sdk/config-types";
|
||||
import type { ReplyPayload } from "openclaw/plugin-sdk/reply-dispatch-runtime";
|
||||
@@ -5,6 +6,7 @@ import { resolveDiscordAccount } from "./accounts.js";
|
||||
import {
|
||||
getExecApprovalReplyMetadata,
|
||||
isChannelExecApprovalClientEnabledFromConfig,
|
||||
matchesApprovalRequestFilters,
|
||||
resolveApprovalApprovers,
|
||||
} from "./approval-runtime.js";
|
||||
import { parseDiscordTarget } from "./target-parsing.js";
|
||||
@@ -87,9 +89,22 @@ export function shouldSuppressLocalDiscordExecApprovalPrompt(params: {
|
||||
cfg: OpenClawConfig;
|
||||
accountId?: string | null;
|
||||
payload: ReplyPayload;
|
||||
hint?: ChannelOutboundPayloadHint;
|
||||
}): boolean {
|
||||
const metadata = getExecApprovalReplyMetadata(params.payload);
|
||||
const config = resolveDiscordAccount(params).config.execApprovals;
|
||||
return (
|
||||
params.hint?.kind === "approval-pending" &&
|
||||
params.hint.nativeRouteActive === true &&
|
||||
isDiscordExecApprovalClientEnabled(params) &&
|
||||
getExecApprovalReplyMetadata(params.payload) !== null
|
||||
metadata !== null &&
|
||||
matchesApprovalRequestFilters({
|
||||
request: {
|
||||
agentId: metadata.agentId,
|
||||
sessionKey: metadata.sessionKey,
|
||||
},
|
||||
agentFilter: config?.agentFilter,
|
||||
sessionFilter: config?.sessionFilter,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user