Libby
0baa010f85
cultcache-rs: lock-file open waits through a Windows sharing violation
...
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