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
+3
View File
@@ -69,6 +69,9 @@ Written 2026-10-01 from the original 2023 code, the decePubClient UI, a federati
Funkwhale serve it; Funkwhale's answers named after our follow and its deletions of several uploads.
- GoToSocial's interaction policies both ways; personas join and leave remote events; third-party replies to a
persona's posts passed on to its followers (owner decisions 2026-10-05).
- wave 2, under way: PieFed in the pasture with a scenario (2026-10-05). What it showed and was fixed: the instance
actor answers at the server's root, where PieFed looks for the inbox it announces to; a community's removal of a
post on its own server is believed at once.
- [ ] P7 Threads, communities, moderation, the social graph
- [ ] P8 Signatures, discovery, the long tail
- [x] P9 Reading at volume (owner decision 2026-10-04, back from "Cut"): lists, server-side filters, scheduled posts,