cultcache-ts and cultnet-ts: indexes means unique, roles names selection aliases; commitId/commitCount on change messages #92

Merged
libby merged 8 commits from hands/variants-unique-index-ts into main 2026-11-11 05:13:08 +00:00
Member

TS adoption of the unique-index rule (rulings variants:ruling:unique-index-runtime-declaration-indexes-unique-plus-roles, unique-indexes). One judge (#refuseIndexSharing) for every write, load and registration; C# canonical index text; roles map; C#-written shared vectors under tests/vectors/unique-index/ (Python and Rust consume them next); cultnet-ts carries/validates optional commitId/commitCount (null accepted: C# emits it).

Migration (breaking for consumers): indexes now means unique. A consumer whose indexes keys repeat across records must move them to roles BEFORE rebuilding/updating the CultLib checkout its tools load; README packages/cultcache-ts has the per-key rule and the Bifrost per-key table (all six Bifrost keys are roles; each definition lists members, so the edit is safe on the old CultLib).

Soul: s1 blocked (multi-alias judge and null fields unpinned, Bifrost has no pin, load message text); s2 holds on h2 612652a8 (+ README clarification). Verified against real C# (32,036 numbers, whitespace set, both store directions) and interop tests. Known Lows are filed. Refusal text is informational; the contract is the verdict. CI not consulted at merge.

🤖 Generated with Claude Code

TS adoption of the unique-index rule (rulings variants:ruling:unique-index-runtime-declaration-indexes-unique-plus-roles, unique-indexes). One judge (`#refuseIndexSharing`) for every write, load and registration; C# canonical index text; `roles` map; C#-written shared vectors under tests/vectors/unique-index/ (Python and Rust consume them next); cultnet-ts carries/validates optional commitId/commitCount (null accepted: C# emits it). **Migration (breaking for consumers):** `indexes` now means unique. A consumer whose `indexes` keys repeat across records must move them to `roles` BEFORE rebuilding/updating the CultLib checkout its tools load; README packages/cultcache-ts has the per-key rule and the Bifrost per-key table (all six Bifrost keys are roles; each definition lists `members`, so the edit is safe on the old CultLib). Soul: s1 blocked (multi-alias judge and null fields unpinned, Bifrost has no pin, load message text); s2 holds on h2 612652a8 (+ README clarification). Verified against real C# (32,036 numbers, whitespace set, both store directions) and interop tests. Known Lows are filed. Refusal text is informational; the contract is the verdict. CI not consulted at merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Deletes the last-writer-wins derive and String(value) rendering; one judge
(#refuseIndexSharing) for every write, load and registration.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-ts README: the roles move is safe on the old CultLib only for definitions that list members
All checks were successful
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 20m30s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 40s
5e8d564123
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit 31d86e2a50 into main 2026-11-11 05:13:08 +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!92
No description provided.