fix(federation): make boosts spec-addressable + durable so receivers attribute them
Boosts/likes were fire-and-forget with a fragment activity id and no audience
addressing for the original author, so a multi-user receiver (e.g. WordPress's
ActivityPub plugin) had nothing to route the Announce to and never recorded it,
while Mastodon's boost (which cc's the author) did show.
- src/services/ActivityPubService.js (sendInteraction) — Announce/Undo now cc the
original author next to our followers and deliver to the author's PERSONAL inbox,
use non-fragment dereferenceable activity ids, and add
published (Mastodon
parity); delivery now runs through deliverWithRetry (ap_delivery queue + backoff)
instead of a single best-effort POST, so a transient hiccup no longer loses the boost
Co-Authored-By: Claude <noreply@…>