Feature: owner followers/following carry name + avatar (shaer-aa3)
The C2S owner view of followers and following returned bare actor
URIs, so a client could only show ids. Each entry is now an AS2 actor
reference { id, type: Person, name, preferredUsername, icon } built
from the best cached display Klonkt already holds: the follower's own
row (now cached at Follow time), then ap_following, interactions,
timeline, mentions, falling back to a handle derived from the URI.
Priority is the set display name, then the chosen username, then the
id. ap_followers gains name/handle/icon, populated when an inbound
Follow is accepted (fetchActor already runs there).
Changed files:
src/config/database.js
- additive columns ap_followers.name/handle/icon
src/services/ActivityPubService.js
- cache follower display on inbound Follow
- actorDisplay(slug, uri): best cached display across the caches
- buildActorRef(slug, uri): AS2 actor reference with display
src/routes/activitypub.js
- owner followers/following map URIs through buildActorRef
New file:
test/c2s-contacts.test.js
- name/username/id priority + interaction-cache fallback
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>