Commit graph

3,228 commits

Author SHA1 Message Date
Libby
0baa010f85 cultcache-rs: lock-file open waits through a Windows sharing violation
All checks were successful
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 20m0s
open_lock_file retries while the open fails with raw os error 32 (cfg(windows) only),
as lock_exclusive and lock_shared already wait on the lock itself. The try entry opens
once and maps a sharing violation to Ok(None). Helpers take the open closure and busy
predicate so Linux tests drive them with fakes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 10:13:40 +00:00
8edb2be2f4 Stryker scope extends to GameCult.Caching.Tests; CultElementIds survivors killed or recorded (mutation-testing-scope) (#163) 2026-11-13 10:09:10 +00:00
6cfd22c786 Remaining unlocked cargo mentions say --locked (locked-cargo-doc-stragglers) (#162) 2026-11-13 08:56:51 +00:00
568a60fa3e Late-link tests: the Python leak fails by name, the Rust try entry is pinned (link-late-check-lows) (#161) 2026-11-13 07:40:21 +00:00
c4a270bc7f Cargo callers on committed-lock crates run with --locked (locked-cargo-callers) (#160) 2026-11-13 07:00:14 +00:00
694d2ced10 Rust, Python and TypeScript stores re-check for a link once the store lock is held (link-late-check-rs-py-ts) (#159) 2026-11-13 06:12:54 +00:00
d7e94648ac Python: the BackingStore protocol can say absent, so the default soft push_all decides like the real stores (py-protocol-pull-absent) (#158) 2026-11-13 05:43:49 +00:00
d6708631da cultcache-rs and cultnet-rs commit Cargo.lock; CI builds them --locked (#157) 2026-11-13 05:26:13 +00:00
0e8a95ed07 cultcache-rs: the unlock-fault test tolerates a fork-exec duplicate of the lock descriptor (rs-unlock-fault-test-flake) (#156) 2026-11-13 04:55:47 +00:00
b646ba2732 IsWritable is per record: a link at a store path is the write's to refuse (link-is-writable-query) (#155) 2026-11-13 04:10:35 +00:00
adbbb780fd Python: JSONL store writes through commit_store_file (jsonl-tmp-leak-on-replace-failure) (#154) 2026-11-13 02:53:48 +00:00
558526c125 C# and Python: soft flush means one thing (soft-flush-cs-py) (#153) 2026-11-13 01:53:50 +00:00
845c024379 Rust: store replace on Windows tries POSIX-semantics rename first (store-windows-rs) (#148) 2026-11-13 01:29:21 +00:00
a85c63712b C#: store replace on Windows tries POSIX-semantics rename first (store-windows-cs) (#152) 2026-11-13 00:38:07 +00:00
73e2131d9a C#: a write through a live link at the store path is refused; read-under-lock pinned (store-link-cs) (#151) 2026-11-13 00:36:20 +00:00
3a8de542de Rust, Python, TS: a write through a live link at the store path is refused (store-link-rs-py-ts) (#150) 2026-11-13 00:01:44 +00:00
f1e72adf87 Python: store replace on Windows tries POSIX-semantics rename first (store-windows-py) (#149) 2026-11-12 22:40:27 +00:00
25f21fcc53 cultcache-ts: a pushAll through a dangling link is refused like push, not replaced (#147) 2026-11-12 21:46:59 +00:00
1045914701 cultnet-ts 0.4.0 release notes, range check in the npm publish gate, fixture closes build-path gaps (#146) 2026-11-12 21:21:41 +00:00
47e8e95d86 cultcache-py: pin the variant row of extra-slot-store.cc as a refused store (#145) 2026-11-12 20:43:56 +00:00
60e50b1cb7 Range check: build each package's own tagged version too; cultnet-ts 0.4.0 (#144) 2026-11-12 20:22:23 +00:00
4ebef4f023 cultmesh-py: pin the message_invalid answer on a tailed put under an unknown schema id (#143) 2026-11-12 19:42:55 +00:00
c3de792a7e Bytes-after residual lows: depth pin, interop tags, py shard-log tail, Rust load pins (#142) 2026-11-12 18:56:20 +00:00
dca0c5d095 C#: pin the one-value refusal on codec and Mesh single-file reads (#141) 2026-11-12 18:47:44 +00:00
498b848333 Docs: single-file lock contract, leftover temp file and pair-backup procedures (#138) 2026-11-12 18:47:43 +00:00
5f5364e4dc Lower System.Text.Json floor to 8.0.5 (#140) 2026-11-12 12:16:58 +00:00
f4fe424d41 CultCache interop: C# union and nested-bytes store read by Rust read-only, and back (#139) 2026-11-12 12:16:52 +00:00
a23ac7755a Rust mesh: pin that a snapshot spanning backing stores is refused whole (#137) 2026-11-12 10:31:13 +00:00
2fd80c274b Rust mesh: a raw snapshot pull is one cache commit (mesh-snapshot-atomic) (#134) 2026-11-12 09:47:38 +00:00
b098d5b7da TypeScript: pushAll writes onto the store instead of replacing it (ts-flush-replaces-store) (#136) 2026-11-12 09:47:33 +00:00
fbeb773d35 Rust: batch writes merge onto the store (rs-batch-merges-onto-store) (#135) 2026-11-12 08:45:52 +00:00
12f3801893 Rust: a cache must pull its stores before it writes (cache-must-pull-before-write) (#133) 2026-11-12 08:01:32 +00:00
66bea107d5 TypeScript: a payload is one MessagePack value (bytes-after-ts) (#130) 2026-11-12 06:02:51 +00:00
363a8d6fe5 Rust: a payload is one MessagePack value (bytes-after-rs) (#131) 2026-11-12 05:43:55 +00:00
13ce5ea50a Python: a payload is one MessagePack value (bytes-after-py) (#129) 2026-11-12 05:23:25 +00:00
676f611c1f TypeScript: a record with unread slots is held read-only (slot-readonly-ts) (#128) 2026-11-12 05:03:29 +00:00
09b825d689 Rust: a record with unread slots is held read-only (slot-readonly-rs) (#127) 2026-11-12 04:44:03 +00:00
892765ba97 Python: a record with unread slots is held read-only (slot-readonly-py) (#126) 2026-11-12 04:24:07 +00:00
5e10909fe9 Bytes after the value: a payload is one MessagePack value (C#) (#125) 2026-11-12 04:01:36 +00:00
a8c2825745 Slot tolerance: a record with unread slots is held read-only, not shed (#124) 2026-11-12 02:45:08 +00:00
c371832736 Rust cache: one record per key, foreign carry, key-identity vector walked (#123) 2026-11-12 01:05:46 +00:00
a0184785a2 Python cache: one record per key, foreign carry, key-identity vector walked (#122) 2026-11-12 00:45:11 +00:00
7a63290469 TypeScript cache: one record per key, foreign carry, key-identity vector walked (#121) 2026-11-12 00:03:19 +00:00
6d1684e1c2 Key-identity vector: retype refusal, foreign carry, key in two stores (C# rows, 12) (#120) 2026-11-11 23:42:09 +00:00
871d81807b Portability CI: use the runner image's Node and Python, venv, job timeout 60 (#119) 2026-11-11 21:55:30 +00:00
d3025d3c19 Fork card: null-answerer vectors for Revision and Retraction (additive) (#118) 2026-11-11 18:30:21 +00:00
3a51bbabad Fork card: decider_count, answerer_count, nullable answerer (reader views) (#117) 2026-11-11 18:12:00 +00:00
19b95ba2ab Walk rows lows: Rust @directory error kind and delete, stale known-gaps (#116) 2026-11-11 18:11:55 +00:00
af9142539e Fork card: raised_at, required nullable instant outside options_hash (#115) 2026-11-11 18:03:41 +00:00
f4eb2a04d1 Readability manifest: legacy-catalog c0 rows and directory-at-path, walked by all four runtimes (#114) 2026-11-11 17:25:05 +00:00