Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision eefd30286365ba17e55cb461eb4f00242982db11)
+++ src/routes/posts.js	(revision c74565987caf12d910b2fb8dd439042dd0e2f94f)
@@ -1015,6 +1015,14 @@
   const kind = req.body.kind === 'boost' ? 'boost' : 'like';
   if (parent && parent.post_id === post.id && parent.object_uri) {
-    ActivityPubService.sendInteraction(site, kind, parent.object_uri, parent.actor_uri)
-      .catch((e) => console.warn('[AP] reaction failed:', e.message));
+    if (kind === 'boost') {
+      // Toggle: boost an unboosted comment, or retract it (Undo Announce) if already boosted.
+      const on = !parent.acted_boost;
+      ActivityPubService.sendInteraction(site, on ? 'boost' : 'unboost', parent.object_uri, parent.actor_uri)
+        .catch((e) => console.warn('[AP] reaction failed:', e.message));
+      ActivityPubService.setInteractionBoosted(parent.id, on);
+    } else {
+      ActivityPubService.sendInteraction(site, 'like', parent.object_uri, parent.actor_uri)
+        .catch((e) => console.warn('[AP] reaction failed:', e.message));
+    }
   }
   res.redirect(`${res.locals.siteUrlBase || ''}/${post.slug}#fediverse`);
