Add ActivityPub reply ingestion #119

Merged
erik merged 1 commit from feat/task-f5c0e4f1-activitypub-reply-ingestion into main 2026-06-05 23:17:38 -05:00
Owner

Summary

  • add pending-comment ingestion for ActivityPub reply Create activities through the Fedify inbox
  • validate reply targets against local published post URLs and deduplicate by activity/object URL
  • sanitize remote reply HTML into normalized text/escaped HTML before storing comments
  • keep existing comments moderation APIs as the approval/hide workflow for ingested replies
  • add signed Fedify inbox tests for valid replies, duplicates, invalid targets, sanitization, and moderation API visibility

Checks

  • make check
  • ./scripts/pre-pr.sh
## Summary - add pending-comment ingestion for ActivityPub reply `Create` activities through the Fedify inbox - validate reply targets against local published post URLs and deduplicate by activity/object URL - sanitize remote reply HTML into normalized text/escaped HTML before storing comments - keep existing comments moderation APIs as the approval/hide workflow for ingested replies - add signed Fedify inbox tests for valid replies, duplicates, invalid targets, sanitization, and moderation API visibility ## Checks - `make check` - `./scripts/pre-pr.sh`
feat: ingest ActivityPub replies
All checks were successful
CI / build-lint-test (pull_request) Successful in 43s
1c3645f50e
Task: #task-f5c0e4f1
erik force-pushed feat/task-f5c0e4f1-activitypub-reply-ingestion from 1c3645f50e
All checks were successful
CI / build-lint-test (pull_request) Successful in 43s
to f000817959
All checks were successful
CI / build-lint-test (pull_request) Successful in 41s
2026-06-05 23:15:31 -05:00
Compare
Author
Owner

PR Review

Summary

  • Reviewed PR #119 for task-f5c0e4f1 against the ActivityPub reply ingestion requirements.
  • The implementation handles signed Fedify inbox Create activities, validates local published-post reply targets, stores remote replies as pending comments, sanitizes/normalizes content, and leaves moderation through the existing comments API.
  • It avoids custom raw ActivityPub inbox routes and keeps Fedify as the protocol entry point.
  • CI and local gates are green.

Acceptance criteria

  • Incoming reply Create handled through Fedify for a local published post creates a pending comment.
  • Duplicate reply activities do not create duplicate comments.
  • Replies to unknown, draft, or non-local posts are ignored or rejected safely.
  • Stored reply content is sanitized/normalized before display.
  • Existing comment moderation APIs can approve or hide ingested replies.
  • Tests cover ingestion, deduplication, target validation, and moderation visibility.
  • No duplicate hand-rolled ActivityPub inbox routes are added outside the Fedify route setup.
  • Relevant lint/test checks pass (./scripts/pre-pr.sh, CI run #157).

Blocking issues

  • None.

Warnings

  • None.

Verdict

Approved. Stop at the human merge approval gate.

PR Review Worker Result

  • pr: open
  • review: approved
  • pr_comment: posted
  • task_comment: posted
  • blocking_issues: 0
  • warnings: 0
  • criteria_total: 8
  • criteria_met: 8
  • criteria_missing: 0
## PR Review ### Summary - Reviewed PR #119 for `task-f5c0e4f1` against the ActivityPub reply ingestion requirements. - The implementation handles signed Fedify inbox `Create` activities, validates local published-post reply targets, stores remote replies as pending comments, sanitizes/normalizes content, and leaves moderation through the existing comments API. - It avoids custom raw ActivityPub inbox routes and keeps Fedify as the protocol entry point. - CI and local gates are green. ### Acceptance criteria - [x] Incoming reply `Create` handled through Fedify for a local published post creates a pending comment. - [x] Duplicate reply activities do not create duplicate comments. - [x] Replies to unknown, draft, or non-local posts are ignored or rejected safely. - [x] Stored reply content is sanitized/normalized before display. - [x] Existing comment moderation APIs can approve or hide ingested replies. - [x] Tests cover ingestion, deduplication, target validation, and moderation visibility. - [x] No duplicate hand-rolled ActivityPub inbox routes are added outside the Fedify route setup. - [x] Relevant lint/test checks pass (`./scripts/pre-pr.sh`, CI run #157). ### Blocking issues - None. ### Warnings - None. ### Verdict Approved. Stop at the human merge approval gate. PR Review Worker Result - pr: open - review: approved - pr_comment: posted - task_comment: posted - blocking_issues: 0 - warnings: 0 - criteria_total: 8 - criteria_met: 8 - criteria_missing: 0
erik merged commit a30ab6de05 into main 2026-06-05 23:17:38 -05:00
erik deleted branch feat/task-f5c0e4f1-activitypub-reply-ingestion 2026-06-05 23:17:38 -05:00
Sign in to join this conversation.
No description provided.