FEP-8fcf rests for two weeks after a restore
What a restore lost of either side is not the other server's to mend: for RestoreRecord.FollowersGrace (14 days) deliveries carry no Collection-Synchronization header, and a follow only the remote remembers is adopted rather than undone. Without a restore nothing changes; the interop sweep (gts, mastodon, misskey, sharkey, akkoma, pixelfed, smithereen, followsync, pins, moves) passed, Smithereen's poll check on a second run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
bc5f2beaf7
commit
9ad96f560d
3 files changed
+21
-4
No files matched your search
@@ -188,10 +188,11 @@ namespace PrivaPub.Federation.Outbox
|
||||
});
|
||||
}
|
||||
|
||||
// FEP-8fcf: what a delivery to the persona's followers tells the receiving server of its followers there
|
||||
// FEP-8fcf: what a delivery to the persona's followers tells the receiving server of its followers there; nothing for
|
||||
// a while after a restore, whose losses are not the other server's to mend
|
||||
static async Task<(string, string)[]> Synchronization(LocalActor signer, string body, Uri inbox, CancellationToken token)
|
||||
{
|
||||
if (!FollowersSynchronization.Synchronizes(signer) || JsonNode.Parse(body) is not JsonObject activity || !FollowersSynchronization.ForFollowers(activity, signer))
|
||||
if (!FollowersSynchronization.Synchronizes(signer) || await Infrastructure.Backup.RestoreRecord.InFollowersGrace(token) || JsonNode.Parse(body) is not JsonObject activity || !FollowersSynchronization.ForFollowers(activity, signer))
|
||||
return [];
|
||||
var there = await FollowersSynchronization.On(signer, FollowersSynchronization.Origin(inbox.AbsoluteUri), token);
|
||||
return [(FollowersSynchronization.Header, FollowersSynchronization.HeaderValue(signer, FollowersSynchronization.Digest(there)))];
|
||||
|
||||
Reference in new issue
Block a user