Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision 30271e652b4f48014f6853585c1628a8ee02f3c8)
+++ src/routes/posts.js	(revision f1e0c1fd1bed6e546d243788f1c217d74f043dad)
@@ -365,4 +365,10 @@
     if (post.status !== 'published') ActivityPubService.deliverCreate(site, apPost).catch(() => { /* best-effort */ });
     else ActivityPubService.deliverUpdate(site, apPost).catch(() => { /* best-effort */ });
+  }
+
+  // Pin/unpin changed → push an actor Update so Mastodon re-fetches the featured
+  // (pinned) collection promptly instead of waiting for its own actor refresh.
+  if ((post.pinned || 0) !== parsePinnedRank(pinned)) {
+    ActivityPubService.deliverActorUpdate(site).catch(() => { /* best-effort */ });
   }
 
