commit 42dd30007b8f064c73ad06503f3a167f7195c245
parent b4a06f8c37128d6ca8657454b74fb884ee98e7d2
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Thu, 1 Oct 2026 20:44:44 -0400
common: compose re-composes only a site's own stages after another site's compose; the per-channel trees keep their signatures
The trees are copies of the shared trees, the same bytes whichever site copied
them, so the basic Build all does not re-copy every channel per site.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat:
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/common/bin/compose-site.ts b/common/bin/compose-site.ts
@@ -718,16 +718,21 @@ export async function main(
// a private site and then a public one shipped the private site's summaries
// as the public site's. public/site.json names the site composed into it
// last (it is written below, every compose); another name, or none, and the
- // cache is not trusted.
+ // site's own stages (summaries, stats, duplicates) are composed afresh.
+ //
+ // The per-channel tree signatures stay trusted: those trees are copies of
+ // the SHARED trees, the same bytes whichever site copied them, and a
+ // channel another site pruned is re-copied because its directory is gone.
const cachePath = composeCachePath(paths, siteId);
const lastComposed = builtSiteIdIn(paths.exportPublicDir);
+ const cached = await readComposeCache(cachePath);
const cache: ComposeCache =
lastComposed === siteId
- ? await readComposeCache(cachePath)
- : { transcripts: {}, subs: {}, posts: {}, digests: {} };
+ ? cached
+ : { ...cached, summaries: undefined, stats: undefined, duplicates: undefined };
if (lastComposed !== siteId && lastComposed !== null) {
console.log(
- `[compose] public/ was last composed for "${lastComposed}": composing every stage for "${siteId}".`,
+ `[compose] public/ was last composed for "${lastComposed}": composing ${siteId}'s summaries, stats and duplicates afresh.`,
);
}
// Until this compose writes its own, public/ names no site: a compose cut