mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 21:28:26 +00:00
fix(slack): respect top-level requireMention config
The `channels.slack.requireMention` setting was defined in the schema but never passed to `resolveSlackChannelConfig()`, which always defaulted to `true`. This meant setting `requireMention: false` at the top level had no effect—channels still required mentions. Pass `slackCfg.requireMention` as `defaultRequireMention` to the resolver and use it as the fallback instead of hardcoded `true`. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Peter Steinberger
parent
6ffd7111a6
commit
09ce6ff99e
@@ -70,8 +70,9 @@ export function resolveSlackChannelConfig(params: {
|
||||
systemPrompt?: string;
|
||||
}
|
||||
>;
|
||||
defaultRequireMention?: boolean;
|
||||
}): SlackChannelConfigResolved | null {
|
||||
const { channelId, channelName, channels } = params;
|
||||
const { channelId, channelName, channels, defaultRequireMention } = params;
|
||||
const entries = channels ?? {};
|
||||
const keys = Object.keys(entries);
|
||||
const normalizedName = channelName ? normalizeSlackSlug(channelName) : "";
|
||||
@@ -102,11 +103,12 @@ export function resolveSlackChannelConfig(params: {
|
||||
}
|
||||
const fallback = entries["*"];
|
||||
|
||||
const requireMentionDefault = defaultRequireMention ?? true;
|
||||
if (keys.length === 0) {
|
||||
return { allowed: true, requireMention: true };
|
||||
return { allowed: true, requireMention: requireMentionDefault };
|
||||
}
|
||||
if (!matched && !fallback) {
|
||||
return { allowed: false, requireMention: true };
|
||||
return { allowed: false, requireMention: requireMentionDefault };
|
||||
}
|
||||
|
||||
const resolved = matched ?? fallback ?? {};
|
||||
@@ -114,7 +116,8 @@ export function resolveSlackChannelConfig(params: {
|
||||
firstDefined(resolved.enabled, resolved.allow, fallback?.enabled, fallback?.allow, true) ??
|
||||
true;
|
||||
const requireMention =
|
||||
firstDefined(resolved.requireMention, fallback?.requireMention, true) ?? true;
|
||||
firstDefined(resolved.requireMention, fallback?.requireMention, requireMentionDefault) ??
|
||||
requireMentionDefault;
|
||||
const allowBots = firstDefined(resolved.allowBots, fallback?.allowBots);
|
||||
const users = firstDefined(resolved.users, fallback?.users);
|
||||
const skills = firstDefined(resolved.skills, fallback?.skills);
|
||||
|
||||
Reference in New Issue
Block a user