Add ActivityPub engagement ingestion #19
Labels
No labels
activitypub
admin
api
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
database
deployment
design
dev-env
docs
documentation
email
enhancement
feature
federation
feed
homepage
implementation
integration
media
openapi
priority:high
priority:low
priority:medium
proof
public-routes
public-ui
release
safety
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit#19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Store incoming ActivityPub likes and boosts for local posts through the Fedify inbox foundation so the existing read-only engagement API routes show real network activity.
The management API engagement routes are view-only:
GET /api/v1/posts/{slug}/engagementGET /api/v1/posts/{slug}/likesGET /api/v1/posts/{slug}/boostsLikes and boosts should be created by ActivityPub/Fediverse inbound activity handling, not by management API write routes.
Requirements
Likeactivities targeting local posts through the existing Fedify federation route setup.Announceactivities targeting local posts as boosts through the Fedify inbox foundation.post_engagementswithkind = likeorkind = boost.activity_url.Acceptance criteria
Likehandled through Fedify for a local post creates apost_engagementsrow withkind = like.Announcehandled through Fedify for a local post creates apost_engagementsrow withkind = boost.Dependencies
Synced from todu comment by @todu on 2026-05-31T04:16:04.291Z
Review update
make check,./scripts/pre-pr.sh, and Forgejo CICI / build-lint-test (pull_request)passed.Synced from todu comment by @todu on 2026-05-31T04:27:12.660Z
Completed
post_engagementspersistence forlikeandboostrecords.404behavior and standardized501 Not Implementedbehavior when engagement storage is unavailable.posts.engagement.get,posts.engagement.likes.list, andposts.engagement.boosts.list.make check,./scripts/pre-pr.sh, and passing Forgejo CI.main.Implement engagement API routesto Add ActivityPub engagement ingestionSynced from todu comment by @todu on 2026-06-06T04:37:40.491Z
Review update
Synced from todu comment by @todu on 2026-06-06T12:40:42.674Z
Completed
Close gate passed. All acceptance criteria are met.
Evidence summary:
LikeandAnnounceingestion is wired through Fedify inbox listeners.post_engagementswith actor metadata and activity URL deduplication.