Commit graph

3,236 commits

Author SHA1 Message Date
Libby
cb6e044c0f cultcache-py: strict stored_at shape, range edges refuse, mesh publishes the stored stamp, home-swap guard pinned (update-with-retry-py s1 fixes)
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 20:24:49 +00:00
Libby
35b6f8c0fe cultcache-py: update tests, first-call snippet, docs, changelog (update-with-retry-py)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 20:09:50 +00:00
Libby
cd23e19039 cultcache-py: conditional update, content version, store-minted stored_at (update-with-retry-py)
Replaces the blind update and update_global with update(document, key, apply, max_attempts) over store read and commit_if;
push and push_all restamp a replacing write later and report the stamp.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 19:52:51 +00:00
395d64e115 cultcache-ts: update-with-retry (update-with-retry-ts) (#169) 2026-11-13 19:28:57 +00:00
70f21da06a cultcache-rs: expose a store's schema catalog (versions) to consumers (#167) 2026-11-13 18:49:46 +00:00
3d333e8466 Caching: CultCache.Update, update-with-retry as the golden-path write (golden-path-write-api) (#168) 2026-11-13 15:40:35 +00:00
f9c72a2fd2 cultcache-rs: pin try entry never waits and error 32 never retried off Windows (tests only) (#166) 2026-11-13 12:43:17 +00:00
64f4d29147 Mutation testing doc: name the revision of each narrow-pass score, restate the full-run rate (#165) 2026-11-13 12:16:41 +00:00
c229b86fde cultcache-rs: lock-file open waits through a Windows sharing violation (#164) 2026-11-13 11:16:15 +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