From 7fc3eca0848aadfc9af09137c46d94e8f71ad221 Mon Sep 17 00:00:00 2001 From: Omar Shahine <10343873+omarshahine@users.noreply.github.com> Date: Sun, 21 Jun 2026 16:02:53 -0700 Subject: [PATCH] fix(imessage): accept scheme-less URL previews --- extensions/imessage/src/monitor/coalesce.test.ts | 11 +++++++++++ extensions/imessage/src/monitor/coalesce.ts | 3 +++ 2 files changed, 14 insertions(+) diff --git a/extensions/imessage/src/monitor/coalesce.test.ts b/extensions/imessage/src/monitor/coalesce.test.ts index 1fdae91563f3..5fd7162d788e 100644 --- a/extensions/imessage/src/monitor/coalesce.test.ts +++ b/extensions/imessage/src/monitor/coalesce.test.ts @@ -175,6 +175,17 @@ describe("isStandaloneIMessageUrlPreviewPayload", () => { ).toBe(true); }); + it("matches scheme-less www URL preview rows", () => { + expect( + isStandaloneIMessageUrlPreviewPayload( + makePayload({ + text: "www.example.com/article", + balloon_bundle_id: IMESSAGE_URL_BALLOON_BUNDLE_ID, + }), + ), + ).toBe(true); + }); + it("does not match already-complete URL balloon messages with text context", () => { expect( isStandaloneIMessageUrlPreviewPayload( diff --git a/extensions/imessage/src/monitor/coalesce.ts b/extensions/imessage/src/monitor/coalesce.ts index 55db8e902f66..074a18a4f033 100644 --- a/extensions/imessage/src/monitor/coalesce.ts +++ b/extensions/imessage/src/monitor/coalesce.ts @@ -26,6 +26,9 @@ function isSingleUrlToken(text: string): boolean { if (/\s/.test(text)) { return false; } + if (/^www\.[^\s.]+\.[^\s]+$/i.test(text)) { + return true; + } try { const url = new URL(text); return url.protocol === "http:" || url.protocol === "https:";