diff --git a/lib/shared/messages/update-relationship-message-spec.js b/lib/shared/messages/update-relationship-message-spec.js
--- a/lib/shared/messages/update-relationship-message-spec.js
+++ b/lib/shared/messages/update-relationship-message-spec.js
@@ -6,9 +6,11 @@
 import {
   type CreateMessageInfoParams,
   type MessageSpec,
+  type MergeRobotextMessageItemResult,
   pushTypes,
 } from './message-spec.js';
 import { assertSingleMessageInfo } from './utils.js';
+import type { RobotextChatMessageInfoItem } from '../../selectors/chat-selectors.js';
 import type { PlatformDetails } from '../../types/device-types.js';
 import { messageTypes } from '../../types/message-types-enum.js';
 import type {
@@ -357,4 +359,39 @@
       rawLegacyUpdateRelationshipMessageInfoValidator,
       rawUpdateRelationshipMessageInfoValidator,
     ]),
+
+    mergeIntoPrecedingRobotextMessageItem(
+      messageInfo:
+        | LegacyUpdateRelationshipMessageInfo
+        | UpdateRelationshipMessageInfo,
+      precedingMessageInfoItem: RobotextChatMessageInfoItem,
+    ): MergeRobotextMessageItemResult {
+      if (
+        messageInfo.type !== messageTypes.UPDATE_RELATIONSHIP ||
+        messageInfo.operation !== 'farcaster_mutual' ||
+        precedingMessageInfoItem.messageInfos.length !== 1 ||
+        precedingMessageInfoItem.messageInfos[0].type !==
+          messageTypes.CREATE_THREAD
+      ) {
+        return { shouldMerge: false };
+      }
+      const createThreadMessageInfo = precedingMessageInfoItem.messageInfos[0];
+
+      const viewerIsCreator = messageInfo.creator.isViewer;
+      const farcasterFriendFID = viewerIsCreator
+        ? messageInfo.targetFID
+        : messageInfo.creatorFID;
+      const farcasterFriend = ET.fcUser({ fid: farcasterFriendFID });
+
+      const startingText = 'Comm auto-created this chat with';
+      const endingText = 'from Farcaster';
+      const newRobotext = ET`${startingText} ${farcasterFriend} ${endingText}`;
+
+      const mergedItem = {
+        ...precedingMessageInfoItem,
+        messageInfos: [messageInfo, createThreadMessageInfo],
+        robotext: newRobotext,
+      };
+      return { shouldMerge: true, item: mergedItem };
+    },
   });