fix: require triggers for paired bot messages
This commit is contained in:
@@ -126,6 +126,21 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
||||
channel?.isOwnMessage?.bind(channel),
|
||||
);
|
||||
|
||||
const filterTriggeredPairedBotMessages = (
|
||||
chatJid: string,
|
||||
messages: Parameters<typeof filterProcessableMessages>[0],
|
||||
) => {
|
||||
if (!isPairedRoomJid(chatJid)) return messages;
|
||||
|
||||
// In paired rooms, require an explicit trigger before reacting to another
|
||||
// bot's message. This keeps the room usable without reintroducing bot loops.
|
||||
return messages.filter(
|
||||
(message) =>
|
||||
!message.is_bot_message ||
|
||||
deps.triggerPattern.test(message.content.trim()),
|
||||
);
|
||||
};
|
||||
|
||||
const deliverOpenWorkItem = async (
|
||||
channel: Channel,
|
||||
item: WorkItem,
|
||||
@@ -575,10 +590,9 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
||||
sinceSeqCursor,
|
||||
deps.assistantName,
|
||||
);
|
||||
const missedMessages = getProcessableMessages(
|
||||
const missedMessages = filterTriggeredPairedBotMessages(
|
||||
chatJid,
|
||||
rawMissedMessages,
|
||||
channel,
|
||||
getProcessableMessages(chatJid, rawMissedMessages, channel),
|
||||
);
|
||||
|
||||
if (missedMessages.length === 0) {
|
||||
|
||||
Reference in New Issue
Block a user