Forwarded activities are believed as far as their origin vouches

A thread's server passes on what happens in it, signed with its own key: Mastodon forwards the replies to its
accounts' posts and their deletions, Friendica every activity in its threads. PrivaPub answered them 401, which also
tells a sender its signature failed. Now they get 202 and nothing in them is believed: a forwarded Create or Update is
taken as its object reads at the actor's origin, a Delete of a public or unlisted copy once that origin answers 404 or
410 (RemoteActorService.IsGone; FederationHttp remembers the status of a refusal), anything else is let go, and our own
activities coming back are ignored. A forwarded copy has its own dedupe key, so one that failed never hides the
author's own delivery.

A reply in the thread of someone followed here is kept, as Mastodon keeps them. Mastodon delivers a reply to the
followers of the account it answers; PrivaPub dropped those as unaddressed, which the pasture showed: the outsider's
reply its Mastodon scenario said was never delivered had been, and was thrown away.

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 09:34:08 +02:00
1 parent 01808fa644
commit 7eb7c017a5
12 files changed
+334 -21

No files matched your search

+5 -2
View File
@@ -151,12 +151,14 @@ Priorities, used throughout:
| Publish `context` and a paged `replies` | P2 | — |
| `FeatureRequest`: send `Reject` (or implement FEP-7aa9) | P3 | — |
**Pasture evidence (2026-10-05, Mastodon v4.7.3, `tools/pasture/scenarios/mastodon.sh`):** 56 checks pass, and the
**Pasture evidence (2026-10-05, Mastodon v4.7.3, `tools/pasture/scenarios/mastodon.sh`):** 57 checks pass, and the
scenario can be run again on the same pasture (it undoes the lock and the block it leaves). They cover:
- discovery, follows and locked follows both ways;
- public, CW and followers-only posts (the last answering 404 unsigned);
- replies threading both ways;
- a thread completed from Mastodon's FEP-7888 `context`: a reply by an account nobody here follows, never delivered,
- an outsider's reply to an account a persona follows, which Mastodon delivers to that account's followers, kept (it
was dropped as unaddressed until 2026-10-05);
- a thread completed from Mastodon's FEP-7888 `context`: the outsider's answer to their own reply, never delivered,
joins the thread once a persona opens it;
- likes, boosts and their undos both ways, with counts;
- DMs both ways;
@@ -594,6 +596,7 @@ What it showed:
- **P1:** W2 for NodeBB Articles (`privapub.excerpt`).
- **P2:** Groups without `followers`; Announces from an Application; context Move/Remove; paged `context` with ETag;
Friendica's thread-Follow.
- ~~**P1:** forwarded activities refused with 401~~ done 2026-10-05 (`Forwarded`).
### PeerTube 8.3.1 (2026-09-28)