fix(federation): AP conformance round — actor enrichment, following collection, webfinger, unfollow fix
Audited the AP surface against the W3C spec + fediverse pioneers (Mastodon/Hubzilla/
Friendica/WordPress-ActivityPub/PeerTube). Additive enrichment toward non-Mastodon
receivers + one real correctness fix; the proven Mastodon happy-path (actor core, Note,
Create, Delete, Update) is left untouched.
- src/services/ActivityPubService.js — buildActor now emits
following, published
(site created date) and attachment PropertyValue rows from profile_links (rel=me,
HTML-escaped) so profile metadata federates; new buildFollowing (count-only collection);
unfollowActor now sends Undo(Follow) with the stored real follow id via the retry queue
(the old ${me}#follow fallback never matched, so unfollow silently failed on the remote),
and skips the network Undo for legacy rows with no stored follow id
- src/routes/activitypub.js — WebFinger adds
aliases + a profile-page link; new
GET /ap/users/:slug/following (count only); NodeInfo users.total now counts public
sites (AP actors) instead of the users/account-rows table
Co-Authored-By: Claude <noreply@…>