PieFed joins the pasture; the instance actor answers at the root

PieFed 1.7.17 (dockurr's image of the release) runs in the pasture with its
Celery worker on the shared Postgres and Redis, and scenarios/piefed.sh
checks it both ways: 29 checks, communities, titled threads, comments, votes
up and down, a community poll and a vote in it, private messages, a
moderator's lock, unlock and removal, the unfollow and statistics.

What it showed:
- PieFed sends a community's announces to the inbox of the Application at a
  peer's root (as Lemmy serves its site actor) and to /inbox otherwise.
  PrivaPub answered 404 at its root, so every announce went to an /inbox it
  does not have. The instance actor now answers at / for ActivityPub
  requests, unsigned under SecureMode as at its own address.
- PieFed keeps serving a thread its moderator removed, so the removal could
  never be checked against the post's origin. A community on the post's own
  server now speaks for it; one elsewhere still waits for the origin to say
  the post is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-05 15:44:13 +02:00
1 parent 0646de22bd
commit 47d6e22988
12 files changed
+304 -17

No files matched your search

+12 -2
View File
@@ -582,9 +582,19 @@ What it showed:
- Mbin also auto-ingests Mastodon posts by hashtag and Announces them.
- **Gaps:**
- **P1:** Lemmy's P1 set, W2, and tolerating `source` as a string.
- **P2:** galleries; community polls (vote without `published`); post `Move`; `repliesEnabled`; `nsfl`; flairs;
publish `likes`/`shares` totals.
- **P2:** galleries; post `Move`; `repliesEnabled`; `nsfl`; flairs; publish `likes`/`shares` totals.
- **P3:** `genAI`; accepted answers; batched Announces.
- **PieFed sends a community's announces to the inbox of the Application at a peer's root** (Lemmy's site actor), and
to `https://<host>/inbox` when the root answers anything else. PrivaPub answered 404 there until 2026-10-05, so every
announce went to a `/inbox` it does not have; it now serves its instance actor at `/` for ActivityPub requests.
- **PieFed keeps serving a thread its moderator removed** (200, the Page unchanged), so a removal could not be checked
against the post's origin; a community on the post's own server is now believed at once (FEDERATION.md, Groups).
- **Pasture evidence (2026-10-05, PieFed 1.7.17, `tools/pasture/scenarios/piefed.sh`):** 29 checks pass: communities
both ways (follows accepted); a PieFed thread in our community arrives titled and ours reaches PieFed through its
announce; a PieFed community's thread reaches alice's home and her thread lands in it; comments both ways; PieFed's
upvote counts as a like and its change to a downvote is applied, alice's like is an upvote there; a community poll
arrives as a poll and alice's vote counts on PieFed; private messages both ways; a moderator's lock (replies then
refused), unlock and removal; the unfollow; statistics.
### NodeBB 4.16, Discourse, Friendica