Public threads name their replies and context
Owner decision of 2026-10-06: a persona's public or unlisted post outside any group names its replies
(…/scribbles/{id}/replies) and its conversation's context (FEP-7888), the root's …/context that a reply inherits from
its parent, ours or another server's. Both list only the public and unlisted posts PrivaPub holds; followers-only,
circle, direct and local-only posts name neither and their collections answer 404. Checked live: opening alice's
thread on Mastodon finds carol's reply, which nobody there follows (scenarios/threads.sh).
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
93e13e5563
commit
bf37223849
8 files changed
+152
-1
No files matched your search
@@ -162,6 +162,14 @@ namespace PrivaPub.Federation.Rendering
|
||||
cc.Add(post.InReplyToActorURI);
|
||||
|
||||
var note = NoteBody(post, author, to, cc, inReplyTo);
|
||||
// a public thread names where its replies and its whole conversation are read (owner decision 2026-10-06):
|
||||
// Mastodon, GoToSocial and Fedify complete threads from them
|
||||
if (!post.IsFederatedCopy && group == default && !post.IsLocalOnly && post.Visibility is PostVisibility.Public or PostVisibility.Unlisted)
|
||||
{
|
||||
note["replies"] = author.PostUri(post.ID) + "/replies";
|
||||
if (!string.IsNullOrEmpty(post.ContextURI))
|
||||
note["context"] = post.ContextURI;
|
||||
}
|
||||
if (group != default)
|
||||
note["audience"] = group.Uri;
|
||||
else if (!string.IsNullOrEmpty(post.AudienceURI))
|
||||
|
||||
Reference in new issue
Block a user