From b73a9cbe7b5a8fd3d55f882ecab347d0d607be74 Mon Sep 17 00:00:00 2001 From: Gustavo Madeira Santana Date: Fri, 27 Mar 2026 18:47:54 -0400 Subject: [PATCH] test: guard Matrix plain-text mention fast path openclaw#55393 thanks @nickludlam --- .../matrix/src/matrix/monitor/handler.test.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/extensions/matrix/src/matrix/monitor/handler.test.ts b/extensions/matrix/src/matrix/monitor/handler.test.ts index b2d1c6cfc0c..283047d3ba3 100644 --- a/extensions/matrix/src/matrix/monitor/handler.test.ts +++ b/extensions/matrix/src/matrix/monitor/handler.test.ts @@ -428,6 +428,26 @@ describe("matrix monitor handler pairing account scope", () => { expect(recordInboundSession).toHaveBeenCalled(); }); + it("does not fetch self displayName for plain-text room mentions", async () => { + const getMemberDisplayName = vi.fn(async () => "Tom Servo"); + const { handler, recordInboundSession } = createMatrixHandlerTestHarness({ + isDirectMessage: false, + mentionRegexes: [/\btom servo\b/i], + getMemberDisplayName, + }); + + await handler( + "!room:example.org", + createMatrixTextMessageEvent({ + eventId: "$plain-text-mention", + body: "Tom Servo: hello", + }), + ); + + expect(recordInboundSession).toHaveBeenCalled(); + expect(getMemberDisplayName).not.toHaveBeenCalledWith("!room:example.org", "@bot:example.org"); + }); + it("drops forged metadata-only mentions before agent routing", async () => { const { handler, recordInboundSession, resolveAgentRoute } = createMatrixHandlerTestHarness({ isDirectMessage: false,