cultcache-ts: opening a legacy store never rewrites it #85
Loading…
Reference in a new issue
No description provided.
Delete branch "libby/legacy-store-no-heal-on-open"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The TS single-file MessagePack store rewrote a pre-v1 legacy envelope-array file as v1 while opening it, before the consumer's codec had accepted the content. A codec that then refused left the old bytes gone (StreamPixels, web-customize settings-legacy-heal-rewrites-before-refuse).
Change (TS only; Python and Rust never healed on read, C# has no legacy format):
pullAllis a pure read: legacy payloads are normalized in memory, the file is untouched. The file becomes v1 only on the consumer's next push/delete/pushAll, which already merge what they read.repairedLegacyPayloadremoved fromSingleFileStoreRead(no consumer in packages/*, src).Verified: store-file and cult-cache TS tests, Python 76/76, Rust pin. Soul pass held; hand mutations (rewrite on pull in two forms, normalization dropped, push dropping other entries) all fail tests. The 12 TS failures in this sandbox (interop, esbuild entry) fail identically on main. Rust
pull_allcreates a.lockfile beside a legacy file, same as main; bytes unchanged.🤖 Generated with Claude Code