cultcache-ts: update-with-retry (update-with-retry-ts) #169

Merged
libby merged 7 commits from golden-write/update-with-retry-ts into main 2026-11-13 19:28:57 +00:00
Member

cultcache-ts: update and updateGlobal become update-with-retry to the semantics of the C# CultCache.Update (#168): content version (SHA-256 of the record's stored bytes, pinned by a C#-written vector), conditional commit, re-run on a lost race, typed updated | declined | lostRace result, bounded attempts. Replaces the blind update pair in place; storedAt re-mint on write per variants:ruling:storedat-on-change.

Spec variants:cut_spec:cut-update-with-retry-ts.r1, report variants:cut_report:cut-update-with-retry-ts.h1, follow-up variants:follow_up:update-with-retry-ts.

🤖 Generated with Claude Code

cultcache-ts: `update` and `updateGlobal` become update-with-retry to the semantics of the C# CultCache.Update (#168): content version (SHA-256 of the record's stored bytes, pinned by a C#-written vector), conditional commit, re-run on a lost race, typed `updated | declined | lostRace` result, bounded attempts. Replaces the blind update pair in place; storedAt re-mint on write per `variants:ruling:storedat-on-change`. Spec `variants:cut_spec:cut-update-with-retry-ts.r1`, report `variants:cut_report:cut-update-with-retry-ts.h1`, follow-up `variants:follow_up:update-with-retry-ts`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
store.cc and versions.msgpack pin the content version of a stored record
(SHA-256 of its persisted encoding) for other runtimes to match.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The single-file store reports a record with its content version (SHA-256 of
the persisted encoding, equal to the C# reference's on the content-version
vector), commits conditionally under its write lock, and stamps a write that
replaces a record strictly later than it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
update and updateGlobal read the record and its content version from the
store, apply to a fresh copy, commit through the store's commitIf and run
again on a lost race, returning updated, declined or lostRace. A cache with
no store compares the held entry. put stays the blind write.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-ts docs: update with retry in the start guide, README and changelog
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
33681b2ab3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-ts update: the legacy-global refusal is one rule at read and write, a store attached mid-apply loses the race, put installs the stamp the store wrote
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
505b868d90
Fixes variants:finding:cut-update-with-retry-ts.s1.*: global-key-skips-legacy-refusal,
attach-midflight-blind-push, put-held-storedat-diverges, null-decline-unpinned,
maxattempts-bound-kills-by-hang, storeless-othertype-guard-unpinned, and the
9999-12-31 stamp edge (RangeError, nothing written).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-ts store: a rewrite of identical content keeps its stamp and version; the push result is used only if it is a stamp
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 21m14s
bd6a65ab53
Fixes variants:finding:cut-update-with-retry-ts.s2.flush-remints-unchanged-records and .push-result-unvalidated (ruling variants:ruling:storedat-on-change).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-ts store: an identical rewrite keeps only the stamp, the writer's type and catalog still land; the push result must parse as a stamp; CHANGELOG states the departure from C#
All checks were successful
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 22m4s
dd961bc743
Fixes variants:finding:cut-update-with-retry-ts.s3.identical-drops-writer-catalog and .identical-rule-undeclared.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit 395d64e115 into main 2026-11-13 19:28:57 +00:00
libby deleted branch golden-write/update-with-retry-ts 2026-11-13 19:28:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!169
No description provided.