cultcache-rs: #[cultcache(index)] is unique at commit and load; re-registration re-judges held records #95

Merged
libby merged 7 commits from hands/variants-unique-index-rs into main 2026-11-11 07:43:23 +00:00
Member

cultcache-rs adopts the unique-index rule, matching C# (#90), TS (#92) and Python (#94):

  • #[cultcache(index)] means unique: refused at put, batch, push and load, naming both keys and the alias; blank values are not indexed; get_by_index reads one derived holder map. A grouping index is no longer expressible.
  • UNIQUE_INDEXES is the single declaration (cult_indexes removed): breaking for hand-written impls; none exist in the repo.
  • bool renders True/False.
  • register_entry_type re-judges held records on a changed declaration (index and global rule) and restores the old state on refusal.
  • cultnet-rs and cultmesh-rs have no change message, so no commitId/commitCount.

Soul: s1 blocked (re-registration Medium, 4 Lows); s2 blocked (global re-registration, tests, changelog); s3 closed with two Lows, fixed in 48974570 (a test and a changelog line, no Soul pass on that last commit). cargo-mutants could not be rerun by Soul (tools mount noexec). Open: variants:follow_up:unique-index-refusal-pair-order, unique-index-rust-catalog-roles.

🤖 Generated with Claude Code

cultcache-rs adopts the unique-index rule, matching C# (#90), TS (#92) and Python (#94): - `#[cultcache(index)]` means unique: refused at put, batch, push and load, naming both keys and the alias; blank values are not indexed; `get_by_index` reads one derived holder map. A grouping index is no longer expressible. - `UNIQUE_INDEXES` is the single declaration (`cult_indexes` removed): breaking for hand-written impls; none exist in the repo. - `bool` renders `True`/`False`. - `register_entry_type` re-judges held records on a changed declaration (index and global rule) and restores the old state on refusal. - cultnet-rs and cultmesh-rs have no change message, so no commitId/commitCount. Soul: s1 blocked (re-registration Medium, 4 Lows); s2 blocked (global re-registration, tests, changelog); s3 closed with two Lows, fixed in 48974570 (a test and a changelog line, no Soul pass on that last commit). cargo-mutants could not be rerun by Soul (tools mount noexec). Open: variants:follow_up:unique-index-refusal-pair-order, unique-index-rust-catalog-roles. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
One judge beside refuse_second_global(s) at put, put_envelope, put_raw_envelope, put_prepared_batch,
pull_all_backing_stores and load_soa; delete releases. The smallest-key scan and its test are removed.
Consumes tests/vectors/unique-index.

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-rs: pin the global flag surviving a refused re-registration; correct the changelog's decode claim
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 21m6s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 1m8s
4897457074
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit 43aa451fb9 into main 2026-11-11 07:43:23 +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!95
No description provided.