mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 23:41:24 +00:00
Infra: skip Discord text exec approvals
This commit is contained in:
@@ -111,19 +111,10 @@ describe("exec approval forwarder", () => {
|
||||
expect(getFirstDeliveryText(deliver)).toContain("Command:\n```\necho `uname`\necho done\n```");
|
||||
});
|
||||
|
||||
it("skips discord forwarding when discord exec approvals target channel", async () => {
|
||||
it("skips discord forwarding targets", async () => {
|
||||
vi.useFakeTimers();
|
||||
const cfg = {
|
||||
approvals: { exec: { enabled: true, mode: "session" } },
|
||||
channels: {
|
||||
discord: {
|
||||
execApprovals: {
|
||||
enabled: true,
|
||||
target: "channel",
|
||||
approvers: ["123"],
|
||||
},
|
||||
},
|
||||
},
|
||||
} as OpenClawConfig;
|
||||
|
||||
const { deliver, forwarder } = createForwarder({
|
||||
|
||||
@@ -98,13 +98,10 @@ function buildTargetKey(target: ExecApprovalForwardTarget): string {
|
||||
return [channel, target.to, accountId, threadId].join(":");
|
||||
}
|
||||
|
||||
function shouldSkipDiscordForwarding(cfg: OpenClawConfig): boolean {
|
||||
const discordConfig = cfg.channels?.discord?.execApprovals;
|
||||
if (!discordConfig?.enabled) {
|
||||
return false;
|
||||
}
|
||||
const target = discordConfig.target ?? "dm";
|
||||
return target === "channel" || target === "both";
|
||||
// Discord has component-based exec approvals; skip the text fallback there.
|
||||
function shouldSkipDiscordForwarding(target: ExecApprovalForwardTarget): boolean {
|
||||
const channel = normalizeMessageChannel(target.channel) ?? target.channel;
|
||||
return channel === "discord";
|
||||
}
|
||||
|
||||
function formatApprovalCommand(command: string): { inline: boolean; text: string } {
|
||||
@@ -274,9 +271,7 @@ export function createExecApprovalForwarder(
|
||||
}
|
||||
}
|
||||
|
||||
const filteredTargets = shouldSkipDiscordForwarding(cfg)
|
||||
? targets.filter((target) => normalizeMessageChannel(target.channel) !== "discord")
|
||||
: targets;
|
||||
const filteredTargets = targets.filter((target) => !shouldSkipDiscordForwarding(target));
|
||||
|
||||
if (filteredTargets.length === 0) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user