diff --git a/extensions/feishu/src/policy.test.ts b/extensions/feishu/src/policy.test.ts index ec5f4430ebe..01530e12cba 100644 --- a/extensions/feishu/src/policy.test.ts +++ b/extensions/feishu/src/policy.test.ts @@ -163,6 +163,17 @@ describe("feishu policy", () => { ).toEqual({ requireMention: true }); }); + it("requireMentionInThread tightens when base requireMention is false", () => { + expect( + resolveFeishuReplyPolicy({ + isDirectMessage: false, + isThreadReply: true, + globalConfig: { requireMention: false } as FeishuConfig, + groupConfig: { requireMentionInThread: true } as FeishuGroupConfig, + }), + ).toEqual({ requireMention: true }); + }); + it("does not apply thread override for non-thread messages", () => { expect( resolveFeishuReplyPolicy({ diff --git a/extensions/feishu/src/policy.ts b/extensions/feishu/src/policy.ts index 7a08dfa1877..1db6e6618c6 100644 --- a/extensions/feishu/src/policy.ts +++ b/extensions/feishu/src/policy.ts @@ -116,7 +116,7 @@ export function resolveFeishuReplyPolicy(params: { const requireMention = params.groupConfig?.requireMention ?? params.globalConfig?.requireMention ?? true; - if (requireMention && params.isThreadReply) { + if (params.isThreadReply) { const threadOverride = params.groupConfig?.requireMentionInThread ?? params.globalConfig?.requireMentionInThread; if (threadOverride !== undefined) {