fix(hooks): track thread ownership mentions case-insensitively

This commit is contained in:
Vincent Koc
2026-04-22 12:34:27 -07:00
parent f9f836eba4
commit dbba830417
2 changed files with 21 additions and 1 deletions

View File

@@ -306,5 +306,24 @@ describe("thread-ownership plugin", () => {
expect(result).toBeUndefined();
expect(globalThis.fetch).not.toHaveBeenCalled();
});
it("tracks agent-name mentions case-insensitively", async () => {
await hooks.message_received(
{
content: "hey @testbot help",
threadId: "8888.0002",
metadata: { channelId: "C789" },
},
{ channelId: "slack", conversationId: "C789" },
);
const result = await hooks.message_sending(
{ content: "On it!", replyToId: "8888.0002", metadata: { channelId: "C789" }, to: "C789" },
{ channelId: "slack", conversationId: "C789" },
);
expect(result).toBeUndefined();
expect(globalThis.fetch).not.toHaveBeenCalled();
});
});
});

View File

@@ -91,6 +91,7 @@ export default definePluginEntry({
}
const text = event.content ?? "";
const normalizedText = text.toLowerCase();
const threadTs =
resolveThreadToken(event.threadId) ||
resolveThreadToken(event.metadata?.threadId) ||
@@ -104,7 +105,7 @@ export default definePluginEntry({
}
const mentioned =
(agentName && text.includes(`@${agentName}`)) ||
(agentName && normalizedText.includes(`@${agentName.toLowerCase()}`)) ||
(botUserId && text.includes(`<@${botUserId}>`));
if (mentioned) {
cleanExpiredMentions();