From 4a2acf0e35ecfbea187685bca2c3c60567563219 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Tue, 20 Oct 2026 16:43:28 +0200 Subject: [PATCH] cultcache-ts: state plainly what the 0.14.2 lock protects push and delete no longer lose records across concurrent TypeScript and Rust writers. A full pushAll and any C# write still replace the whole store. Co-Authored-By: Claude Opus 5.5 --- packages/cultcache-ts/CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/cultcache-ts/CHANGELOG.md b/packages/cultcache-ts/CHANGELOG.md index 14d32a33..f603f6f3 100644 --- a/packages/cultcache-ts/CHANGELOG.md +++ b/packages/cultcache-ts/CHANGELOG.md @@ -8,8 +8,10 @@ All notable changes to `@gamecult/cultcache-ts` are recorded here, following ### Added - `SingleFileMessagePackBackingStore` takes a cross-process write lock on `.lock`, interoperable with the C# and Rust runtimes (`flock` on Unix, `LockFileEx` on Windows). - Each write reads the current file, merges and replaces it under the lock, so concurrent - writers no longer lose each other's records. + `push` and `delete` read the current file, merge and replace it under the lock, so concurrent + TypeScript and Rust writers no longer lose each other's records across those calls. A full + `pushAll` still replaces the whole store, and so does any C# write, so records a concurrent + writer added are still lost to either of them. - The staged file is fsynced before the replace, and on Unix the directory after it. A directory sync failure after the replace is reported as replaced but not durable.