-
-
Notifications
You must be signed in to change notification settings - Fork 69.5k
Signal channel schema missing groups config — requireMention silently drops all group messages #20397
Description
Summary
Signal group messages are silently dropped because requireMention defaults to true, but Signal does not support native @mentions. The channels.signal.groups config property (which would allow setting requireMention: false per-group) is missing from the Signal channel schema, even though:
- The runtime code reads and respects it (
resolveChannelGroupRequireMentionindock-BoYjClAF.js) - Telegram and WhatsApp channels both expose
groupsin their schemas - There is no other schema-valid way to set
requireMention: falsespecifically for Signal groups
Steps to Reproduce
- Configure Signal channel with group bindings
- Set
groupPolicy: "open"and validgroupAllowFrom - Send a message in a bound Signal group
- Expected: Agent receives and responds
- Actual: Message silently dropped. No error in main logs. Only visible at
tracelevel aslogInboundDropwithreason: "no mention"
Root Cause
In the signal message handler (subagent-registry-*.js):
const requireMention = isGroup && resolveChannelGroupRequireMention({...});
const canDetectMention = mentionRegexes.length > 0;
if (isGroup && requireMention && canDetectMention && mentionGate.shouldSkip) {
logInboundDrop({ reason: "no mention" });
return;
}resolveChannelGroupRequireMention returns true by default (line 87 in dock-BoYjClAF.js). Since Signal has no native @mention support, every group message fails the mention gate.
Attempting config.patch with channels.signal.groups.*.requireMention: false is rejected by schema validation (Unrecognized key: "groups").
Workaround
Set empty mentionPatterns globally to make canDetectMention = false:
{
"messages": {
"groupChat": {
"mentionPatterns": []
}
}
}This bypasses the mention gate but affects all channels/groups globally, not just Signal.
Proposed Fix
Either:
- Add
groupsto the Signal channel schema (matching Telegram/WhatsApp):
groups?: Record<string, {
requireMention?: boolean;
tools?: GroupToolPolicyConfig;
toolsBySender?: GroupToolPolicyBySenderConfig;
}>;- Or change
requireMentiondefault tofalsefor Signal specifically, since Signal lacks native mention support.
Environment
- OpenClaw: 2026.2.17
- signal-cli: 0.13.24
- macOS (Apple Silicon)