Files
SocialPub/PrivaPub/Models/Federation/ThreadCollection.cs
T
thepraandClaude Opus 5.5 62189bf11d
Build / Build (push) Failing after 7m52s
P7: thread backfill reads conversation containers and asks with If-None-Match
The FetchReplies job reads a thread's FEP-171b contextHistory before its FEP-7888 context: the posts each Add (or
Forte's plain Create) brought in, read from their own servers. A thread collection read whole keeps its ETag when the
document itself changes with every post (it counts them, or holds them all with no further page); the next read sends
it as If-None-Match and a 304 ends the job. The ETag is kept as sent, since NodeBB's has no quotes and the typed header
drops it. A context naming a post we hold (Forte's first post) is not fetched.

Checked in the pasture: Mastodon 4.7.3 answers the second read 304; NodeBB 4.16's unquoted ETag is kept (23/23 in its
scenario); a Forte thread completes through its replies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
2026-10-07 21:33:49 +02:00

14 lines
495 B
C#

using MongoDB.Entities;
namespace PrivaPub.Models.Federation
{
// a thread's collection on another server as we last read it whole: its ETag, sent back as If-None-Match so an unchanged
// thread costs its server one 304 (NodeBB's context carries a digest of its posts)
public class ThreadCollection : Entity
{
public string URI { get; set; }
public string ETag { get; set; }
public DateTime ReadAt { get; set; } = DateTime.UtcNow;//expires after Indexes.ThreadCollectionLifetime
}
}