Index: src/services/ActivityPubService.js
===================================================================
--- src/services/ActivityPubService.js	(revision 7d932ce99c5c723eafe823cbe34b8bf8d5bf884a)
+++ src/services/ActivityPubService.js	(revision de3d24b1b5f65ddc12b43239cbde13c70c92dfe0)
@@ -537,4 +537,7 @@
   const actor = await fetchActor(actorUri).catch(() => null);
   const ai = actorInfo(actor, actorUri);
+  // Is what we're replying to a post (or a comment) on one of OUR posts? If so,
+  // link our reply to that local post so it shows nested in the post thread.
+  const localTgt = findThreadTarget(note.id, (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''));
   // If this note is itself a reply (a comment), also reach the original post's
   // author so THEIR server threads our reply under the comment.
@@ -564,4 +567,5 @@
     images,
     threadInbox,                                            // post author's inbox (if a comment)
+    localPostId: localTgt ? localTgt.post_id : '',          // our post this belongs to (if any)
     preview: HtmlSanitizerService.toPlainText(note.content || '').slice(0, 240),
   };
