CultCache: a write that copies a record it read holding an element id marks the store

The single-file store records, per pull, which plain records decoded holding a non-empty
element id and at what version. A write whose copied record is still at that version
marks the header (v3). The record is positive-only and version-gated, so nothing a load
records can unmark a store. The directory store passes false: only C# writes it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-14 21:52:36 +02:00
commit e5736e49f3
4 changed files with 95 additions and 5 deletions

View file

@ -363,6 +363,7 @@ public sealed class DirectoryMessagePackBackingStore : CacheBackingStore
currentManifest.FormatVersion,
holdsIds.Values.Select(holds => (bool?)holds).ToArray(),
copiesAny: currentIndex.Values.Any(record => !written.Contains(record.Key)),
copiedHoldIds: false, // only C# writes a directory store, and it marks by content
directoryStore: true,
holdsVariants: false);
WriteManifest(targetCatalog, catalogBytes, currentIndex.Values